From 41dfa008d02a6b7a4c962dac147cf9cc3d435ff1 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 23 Dec 2021 00:31:49 +0100 Subject: [PATCH 01/18] Don't show a removed tag if it was present on the object in the first place --- Logic/Tags/Tag.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Logic/Tags/Tag.ts b/Logic/Tags/Tag.ts index a6f4fa91c1..2d3c8a4a32 100644 --- a/Logic/Tags/Tag.ts +++ b/Logic/Tags/Tag.ts @@ -41,12 +41,17 @@ export class Tag extends TagsFilter { return [`["${this.key}"="${this.value}"]`]; } - asHumanString(linkToWiki?: boolean, shorten?: boolean) { + asHumanString(linkToWiki?: boolean, shorten?: boolean, currentProperties?: any) { let v = this.value; if (shorten) { v = Utils.EllipsesAfter(v, 25); } if(v === "" || v === undefined){ + // This tag will be removed if in the properties, so we indicate this with special rendering + if(currentProperties !== undefined && (currentProperties[this.key] ?? "") !== ""){ + // This tag is not present in the current properties, so this tag doesn't change anything + return "" + } return ""+this.key+"" } if (linkToWiki) { From 4131e9b9e267847195421975e7add037cdf88571 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 23 Dec 2021 00:37:41 +0100 Subject: [PATCH 02/18] Hide 'man_made=mast' from GRB layer --- assets/themes/grb_import/grb.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assets/themes/grb_import/grb.json b/assets/themes/grb_import/grb.json index 8e8a2491d0..8df3955e29 100644 --- a/assets/themes/grb_import/grb.json +++ b/assets/themes/grb_import/grb.json @@ -455,7 +455,9 @@ "id": "GRB", "description": "Geometry which comes from GRB with tools to import them", "source": { - "osmTags": "HUISNR~*", + "osmTags": { + "and": ["HUISNR~*","man_made!=mast"] + }, "geoJson": "https://betadata.grbosm.site/grb?bbox={x_min},{y_min},{x_max},{y_max}", "geoJsonZoomLevel": 18, "mercatorCrs": true, From adade2e8b0c49d90bb215bdc8e11363ef14f87fe Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 23 Dec 2021 03:36:03 +0100 Subject: [PATCH 03/18] Add unused node removal --- Logic/ExtraFunctions.ts | 1 - Logic/FeatureSource/FeaturePipeline.ts | 28 +- .../FullNodeDatabaseSource.ts | 13 + .../Actions/CreateWayWithPointReuseAction.ts | 43 +++- Logic/Osm/Actions/DeleteAction.ts | 2 +- Logic/Osm/Actions/ReplaceGeometryAction.ts | 243 +++++++++++++----- Logic/Osm/Changes.ts | 5 +- Models/Constants.ts | 2 +- Models/ThemeConfig/LayoutConfig.ts | 2 - UI/Popup/ImportButton.ts | 9 +- assets/layers/conflation/conflation.json | 10 +- assets/themes/grb_import/grb.json | 27 +- 12 files changed, 289 insertions(+), 96 deletions(-) diff --git a/Logic/ExtraFunctions.ts b/Logic/ExtraFunctions.ts index a25a7c75d7..ce571546a2 100644 --- a/Logic/ExtraFunctions.ts +++ b/Logic/ExtraFunctions.ts @@ -85,7 +85,6 @@ class IntersectionFunc implements ExtraFunction { const bbox = BBox.get(feat) for (const layerId of layerIds) { - console.log("Calculating the intersection with layer ", layerId) const otherLayers = params.getFeaturesWithin(layerId, bbox) if (otherLayers === undefined) { continue; diff --git a/Logic/FeatureSource/FeaturePipeline.ts b/Logic/FeatureSource/FeaturePipeline.ts index 6738c096cd..ca704536a5 100644 --- a/Logic/FeatureSource/FeaturePipeline.ts +++ b/Logic/FeatureSource/FeaturePipeline.ts @@ -60,6 +60,12 @@ export default class FeaturePipeline { private readonly localStorageSavers = new Map() private readonly metataggingRecalculated = new UIEventSource(undefined) + /** + * Keeps track of all raw OSM-nodes. + * Only initialized if 'type_node' is defined as layer + */ + public readonly fullNodeDatabase? : FullNodeDatabaseSource + constructor( handleFeatureSource: (source: FeatureSourceForLayer & Tiled) => void, state: MapState) { @@ -129,7 +135,14 @@ export default class FeaturePipeline { this.freshnesses.set(id, new TileFreshnessCalculator()) if (id === "type_node") { - // Handles by the 'FullNodeDatabaseSource' + + this.fullNodeDatabase = new FullNodeDatabaseSource( + filteredLayer, + tile => { + new RegisteringAllFromFeatureSourceActor(tile, state.allElements) + perLayerHierarchy.get(tile.layer.layerDef.id).registerTile(tile) + tile.features.addCallbackAndRunD(_ => self.newDataLoadedSignal.setData(tile)) + }); continue; } @@ -248,17 +261,8 @@ export default class FeaturePipeline { }) }) - - if (state.layoutToUse.trackAllNodes) { - const fullNodeDb = new FullNodeDatabaseSource( - state.filteredLayers.data.filter(l => l.layerDef.id === "type_node")[0], - tile => { - new RegisteringAllFromFeatureSourceActor(tile, state.allElements) - perLayerHierarchy.get(tile.layer.layerDef.id).registerTile(tile) - tile.features.addCallbackAndRunD(_ => self.newDataLoadedSignal.setData(tile)) - }) - - osmFeatureSource.rawDataHandlers.push((osmJson, tileId) => fullNodeDb.handleOsmJson(osmJson, tileId)) + if(this.fullNodeDatabase !== undefined){ + osmFeatureSource.rawDataHandlers.push((osmJson, tileId) => this.fullNodeDatabase.handleOsmJson(osmJson, tileId)) } diff --git a/Logic/FeatureSource/TiledFeatureSource/FullNodeDatabaseSource.ts b/Logic/FeatureSource/TiledFeatureSource/FullNodeDatabaseSource.ts index d02ae5858a..d2e9ec95be 100644 --- a/Logic/FeatureSource/TiledFeatureSource/FullNodeDatabaseSource.ts +++ b/Logic/FeatureSource/TiledFeatureSource/FullNodeDatabaseSource.ts @@ -9,6 +9,7 @@ export default class FullNodeDatabaseSource implements TileHierarchy() private readonly onTileLoaded: (tile: (Tiled & FeatureSourceForLayer)) => void; private readonly layer: FilteredLayer + private readonly nodeByIds = new Map(); constructor( layer: FilteredLayer, @@ -31,6 +32,7 @@ export default class FullNodeDatabaseSource implements TileHierarchyosmObj; nodesById.set(osmNode.id, osmNode) + this.nodeByIds.set(osmNode.id, osmNode) } const parentWaysByNodeId = new Map() @@ -49,6 +51,7 @@ export default class FullNodeDatabaseSource implements TileHierarchy { nodesById.get(nodeId).tags["parent_ways"] = JSON.stringify(allWays.map(w => w.tags)) + nodesById.get(nodeId).tags["parent_way_ids"] = JSON.stringify(allWays.map(w => w.id)) }) const now = new Date() const asGeojsonFeatures = Array.from(nodesById.values()).map(osmNode => ({ @@ -62,6 +65,16 @@ export default class FullNodeDatabaseSource implements TileHierarchy c.withinRangeOfM)) + // Init coordianteinfo with undefined but the same length as coordinates const coordinateInfo: { lngLat: [number, number], identicalTo?: number, @@ -236,6 +266,8 @@ export default class CreateWayWithPointReuseAction extends OsmCreateAction { }[] }[] = coordinates.map(_ => undefined) + + // First loop: gather all information... for (let i = 0; i < coordinates.length; i++) { if (coordinateInfo[i] !== undefined) { @@ -243,8 +275,11 @@ export default class CreateWayWithPointReuseAction extends OsmCreateAction { continue } const coor = coordinates[i] - // Check closeby (and probably identical) point further in the coordinate list, mark them as duplicate + // Check closeby (and probably identical) points further in the coordinate list, mark them as duplicate for (let j = i + 1; j < coordinates.length; j++) { + // We look into the 'future' of the way and mark those 'future' locations as being the same as this location + // The continue just above will make sure they get ignored + // This code is important to 'close' ways if (GeoOperations.distanceBetween(coor, coordinates[j]) < 0.1) { coordinateInfo[j] = { lngLat: coor, @@ -280,6 +315,7 @@ export default class CreateWayWithPointReuseAction extends OsmCreateAction { } } + // Sort by distance, closest first closebyNodes.sort((n0, n1) => { return n0.d - n1.d }) @@ -292,8 +328,9 @@ export default class CreateWayWithPointReuseAction extends OsmCreateAction { } + + // Second loop: figure out which point moves where without creating conflicts let conflictFree = true; - do { conflictFree = true; for (let i = 0; i < coordinateInfo.length; i++) { diff --git a/Logic/Osm/Actions/DeleteAction.ts b/Logic/Osm/Actions/DeleteAction.ts index a5be01448d..4673fecada 100644 --- a/Logic/Osm/Actions/DeleteAction.ts +++ b/Logic/Osm/Actions/DeleteAction.ts @@ -37,7 +37,7 @@ export default class DeleteAction extends OsmChangeAction { } - protected async CreateChangeDescriptions(changes: Changes): Promise { + public async CreateChangeDescriptions(changes: Changes): Promise { const osmObject = await OsmObject.DownloadObjectAsync(this._id) diff --git a/Logic/Osm/Actions/ReplaceGeometryAction.ts b/Logic/Osm/Actions/ReplaceGeometryAction.ts index 3b4aa31ef4..c45784db0e 100644 --- a/Logic/Osm/Actions/ReplaceGeometryAction.ts +++ b/Logic/Osm/Actions/ReplaceGeometryAction.ts @@ -11,28 +11,36 @@ import ChangeTagAction from "./ChangeTagAction"; import {And} from "../../Tags/And"; import {Utils} from "../../../Utils"; import {OsmConnection} from "../OsmConnection"; +import {GeoJSONObject} from "@turf/turf"; +import FeaturePipeline from "../../FeatureSource/FeaturePipeline"; +import DeleteAction from "./DeleteAction"; export default class ReplaceGeometryAction extends OsmChangeAction { + /** + * The target feature - mostly used for the metadata + */ private readonly feature: any; private readonly state: { - osmConnection: OsmConnection + osmConnection: OsmConnection, + featurePipeline: FeaturePipeline }; private readonly wayToReplaceId: string; private readonly theme: string; /** - * The target coordinates that should end up in OpenStreetMap + * The target coordinates that should end up in OpenStreetMap. + * This is identical to either this.feature.geometry.coordinates or -in case of a polygon- feature.geometry.coordinates[0] */ private readonly targetCoordinates: [number, number][]; /** * If a target coordinate is close to another target coordinate, 'identicalTo' will point to the first index. - * @private */ private readonly identicalTo: number[] private readonly newTags: Tag[] | undefined; constructor( state: { - osmConnection: OsmConnection + osmConnection: OsmConnection, + featurePipeline: FeaturePipeline }, feature: any, wayToReplaceId: string, @@ -54,6 +62,7 @@ export default class ReplaceGeometryAction extends OsmChangeAction { } else if (geom.type === "Polygon") { coordinates = geom.coordinates[0] } + this.targetCoordinates = coordinates this.identicalTo = coordinates.map(_ => undefined) @@ -68,21 +77,18 @@ export default class ReplaceGeometryAction extends OsmChangeAction { } } } - - - this.targetCoordinates = coordinates this.newTags = options.newTags } + // noinspection JSUnusedGlobalSymbols public async getPreview(): Promise { - const {closestIds, allNodesById} = await this.GetClosestIds(); + const {closestIds, allNodesById, detachedNodeIds} = await this.GetClosestIds(); console.debug("Generating preview, identicals are ",) - const preview = closestIds.map((newId, i) => { + const preview: GeoJSONObject[] = closestIds.map((newId, i) => { if (this.identicalTo[i] !== undefined) { return undefined } - if (newId === undefined) { return { type: "Feature", @@ -110,6 +116,24 @@ export default class ReplaceGeometryAction extends OsmChangeAction { } }; }) + + for (const detachedNodeId of detachedNodeIds) { + const origPoint = allNodesById.get(detachedNodeId).centerpoint() + const feature = { + type: "Feature", + properties: { + "detach": "yes", + "id": "replace-geometry-detach-" + detachedNodeId + }, + geometry: { + type: "Point", + coordinates: [origPoint[1], origPoint[0]] + } + }; + preview.push(feature) + } + + return new StaticFeatureSource(Utils.NoNull(preview), false) } @@ -119,7 +143,7 @@ export default class ReplaceGeometryAction extends OsmChangeAction { const allChanges: ChangeDescription[] = [] const actualIdsToUse: number[] = [] - const {closestIds, osmWay} = await this.GetClosestIds() + const {closestIds, osmWay, detachedNodeIds} = await this.GetClosestIds() for (let i = 0; i < closestIds.length; i++) { if (this.identicalTo[i] !== undefined) { @@ -170,7 +194,7 @@ export default class ReplaceGeometryAction extends OsmChangeAction { allChanges.push(...await addExtraTags.CreateChangeDescriptions(changes)) } - // AT the very last: actually change the nodes of the way! + // Actually change the nodes of the way! allChanges.push({ type: "way", id: osmWay.id, @@ -185,6 +209,43 @@ export default class ReplaceGeometryAction extends OsmChangeAction { }) + // Some nodes might need to be deleted + if (detachedNodeIds.length > 0) { + + const nodeDb = this.state.featurePipeline.fullNodeDatabase; + if (nodeDb === undefined) { + throw "PANIC: replaceGeometryAction needs the FullNodeDatabase, which is undefined. This should be initialized by having the 'type_node'-layer enabled in your theme. (NB: the replacebutton has type_node as dependency)" + } + for (const nodeId of detachedNodeIds) { + const osmNode = nodeDb.GetNode(nodeId) + const parentWayIds: number[] = JSON.parse(osmNode.tags["parent_way_ids"]) + const index = parentWayIds.indexOf(osmWay.id) + if(index < 0){ + console.error("ReplaceGeometryAction is trying to detach node "+nodeId+", but it isn't listed as being part of way "+osmWay.id) + continue; + } + parentWayIds.splice(index, 1) + osmNode.tags["parent_way_ids"] = JSON.stringify(parentWayIds) + if(parentWayIds.length == 0){ + // This point has no other ways anymore - lets clean it! + console.log("Removing node "+nodeId, "as it isn't needed anymore by any way") + + allChanges.push({ + meta: { + theme: this.theme, + changeType: "delete" + }, + doDelete: true, + type: "node", + id: nodeId, + }) + + } + } + + + } + return allChanges } @@ -193,84 +254,124 @@ export default class ReplaceGeometryAction extends OsmChangeAction { * @constructor * @private */ - private async GetClosestIds(): Promise<{ closestIds: number[], allNodesById: Map, osmWay: OsmWay }> { + private async GetClosestIds(): Promise<{ + + // A list of the same length as targetCoordinates, containing which OSM-point to move. If undefined, a new point will be created + closestIds: number[], + allNodesById: Map, + osmWay: OsmWay, + detachedNodeIds: number[] + }> { // TODO FIXME: cap move length on points which are embedded into other ways (ev. disconnect them) // TODO FIXME: if a new point has to be created, snap to already existing ways - // TODO FIXME: detect intersections with other ways if moved - const splitted = this.wayToReplaceId.split("/"); - const type = splitted[0]; - const idN = Number(splitted[1]); - if (idN < 0 || type !== "way") { - throw "Invalid ID to conflate: " + this.wayToReplaceId - } - const url = `${this.state.osmConnection._oauth_config.url}/api/0.6/${this.wayToReplaceId}/full`; - const rawData = await Utils.downloadJsonCached(url, 1000) - const parsed = OsmObject.ParseObjects(rawData.elements); - const allNodesById = new Map() - const allNodes = parsed.filter(o => o.type === "node") - for (const node of allNodes) { - allNodesById.set(node.id, node) - } + let parsed: OsmObject[]; + { + // Gather the needed OsmObjects + const splitted = this.wayToReplaceId.split("/"); + const type = splitted[0]; + const idN = Number(splitted[1]); + if (idN < 0 || type !== "way") { + throw "Invalid ID to conflate: " + this.wayToReplaceId + } + const url = `${this.state.osmConnection._oauth_config.url}/api/0.6/${this.wayToReplaceId}/full`; + const rawData = await Utils.downloadJsonCached(url, 1000) + parsed = OsmObject.ParseObjects(rawData.elements); + } + const allNodes = parsed.filter(o => o.type === "node") + /** - * Allright! We know all the nodes of the original way and all the nodes of the target coordinates. - * For each of the target coordinates, we search the closest, already existing point and reuse this point + * For every already existing OSM-point, we calculate the distance to every target point */ - const closestIds = [] - const distances = [] - for (let i = 0; i < this.targetCoordinates.length; i++) { - const target = this.targetCoordinates[i]; - let closestDistance = undefined - let closestId = undefined; - for (const osmNode of allNodes) { - - const cp = osmNode.centerpoint() - const d = GeoOperations.distanceBetween(target, [cp[1], cp[0]]) - if (closestId === undefined || closestDistance > d) { - closestId = osmNode.id - closestDistance = d + const distances = new Map distance (or undefined if a duplicate)*/>(); + for (const node of allNodes) { + const nodeDistances = this.targetCoordinates.map(_ => undefined) + for (let i = 0; i < this.targetCoordinates.length; i++) { + if (this.identicalTo[i] !== undefined) { + continue; } + const targetCoordinate = this.targetCoordinates[i]; + const cp = node.centerpoint() + nodeDistances[i] = GeoOperations.distanceBetween(targetCoordinate, [cp[1], cp[0]]) } - closestIds.push(closestId) - distances.push(closestDistance) + distances.set(node.id, nodeDistances) } - // Next step: every closestId can only occur once in the list - // We skip the ones which are identical - console.log("Erasing double ids") - for (let i = 0; i < closestIds.length; i++) { - if (this.identicalTo[i] !== undefined) { - closestIds[i] = closestIds[this.identicalTo[i]] - continue - } - const closestId = closestIds[i] - for (let j = i + 1; j < closestIds.length; j++) { - if (this.identicalTo[j] !== undefined) { - continue + /** + * Then, we search the node that has to move the least distance and add this as mapping. + * We do this until no points are left + */ + let candidate: number; + let moveDistance: number; + const closestIds = this.targetCoordinates.map(_ => undefined) + /** + * The list of nodes that are _not_ used anymore, typically if there are less targetCoordinates then source coordinates + */ + const unusedIds = [] + do { + candidate = undefined; + moveDistance = Infinity; + distances.forEach((distances, nodeId) => { + const minDist = Math.min(...Utils.NoNull(distances)) + if (moveDistance > minDist) { + // We have found a candidate to move + candidate = nodeId + moveDistance = minDist } - const otherClosestId = closestIds[j] - if (closestId !== otherClosestId) { - continue + }) + + if (candidate !== undefined) { + // We found a candidate... Search the corresponding target id: + let targetId: number = undefined; + let lowestDistance = Number.MAX_VALUE + let nodeDistances = distances.get(candidate) + for (let i = 0; i < nodeDistances.length; i++) { + const d = nodeDistances[i] + if (d !== undefined && d < lowestDistance) { + lowestDistance = d; + targetId = i; + } } - // We have two occurences of 'closestId' - we only keep the closest instance! - const di = distances[i] - const dj = distances[j] - if (di < dj) { - closestIds[j] = undefined + + // This candidates role is done, it can be removed from the distance matrix + distances.delete(candidate) + + if (targetId !== undefined) { + // At this point, we have our target coordinate index: targetId! + // Lets map it... + closestIds[targetId] = candidate + + // To indicate that this targetCoordinate is taken, we remove them from the distances matrix + distances.forEach(dists => { + dists[targetId] = undefined + }) } else { - closestIds[i] = undefined + // Seems like all the targetCoordinates have found a source point + unusedIds.push(candidate) } } - } + } while (candidate !== undefined) - const osmWay = parsed[parsed.length - 1] - if (osmWay.type !== "way") { - throw "WEIRD: expected an OSM-way as last element here!" + // If there are still unused values in 'distances', they are definitively unused + distances.forEach((_, nodeId) => { + unusedIds.push(nodeId) + }) + + { + // Some extra data is included for rendering + const osmWay = parsed[parsed.length - 1] + if (osmWay.type !== "way") { + throw "WEIRD: expected an OSM-way as last element here!" + } + const allNodesById = new Map() + for (const node of allNodes) { + allNodesById.set(node.id, node) + } + return {closestIds, allNodesById, osmWay, detachedNodeIds: unusedIds}; } - return {closestIds, allNodesById, osmWay}; } diff --git a/Logic/Osm/Changes.ts b/Logic/Osm/Changes.ts index 56b5feb47a..831c05800f 100644 --- a/Logic/Osm/Changes.ts +++ b/Logic/Osm/Changes.ts @@ -384,8 +384,8 @@ export class Changes { states.set(o.type + "/" + o.id, "unchanged") } - let changed = false; for (const change of changes) { + let changed = false; const id = change.type + "/" + change.id if (!objects.has(id)) { // The object hasn't been seen before, so it doesn't exist yet and is newly created by its very definition @@ -493,7 +493,7 @@ export class Changes { } - if (changed && state === "unchanged") { + if (changed && states.get(id) === "unchanged") { states.set(id, "modified") } } @@ -520,6 +520,7 @@ export class Changes { }) + console.debug("Calculated the pending changes: ", result.newObjects.length,"new; ", result.modifiedObjects.length,"modified;",result.deletedObjects,"deleted") return result } } \ No newline at end of file diff --git a/Models/Constants.ts b/Models/Constants.ts index 25ea8a2ce2..330f11c961 100644 --- a/Models/Constants.ts +++ b/Models/Constants.ts @@ -2,7 +2,7 @@ import {Utils} from "../Utils"; export default class Constants { - public static vNumber = "0.13.0-alpha-8"; + public static vNumber = "0.13.0-alpha-9"; public static ImgurApiKey = '7070e7167f0a25a' public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85" diff --git a/Models/ThemeConfig/LayoutConfig.ts b/Models/ThemeConfig/LayoutConfig.ts index 1d9fe8cef1..7fb99c32d8 100644 --- a/Models/ThemeConfig/LayoutConfig.ts +++ b/Models/ThemeConfig/LayoutConfig.ts @@ -63,7 +63,6 @@ export default class LayoutConfig { this.credits = json.credits; this.version = json.version; this.language = []; - this.trackAllNodes = false if (typeof json.language === "string") { this.language = [json.language]; @@ -101,7 +100,6 @@ export default class LayoutConfig { this.tileLayerSources = (json.tileLayerSources ?? []).map((config, i) => new TilesourceConfig(config, `${this.id}.tileLayerSources[${i}]`)) const layerInfo = LayoutConfig.ExtractLayers(json, official, context); this.layers = layerInfo.layers - this.trackAllNodes = layerInfo.extractAllNodes this.clustering = { diff --git a/UI/Popup/ImportButton.ts b/UI/Popup/ImportButton.ts index 88c862cbc1..2c5d7cf7d6 100644 --- a/UI/Popup/ImportButton.ts +++ b/UI/Popup/ImportButton.ts @@ -232,7 +232,7 @@ ${Utils.special_visualizations_importRequirementDocs} onCancel: () => void): BaseUIElement { const self = this; const confirmationMap = Minimap.createMiniMap({ - allowMoving: false, + allowMoving: state.featureSwitchIsDebugging.data ?? false, background: state.backgroundLayer }) confirmationMap.SetStyle("height: 20rem; overflow: hidden").SetClass("rounded-xl") @@ -297,6 +297,13 @@ export class ConflateButton extends AbstractImportButton { return feature.geometry.type === "LineString" || (feature.geometry.type === "Polygon" && feature.geometry.coordinates.length === 1) } + getLayerDependencies(argsRaw: string[]): string[] { + const deps = super.getLayerDependencies(argsRaw); + // Force 'type_node' as dependency + deps.push("type_node") + return deps; + } + constructElement(state: FeaturePipelineState, args: { max_snap_distance: string; snap_onto_layers: string; icon: string; text: string; tags: string; newTags: UIEventSource; targetLayer: string }, tagSource: UIEventSource, guiState: DefaultGuiState, feature: any, onCancelClicked: () => void): BaseUIElement { diff --git a/assets/layers/conflation/conflation.json b/assets/layers/conflation/conflation.json index a42f5b5894..3ee868157e 100644 --- a/assets/layers/conflation/conflation.json +++ b/assets/layers/conflation/conflation.json @@ -15,7 +15,15 @@ "mapRendering": [ { "location": "point", - "icon": "addSmall:#000", + "icon": { + "render": "addSmall:#000", + "mappings": [ + { + "if": "detach=yes", + "then": "circle:white;close:#c33" + } + ] + }, "iconSize": "10,10,center" }, { diff --git a/assets/themes/grb_import/grb.json b/assets/themes/grb_import/grb.json index 8df3955e29..6088c82922 100644 --- a/assets/themes/grb_import/grb.json +++ b/assets/themes/grb_import/grb.json @@ -302,6 +302,25 @@ } ] }, + { + "id": "service_ways", + "name": "Service roads", + "description": "A seperate layer with service roads, as to remove them from the intersection testing", + "source": { + "osmTags": "highway=service" + }, + "mapRendering": [ + { + "width": 4, + "color": "#888888" + } + ], + "title": { + "render": "Service road" + }, + "tagRenderings": [] + + }, { "id": "generic_osm_object", "name": "All OSM Objects", @@ -466,7 +485,7 @@ "name": "GRB geometries", "title": "GRB outline", "calculatedTags": [ - "_overlaps_with_buildings=feat.overlapWith('OSM-buildings')", + "_overlaps_with_buildings=feat.overlapWith('OSM-buildings').filter(f => f.feat.properties.id.indexOf('-') < 0)", "_overlaps_with=feat.get('_overlaps_with_buildings').filter(f => f.overlap > 1 /* square meter */ )[0] ?? ''", "_overlap_absolute=feat.get('_overlaps_with')?.overlap", "_overlap_percentage=Math.round(100 * feat.get('_overlap_absolute') / feat.get('_surface')) ", @@ -551,6 +570,12 @@ "_osm_obj:id~*", "addr:street~*", "addr:housenumber~*", + { + "or": [ + "addr:street~*", + "addr:housenumber~*" + ] + }, { "or": [ "addr:street!:={_osm_obj:addr:street}", From b0f0a57bc762a135cae419dd6faebcabeb43d595 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 23 Dec 2021 14:39:00 +0100 Subject: [PATCH 04/18] Block broken replaceGeometry for now --- Logic/Osm/Actions/ReplaceGeometryAction.ts | 1 - Models/Constants.ts | 2 +- UI/Popup/ImportButton.ts | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Logic/Osm/Actions/ReplaceGeometryAction.ts b/Logic/Osm/Actions/ReplaceGeometryAction.ts index c45784db0e..08848b7c29 100644 --- a/Logic/Osm/Actions/ReplaceGeometryAction.ts +++ b/Logic/Osm/Actions/ReplaceGeometryAction.ts @@ -13,7 +13,6 @@ import {Utils} from "../../../Utils"; import {OsmConnection} from "../OsmConnection"; import {GeoJSONObject} from "@turf/turf"; import FeaturePipeline from "../../FeatureSource/FeaturePipeline"; -import DeleteAction from "./DeleteAction"; export default class ReplaceGeometryAction extends OsmChangeAction { /** diff --git a/Models/Constants.ts b/Models/Constants.ts index 330f11c961..f470b53ebd 100644 --- a/Models/Constants.ts +++ b/Models/Constants.ts @@ -2,7 +2,7 @@ import {Utils} from "../Utils"; export default class Constants { - public static vNumber = "0.13.0-alpha-9"; + public static vNumber = "0.13.0-alpha-10"; public static ImgurApiKey = '7070e7167f0a25a' public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85" diff --git a/UI/Popup/ImportButton.ts b/UI/Popup/ImportButton.ts index 2c5d7cf7d6..2650312b11 100644 --- a/UI/Popup/ImportButton.ts +++ b/UI/Popup/ImportButton.ts @@ -308,6 +308,8 @@ export class ConflateButton extends AbstractImportButton { args: { max_snap_distance: string; snap_onto_layers: string; icon: string; text: string; tags: string; newTags: UIEventSource; targetLayer: string }, tagSource: UIEventSource, guiState: DefaultGuiState, feature: any, onCancelClicked: () => void): BaseUIElement { + return new FixedUiElement("ReplaceGeometry is currently very broken - use mapcomplete.osm.be for now").SetClass("alert") + const nodesMustMatch = args.snap_onto_layers?.split(";")?.map((tag, i) => TagUtils.Tag(tag, "TagsSpec for import button " + i)) const mergeConfigs = [] From 7f829a3578b726d89fd4d1fadb69bd5bd94e3f73 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 23 Dec 2021 21:28:41 +0100 Subject: [PATCH 05/18] Add export_as_geojson, open_in_id and open_in_josm special renderings --- UI/BigComponents/CopyrightPanel.ts | 119 +++++++++++++++-------- UI/Popup/FeatureInfoBox.ts | 10 +- UI/SpecialVisualizations.ts | 38 +++++++- assets/layers/conflation/conflation.json | 2 +- assets/layers/matchpoint/matchpoint.json | 17 ++-- assets/themes/grb_import/grb.json | 13 +-- langs/en.json | 3 +- test/TestHelper.ts | 2 +- 8 files changed, 144 insertions(+), 60 deletions(-) diff --git a/UI/BigComponents/CopyrightPanel.ts b/UI/BigComponents/CopyrightPanel.ts index d88b1a36ff..187d21e36f 100644 --- a/UI/BigComponents/CopyrightPanel.ts +++ b/UI/BigComponents/CopyrightPanel.ts @@ -19,9 +19,82 @@ import Loc from "../../Models/Loc"; import Toggle from "../Input/Toggle"; import {OsmConnection} from "../../Logic/Osm/OsmConnection"; import Constants from "../../Models/Constants"; -import PrivacyPolicy from "./PrivacyPolicy"; import ContributorCount from "../../Logic/ContributorCount"; +export class OpenIdEditor extends VariableUiElement { + constructor(state : {locationControl: UIEventSource}, iconStyle? : string, objectId?: string) { + const t = Translations.t.general.attribution + super(state.locationControl.map(location => { + let elementSelect = ""; + if(objectId !== undefined){ + const parts = objectId.split("/") + const tp = parts[0] + if(parts.length === 2 && !isNaN(Number(parts[1])) && (tp === "node" || tp === "way" || tp === "relation")){ + elementSelect = "&"+ tp+"="+parts[1] + } + } + const idLink = `https://www.openstreetmap.org/edit?editor=id${elementSelect}#map=${location?.zoom ?? 0}/${location?.lat ?? 0}/${location?.lon ?? 0}` + return new SubtleButton(Svg.pencil_ui().SetStyle(iconStyle), t.editId, {url: idLink, newTab: true}) + })); + } + +} + +export class OpenMapillary extends VariableUiElement { + constructor(state : {locationControl: UIEventSource}, iconStyle? : string) { + const t = Translations.t.general.attribution + super( state.locationControl.map(location => { + const mapillaryLink = `https://www.mapillary.com/app/?focus=map&lat=${location?.lat ?? 0}&lng=${location?.lon ?? 0}&z=${Math.max((location?.zoom ?? 2) - 1, 1)}` + return new SubtleButton(Svg.mapillary_black_ui().SetStyle(iconStyle), t.openMapillary, { + url: mapillaryLink, + newTab: true + }) + })) + } +} + +export class OpenJosm extends Combine { + + constructor(state : {osmConnection: OsmConnection, currentBounds: UIEventSource,}, iconStyle? : string) { + const t = Translations.t.general.attribution + + const josmState = new UIEventSource(undefined) + // Reset after 15s + josmState.stabilized(15000).addCallbackD(_ => josmState.setData(undefined)) + + const stateIndication = new VariableUiElement(josmState.map(state => { + if (state === undefined) { + return undefined + } + state = state.toUpperCase() + if (state === "OK") { + return t.josmOpened.SetClass("thanks") + } + return t.josmNotOpened.SetClass("alert") + })); + + const toggle = new Toggle( + new SubtleButton(Svg.josm_logo_ui().SetStyle(iconStyle), t.editJosm).onClick(() => { + const bounds: any = state.currentBounds.data; + if (bounds === undefined) { + return undefined + } + const top = bounds.getNorth(); + const bottom = bounds.getSouth(); + const right = bounds.getEast(); + const left = bounds.getWest(); + const josmLink = `http://127.0.0.1:8111/load_and_zoom?left=${left}&right=${right}&top=${top}&bottom=${bottom}` + Utils.download(josmLink).then(answer => josmState.setData(answer.replace(/\n/g, '').trim())).catch(_ => josmState.setData("ERROR")) + }), undefined, state.osmConnection.userDetails.map(ud => ud.loggedIn && ud.csCount >= Constants.userJourney.historyLinkVisible)) + + super([stateIndication, toggle]); + + } + + +} + + /** * The attribution panel shown on mobile */ @@ -39,10 +112,7 @@ export default class CopyrightPanel extends Combine { const t = Translations.t.general.attribution const layoutToUse = state.layoutToUse - const josmState = new UIEventSource(undefined) - // Reset after 15s - josmState.stabilized(15000).addCallbackD(_ => josmState.setData(undefined)) - const iconStyle = "height: 1.5rem; width: auto" + const iconStyle = "height: 1.5rem; width: auto" const actionButtons = [ new SubtleButton(Svg.liberapay_ui().SetStyle(iconStyle), t.donate, { url: "https://liberapay.com/pietervdvn/", @@ -56,42 +126,9 @@ export default class CopyrightPanel extends Combine { url: Utils.OsmChaLinkFor(31, state.layoutToUse.id), newTab: true }), - new VariableUiElement(state.locationControl.map(location => { - const idLink = `https://www.openstreetmap.org/edit?editor=id#map=${location?.zoom ?? 0}/${location?.lat ?? 0}/${location?.lon ?? 0}` - return new SubtleButton(Svg.pencil_ui().SetStyle(iconStyle), t.editId, {url: idLink, newTab: true}) - })), - - new VariableUiElement(state.locationControl.map(location => { - const mapillaryLink = `https://www.mapillary.com/app/?focus=map&lat=${location?.lat ?? 0}&lng=${location?.lon ?? 0}&z=${Math.max((location?.zoom ?? 2) - 1, 1)}` - return new SubtleButton(Svg.mapillary_black_ui().SetStyle(iconStyle), t.openMapillary, { - url: mapillaryLink, - newTab: true - }) - })), - new VariableUiElement(josmState.map(state => { - if (state === undefined) { - return undefined - } - state = state.toUpperCase() - if (state === "OK") { - return t.josmOpened.SetClass("thanks") - } - return t.josmNotOpened.SetClass("alert") - })), - new Toggle( - new SubtleButton(Svg.josm_logo_ui().SetStyle(iconStyle), t.editJosm).onClick(() => { - const bounds: any = state.currentBounds.data; - if (bounds === undefined) { - return undefined - } - const top = bounds.getNorth(); - const bottom = bounds.getSouth(); - const right = bounds.getEast(); - const left = bounds.getWest(); - const josmLink = `http://127.0.0.1:8111/load_and_zoom?left=${left}&right=${right}&top=${top}&bottom=${bottom}` - Utils.download(josmLink).then(answer => josmState.setData(answer.replace(/\n/g, '').trim())).catch(_ => josmState.setData("ERROR")) - }), undefined, state.osmConnection.userDetails.map(ud => ud.loggedIn && ud.csCount >= Constants.userJourney.historyLinkVisible)), - + new OpenIdEditor(state, iconStyle), + new OpenMapillary(state, iconStyle), + new OpenJosm(state, iconStyle) ] const iconAttributions = Utils.NoNull(Array.from(layoutToUse.ExtractImages())) diff --git a/UI/Popup/FeatureInfoBox.ts b/UI/Popup/FeatureInfoBox.ts index 4b6853cdfd..9d637f7dab 100644 --- a/UI/Popup/FeatureInfoBox.ts +++ b/UI/Popup/FeatureInfoBox.ts @@ -18,7 +18,6 @@ import {Utils} from "../../Utils"; import {SubstitutedTranslation} from "../SubstitutedTranslation"; import MoveWizard from "./MoveWizard"; import Toggle from "../Input/Toggle"; -import {FixedUiElement} from "../Base/FixedUiElement"; export default class FeatureInfoBox extends ScrollableFullScreen { @@ -189,8 +188,13 @@ export default class FeatureInfoBox extends ScrollableFullScreen { new VariableUiElement( State.state.featureSwitchIsDebugging.map(isDebugging => { if (isDebugging) { - const config: TagRenderingConfig = new TagRenderingConfig({render: "{all_tags()}"}, ""); - return new TagRenderingAnswer(tags, config, "all_tags") + const config_all_tags: TagRenderingConfig = new TagRenderingConfig({render: "{all_tags()}"}, ""); + const config_download: TagRenderingConfig = new TagRenderingConfig({render: "{export_as_geojson()}"}, ""); + const config_id: TagRenderingConfig = new TagRenderingConfig({render: "{open_in_iD()}"}, ""); + + return new Combine([new TagRenderingAnswer(tags, config_all_tags, "all_tags"), + new TagRenderingAnswer(tags, config_download, ""), + new TagRenderingAnswer(tags, config_id, "")]) } }) ) diff --git a/UI/SpecialVisualizations.ts b/UI/SpecialVisualizations.ts index e7d098da0d..df2ff26d60 100644 --- a/UI/SpecialVisualizations.ts +++ b/UI/SpecialVisualizations.ts @@ -37,6 +37,7 @@ import FeaturePipelineState from "../Logic/State/FeaturePipelineState"; import {ConflateButton, ImportPointButton, ImportWayButton} from "./Popup/ImportButton"; import TagApplyButton from "./Popup/TagApplyButton"; import AutoApplyButton from "./Popup/AutoApplyButton"; +import {OpenIdEditor} from "./BigComponents/CopyrightPanel"; export interface SpecialVisualization { funcName: string, @@ -543,7 +544,7 @@ export default class SpecialVisualizations { const t = Translations.t.general.download; return new SubtleButton(Svg.download_ui(), - new Combine([t.downloadGpx.SetClass("font-bold text-lg"), + new Combine([t.downloadFeatureAsGpx.SetClass("font-bold text-lg"), t.downloadGpxHelper.SetClass("subtle")]).SetClass("flex flex-col") ).onClick(() => { console.log("Exporting as GPX!") @@ -560,6 +561,41 @@ export default class SpecialVisualizations { }) } }, + { + funcName: "export_as_geojson", + docs: "Exports the selected feature as GeoJson-file", + args: [], + constr: (state, tagSource, args) => { + const t = Translations.t.general.download; + + return new SubtleButton(Svg.download_ui(), + new Combine([t.downloadFeatureAsGeojson.SetClass("font-bold text-lg"), + t.downloadGeoJsonHelper.SetClass("subtle")]).SetClass("flex flex-col") + ).onClick(() => { + console.log("Exporting as Geojson") + const tags = tagSource.data + const feature = state.allElements.ContainingFeatures.get(tags.id) + const matchingLayer = state?.layoutToUse?.getMatchingLayer(tags) + const title = matchingLayer.title?.GetRenderValue(tags)?.Subs(tags)?.txt ?? "geojson" + const data = JSON.stringify(feature, null, " "); + Utils.offerContentsAsDownloadableFile(data, title + "_mapcomplete_export.geojson", { + mimetype: "application/vnd.geo+json" + }) + + + }) + } + }, + { + funcName: "open_in_iD", + docs: "Opens the current view in the iD-editor", + args: [], + constr: (state, feature ) => { + return new OpenIdEditor(state, undefined, feature.data.id) + } + }, + + { funcName: "clear_location_history", docs: "A button to remove the travelled track information from the device", diff --git a/assets/layers/conflation/conflation.json b/assets/layers/conflation/conflation.json index 3ee868157e..4661cbdd09 100644 --- a/assets/layers/conflation/conflation.json +++ b/assets/layers/conflation/conflation.json @@ -16,7 +16,7 @@ { "location": "point", "icon": { - "render": "addSmall:#000", + "render": "addSmall:#000", "mappings": [ { "if": "detach=yes", diff --git a/assets/layers/matchpoint/matchpoint.json b/assets/layers/matchpoint/matchpoint.json index 983ba8025e..0a3d3080fe 100644 --- a/assets/layers/matchpoint/matchpoint.json +++ b/assets/layers/matchpoint/matchpoint.json @@ -3,11 +3,16 @@ "description": "The default rendering for a locationInput which snaps onto another object", "source": { "osmTags": { - "and": []} + "and": [] + } }, - "mapRendering": [{ - "location": ["point","centroid"], - "icon": "./assets/svg/crosshair-empty.svg" - }] - + "mapRendering": [ + { + "location": [ + "point", + "centroid" + ], + "icon": "./assets/svg/crosshair-empty.svg" + } + ] } \ No newline at end of file diff --git a/assets/themes/grb_import/grb.json b/assets/themes/grb_import/grb.json index 6088c82922..6b2948807b 100644 --- a/assets/themes/grb_import/grb.json +++ b/assets/themes/grb_import/grb.json @@ -99,8 +99,7 @@ "osmTags": "building~*", "maxCacheAge": 0 }, - "calculatedTags": [ - ], + "calculatedTags": [], "mapRendering": [ { "width": { @@ -319,7 +318,6 @@ "render": "Service road" }, "tagRenderings": [] - }, { "id": "generic_osm_object", @@ -475,7 +473,10 @@ "description": "Geometry which comes from GRB with tools to import them", "source": { "osmTags": { - "and": ["HUISNR~*","man_made!=mast"] + "and": [ + "HUISNR~*", + "man_made!=mast" + ] }, "geoJson": "https://betadata.grbosm.site/grb?bbox={x_min},{y_min},{x_max},{y_max}", "geoJsonZoomLevel": 18, @@ -508,7 +509,8 @@ "id": "Import-button", "render": "{import_way_button(OSM-buildings,building=$building;man_made=$man_made; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref; addr:street=$addr:street; addr:housenumber=$addr:housenumber; building:min_level=$_building:min_level, Upload this building to OpenStreetMap,,_is_part_of_building=true,1,_moveable=true)}", "mappings": [ - {"#": "Hide import button if intersection with other objects are detected", + { + "#": "Hide import button if intersection with other objects are detected", "if": "_intersects_with_other_features~*", "then": "This GRB building intersects with the following features: {_intersects_with_other_features}.
Fix the overlap and try again" }, @@ -555,7 +557,6 @@ "if": "_osm_obj:addr:housenumber~*", "then": "The overlapping building only has a housenumber known: {_osm_obj:addr:housenumber}" }, - { "if": "_osm_obj:id=", "then": "No overlapping OpenStreetMap-building found" diff --git a/langs/en.json b/langs/en.json index 6df801607f..06d42922b0 100644 --- a/langs/en.json +++ b/langs/en.json @@ -198,7 +198,8 @@ "downloadAsPdf": "Download a PDF of the current map", "downloadAsPdfHelper": "Ideal to print the current map", "downloadGeojson": "Download visible data as GeoJSON", - "downloadGpx": "Download as GPX-file", + "downloadFeatureAsGpx": "Download as GPX-file", + "downloadFeatureAsGeojson": "Download as GeoJson-file", "downloadGpxHelper": "A GPX-file can be used with most navigation devices and applications", "uploadGpx": "Upload your track to OpenStreetMap", "exporting": "Exporting…", diff --git a/test/TestHelper.ts b/test/TestHelper.ts index 3e31130f29..5910b97856 100644 --- a/test/TestHelper.ts +++ b/test/TestHelper.ts @@ -56,7 +56,7 @@ export default class T { * Returns an empty list if successful * @constructor */ - public Run(): ({ testsuite: string, name: string, msg: string } []) { + public Run(): { testsuite: string, name: string, msg: string } [] { const failures: { testsuite: string, name: string, msg: string } [] = [] for (const [name, test] of this._tests) { try { From d7d60da1480815da6026f0e4299d1d4418f747ef Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 23 Dec 2021 23:44:40 +0100 Subject: [PATCH 06/18] Fix crash in Wikidata preview box --- UI/Wikipedia/WikidataPreviewBox.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/UI/Wikipedia/WikidataPreviewBox.ts b/UI/Wikipedia/WikidataPreviewBox.ts index 525e102b55..b54ec1e188 100644 --- a/UI/Wikipedia/WikidataPreviewBox.ts +++ b/UI/Wikipedia/WikidataPreviewBox.ts @@ -138,10 +138,11 @@ export default class WikidataPreviewBox extends VariableUiElement { const key = extraProperty.property const display = extraProperty.display - const value: string[] = Array.from(wikidata.claims.get(key)) - if (value === undefined) { + if (wikidata.claims?.get(key) === undefined) { continue } + const value: string[] = Array.from(wikidata.claims.get(key)) + if (display instanceof Translation) { els.push(display.Subs({value: value.join(", ")}).SetClass("m-2")) continue From 92c63560efb0d64750d3b87394b81668a1ceedec Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Fri, 24 Dec 2021 02:48:04 +0100 Subject: [PATCH 07/18] Add workaround for turf.intersect which can't deal with touching polygons --- Logic/GeoOperations.ts | 17 +- package-lock.json | 3850 +++++++++++++++++++----------------- package.json | 10 +- test/GeoOperations.spec.ts | 14 +- test/TestHelper.ts | 13 +- 5 files changed, 2077 insertions(+), 1827 deletions(-) diff --git a/Logic/GeoOperations.ts b/Logic/GeoOperations.ts index 13d9bfdbad..2816621e20 100644 --- a/Logic/GeoOperations.ts +++ b/Logic/GeoOperations.ts @@ -357,7 +357,6 @@ export class GeoOperations { * Returns null if the features are not intersecting */ private static calculateInstersection(feature, otherFeature, featureBBox: BBox, otherFeatureBBox?: BBox): number { - try { if (feature.geometry.type === "LineString") { @@ -427,19 +426,25 @@ export class GeoOperations { return this.calculateInstersection(otherFeature, feature, otherFeatureBBox, featureBBox) } + try{ + const intersection = turf.intersect(feature, otherFeature); if (intersection == null) { return null; } return turf.area(intersection); // in m² + }catch(e){ + if(e.message === "Each LinearRing of a Polygon must have 4 or more Positions."){ + // WORKAROUND TIME! + // See https://github.com/Turfjs/turf/pull/2238 + return null; + } + throw e; + } } + throw "CalculateIntersection fallthrough: can not calculate an intersection between features" - } catch (exception) { - console.warn("EXCEPTION CAUGHT WHILE INTERSECTING: ", exception,"\nThe considered objects are",feature, otherFeature); - return undefined - } - return undefined; } /** diff --git a/package-lock.json b/package-lock.json index d0f21be4ee..375d926f09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,11 +10,11 @@ "license": "GPL", "dependencies": { "@babel/preset-env": "7.13.8", - "@turf/buffer": "^6.3.0", - "@turf/collect": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/length": "^6.3.0", - "@turf/turf": "^6.3.0", + "@turf/buffer": "^6.5.0", + "@turf/collect": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/turf": "^6.5.0", "@types/jquery": "^3.5.5", "@types/leaflet-markercluster": "^1.0.3", "@types/leaflet-providers": "^1.2.0", @@ -1642,1298 +1642,1573 @@ } }, "node_modules/@turf/along": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.3.0.tgz", - "integrity": "sha512-2j0nHp38IuzESyv5/9hLYM2MuUe155Kw390lkQtiLjhRtTeYQNEaRy+uhZhf3/DWrjGULH1HatLc5j0CmiwrJA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz", + "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==", "dependencies": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/angle": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.3.0.tgz", - "integrity": "sha512-wCWoK+7JKGYPZKYxdWwJJfqm1IQbUdOf4j5SENO6WJryXViM/ogRu2eAEqrmyrMYO84vonMSqiuPEuGoLqo9Xg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.5.0.tgz", + "integrity": "sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==", "dependencies": { - "@turf/bearing": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/area": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.3.0.tgz", - "integrity": "sha512-Y1cYyAQ2fk94npdgOeMF4msc2uabHY1m7A7ntixf1I8rkyDd6/iHh1IMy1QsM+VZXAEwDwsXhu+ZFYd3Jkeg4A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", + "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/bbox": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.3.0.tgz", - "integrity": "sha512-N4ue5Xopu1qieSHP2MA/CJGWHPKaTrVXQJjzHRNcY1vtsO126xbSaJhWUrFc5x5vVkXp0dcucGryO0r5m4o/KA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", + "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/bbox-clip": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.3.0.tgz", - "integrity": "sha512-DCFs1MdX3P7SzZiBjT1kWBp4g0cfv8Yn2/Ccq3JP4iVaqNQJujPfe0WwZjjTdXLbLLFTjoxnCJBjy3WZDmLvlw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.5.0.tgz", + "integrity": "sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/bbox-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.3.0.tgz", - "integrity": "sha512-CCyTBM8LzGRu/lReNlgDyjRO8NojtJ7EPPvSl3bdKQbNFsCm25gwe7Y3xsaCkWLNn5g89lQJI9Izf9xdEsENjQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.5.0.tgz", + "integrity": "sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/bearing": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.3.0.tgz", - "integrity": "sha512-apuUm9xN6VQLO33m7F2mmzlm3dHfeesJjMSzh9iehGtgmp1IaVndjdcIvs0ieiwm8bN9UhwXpfPtO3pV0n9SFw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz", + "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/bezier-spline": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.3.0.tgz", - "integrity": "sha512-5kJv7zLjuZPhjO8Z/eNT68UHwiDru6ihn2He0VFrnSJQJZI8V/TFXCob7GxncYFlKk7uHru8iMXGxFe3Y3P44w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.5.0.tgz", + "integrity": "sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-clockwise": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.3.0.tgz", - "integrity": "sha512-zW0j8uPjBS5QJqNmJIeatTH02E1S7OCuBNBvkoOUPifC/c2xJ120a1r73prBj1zMFr6k3UCjwG9V8whUMxIAYA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.5.0.tgz", + "integrity": "sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-contains": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.3.0.tgz", - "integrity": "sha512-1MW7B5G5tIu1lnAv3pXyFzl75wfBYnbA2GhwHDb4okIXMhloy/r5uIqAZHo0fOXykKVJS/gIfA/MioKIftoTug==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz", + "integrity": "sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-crosses": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.3.0.tgz", - "integrity": "sha512-ajCuNSSqQPN2p3Y1ERX4E/wEsNn5JANI2uNgGOpVAeNX48prQGCBANcG2FTMMB+WVqq9iIdQ4eB5mEg6I8TS4w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.5.0.tgz", + "integrity": "sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==", "dependencies": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/polygon-to-line": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/polygon-to-line": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-disjoint": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.3.0.tgz", - "integrity": "sha512-bVAwAJF05QPH0tf+qjR3kUcCyqTgYcCbXSMgXl6LQF6mSGuOutzNq1gCyRLCOdOcZtw4Oh4dqeP3ykwv8kDibw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.5.0.tgz", + "integrity": "sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==", "dependencies": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/polygon-to-line": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/polygon-to-line": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-equal": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.3.0.tgz", - "integrity": "sha512-eXr3oSHTvJYGyu/v57uNg0tnDHFnu+triwAaXtBh7lozt4d2riU8Ow71B+tjT9mBe/JRFfXIDsBWjbyB37y/6w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.5.0.tgz", + "integrity": "sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==", "dependencies": { - "@turf/clean-coords": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", + "@turf/clean-coords": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", "geojson-equality": "0.1.6" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-intersects": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.3.0.tgz", - "integrity": "sha512-2pHOYqHSKDo0rzHTiqwdAaxa+tHLwr4NaTAjOpuN2hipv9bErzGtv3e5IYceJBnT0u4akK17NTn6qAr7/7g2aQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.5.0.tgz", + "integrity": "sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==", "dependencies": { - "@turf/boolean-disjoint": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-disjoint": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-overlap": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.3.0.tgz", - "integrity": "sha512-rWh8JKTqlJ1m27FY8YeWcGoXutLyCVfSi2/8AOkXi2F+36P9GM4tHz19yKY3btbnHJTgSZf1xO2YhX2d0BmNqg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.5.0.tgz", + "integrity": "sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/line-overlap": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/line-overlap": "^6.5.0", + "@turf/meta": "^6.5.0", "geojson-equality": "0.1.6" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-parallel": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.3.0.tgz", - "integrity": "sha512-p5YcKtVON6fTE3+pffw16QZyg3uXRmZ8CNxZM7lhGrJrPnny7BD2Kz1z2fp+8EElf00kjX2vFbDjDftte4Xh3g==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.5.0.tgz", + "integrity": "sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==", "dependencies": { - "@turf/clean-coords": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0" + "@turf/clean-coords": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-point-in-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.3.0.tgz", - "integrity": "sha512-NqFSsoE6OwhDK19IllDQRhEQEkF7UVEOlqH9vgS1fGg4T6NcyKvACJs05c9457tL7QSbV9ZS53f2qiLneFL+qg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", + "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-point-on-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.3.0.tgz", - "integrity": "sha512-eScH8sfKJVjfbEX5Hgkt1nA7A8DUoiYD1riUVqTp2xikujrMfnYRjFpL/UAo01v33cPKZlhCXp7NE86bdOSrYg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz", + "integrity": "sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/boolean-within": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.3.0.tgz", - "integrity": "sha512-8XtVbzPp6J+lqZtDWVyIwSyVAVcnuie82ub56JEAhCf9w8FX5Db3qXQ76pFcOyy/woeXLZY/nIR58Q79PusrRw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.5.0.tgz", + "integrity": "sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/buffer": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.3.0.tgz", - "integrity": "sha512-B0GWgJzmTaaw1GvTd+Df+ToKSYphz9d6hPCOwXbE2vS5DdZryoxBfxQ32LSX/hW/vx7TLf7E4M0VJBb+Sn1DKA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.5.0.tgz", + "integrity": "sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/projection": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/projection": "^6.5.0", "d3-geo": "1.7.1", "turf-jsts": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/center": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.3.0.tgz", - "integrity": "sha512-41g/ZYwoBs2PK7tpAHhf4D6llHdRvY827HLXCld5D0IOnzsWPqDk7WnV8P5uq4g/gyH1/WfKQYn5SgfSj4sSfw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", + "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/center-mean": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.3.0.tgz", - "integrity": "sha512-BZsqThJmc7wUTxPj7/RYztaegPntR2bBFDPTJ/C+qN8lnRhCccCZ81npYunriwMQC1kyXd1BChGMwjFh3jfB+Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.5.0.tgz", + "integrity": "sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/center-median": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.3.0.tgz", - "integrity": "sha512-jMQzp4YLIPDWKAMpvyRmNOLcoCHy/OMsLIv6odmfBJc6q+5GkulXz4QW61a5o6XZNDkZiYe9f0QgNGaKH+HTWg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.5.0.tgz", + "integrity": "sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==", "dependencies": { - "@turf/center-mean": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/center-mean": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/center-of-mass": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.3.0.tgz", - "integrity": "sha512-dbiNo4VjNOskK/9hlifmb+cIsFgLqru3m/U1b+btDrliLzrFw3BEeLquZf3IZkOGMpVdIi5/F7IbkrPPz7HgWw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.5.0.tgz", + "integrity": "sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==", "dependencies": { - "@turf/centroid": "^6.3.0", - "@turf/convex": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/centroid": "^6.5.0", + "@turf/convex": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/centroid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.3.0.tgz", - "integrity": "sha512-7KTyqhUEqXDoyR/nf/jAXiW8ZVszEnrp5XZkgYyrf2GWdSovSO0iCN1J3bE2jkJv7IWyeDmGYL61GGzuTSZS2Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", + "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/circle": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.3.0.tgz", - "integrity": "sha512-5N3J4YQr1efidvPgvtIQYpxb7gBVEoo00IFC0JNH6KqIVBMttFZw3Wsqor34ya91m58A5m6HTiz9Cdm1ktrEdw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.5.0.tgz", + "integrity": "sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==", "dependencies": { - "@turf/destination": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/destination": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/clean-coords": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.3.0.tgz", - "integrity": "sha512-Ns7+vXHigKTclzqlFrUnXsXjtEWAu2YYurDxD5mrKXcncuisUIoKbFM55ZxeiiBj0ji8c1huR1xSqs8GVxZJJA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.5.0.tgz", + "integrity": "sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/clone": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.3.0.tgz", - "integrity": "sha512-GAgN89/9GCqUKECB1oY2hcTs0K2rZj+a2tY6VfM0ef9wwckuQZCKi+kKGUzhKVrmHee15jKV8n6DY0er8OndKg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.5.0.tgz", + "integrity": "sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/clusters": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.3.0.tgz", - "integrity": "sha512-NIT6LZ/zawt1nN7eC0VEII8J1QUx5qvUahtPKsADxHP27vDJDjnmGvUXvvC0XmibXt/RR9VRM5Rej04yn53g0A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.5.0.tgz", + "integrity": "sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/clusters-dbscan": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.3.0.tgz", - "integrity": "sha512-EHWHMEBSGf4dvobfvifMl2G9p9KATP9TSeSf1WY+ajLRPfn3slUPSM9hP+7eisDBgb/tS+wqQNcl7pEoo72pnw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.5.0.tgz", + "integrity": "sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==", "dependencies": { - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", "density-clustering": "1.3.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/clusters-kmeans": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.3.0.tgz", - "integrity": "sha512-cyHtW5nsOcs1p8l3mflX2805fOxR99FanXCP95U+001S4AwVSgxiOfTg8PUHg9nui2Qcq/PMBRQz80exb2UzyA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.5.0.tgz", + "integrity": "sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==", "dependencies": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", "skmeans": "0.9.7" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/collect": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.3.0.tgz", - "integrity": "sha512-alkKujZ02m2wYNixYjF4AFSzXTMbewf1QnJRrtog3snJHFN/tZB9iU3ZcwvxOSbO2Zwrw89A90HLe8k7oGUqXw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.5.0.tgz", + "integrity": "sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", "rbush": "2.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/combine": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.3.0.tgz", - "integrity": "sha512-/FKUxUvQhKDDBJ4CTr49rvanYbdrtlsbr+7p6H8Vv0EyfeWqwJ3qA8lRuAjPtK0StviYg2t6XTucvKd/3PPX3Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.5.0.tgz", + "integrity": "sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/concave": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.3.0.tgz", - "integrity": "sha512-9BPctrW2Oy9K2jjKv80tR26RQEJjwAAFwgG8JEBK8hSF9zdqa07fzx7Ncj+8hM9+3vF30f2TvQ8yxvoH7HSvXA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.5.0.tgz", + "integrity": "sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==", "dependencies": { - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/tin": "^6.3.0", - "topojson": "3.x" + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/tin": "^6.5.0", + "topojson-client": "3.x", + "topojson-server": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/convex": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.3.0.tgz", - "integrity": "sha512-YpiLKRu1suwbI/knCOd7Fg7LojV6Beonu8gQjCoaPdkBEz0/W3XqNpfWQhcqp+XR10a2g4RK5mi6bUUejToFBw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.5.0.tgz", + "integrity": "sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", "concaveman": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/destination": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.3.0.tgz", - "integrity": "sha512-aLt3U/XkJWyZW08Ln1qZwBNAGh27yhmYLu892+dBj3gKP6UUiR6ZopXxrBwjBVe00A6k2ktftKDn79qe0hptuw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz", + "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/difference": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz", - "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.5.0.tgz", + "integrity": "sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "polygon-clipping": "^0.15.2" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/difference/node_modules/polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "dependencies": { - "splaytree": "^3.1.0" - } - }, - "node_modules/@turf/difference/node_modules/splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - }, "node_modules/@turf/dissolve": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.3.0.tgz", - "integrity": "sha512-DxFH+3MQpBo3rIZSh9gjcdl00ZkyHAEK0DzTLq6JOS4vTHpYvFvDT07j/Vr+9cqfvWrAjGpQg92I8zMzh4XA6Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.5.0.tgz", + "integrity": "sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==", "dependencies": { - "@turf/boolean-overlap": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/union": "^6.3.0", - "geojson-rbush": "3.x", - "get-closest": "*" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/distance": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.3.0.tgz", - "integrity": "sha512-basi24ssNFnH3iXPFjp/aNUrukjObiFWoIyDRqKyBJxVwVOwAWvfk4d38QQyBj5nDo5IahYRq/Q+T47/5hSs9w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz", + "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/distance-weight": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.3.0.tgz", - "integrity": "sha512-o85n4q3WM0L292FV7ZKBtSdTzn20JRqcZSSktkJoxeuQJMHXlstRwviLiF5pTl5oDXO/mRdq6aPecvWkMAaiCQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.5.0.tgz", + "integrity": "sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==", "dependencies": { - "@turf/centroid": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/centroid": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/ellipse": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.3.0.tgz", - "integrity": "sha512-r+EvUK+IGgc3shvS/T1Wof2uCptS2fYmtcwMSFHnHjRnmUyrD4YFjPZT7ygxcDB91+UClZ6cdozR6vqBYzPAog==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.5.0.tgz", + "integrity": "sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/transform-rotate": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/transform-rotate": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/envelope": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.3.0.tgz", - "integrity": "sha512-9xmDTCogXJsAO0TrARA/lniMSEtAil9HIKXHDJ5N6zlZ2K5wfRdD2zDlqkgDT3t9oSvttSP3ltBf03fjMDt6Wg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.5.0.tgz", + "integrity": "sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/bbox-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/bbox-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/explode": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.3.0.tgz", - "integrity": "sha512-J3vOGwf2EJXfh1gifFtxAuuhVYWAMTRQL6jE3h9a8osNLO1nj8JGVxaL6fmJgdZ/A9cFPv1OYUndBzi86UYZvw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.5.0.tgz", + "integrity": "sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/flatten": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.3.0.tgz", - "integrity": "sha512-0V3qxOGqb0NulEpADPCs/+i/AUQuNSChGA4oy/YGicfMHjnMNapZfOVg3LJEAkd/Kqpw2eJjjKe0gaX5aXo/1w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.5.0.tgz", + "integrity": "sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/flip": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.3.0.tgz", - "integrity": "sha512-VTST1oaJFRyHOAbvY9kt8yKKCQt6aXpXeyVQRjhNESzlYLIQlTx3v+lI+eSSu+sc+SX4EDQltB1UdaVk7BIRJg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.5.0.tgz", + "integrity": "sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==", "dependencies": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/great-circle": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.3.0.tgz", - "integrity": "sha512-dpGJcRf2TLzBvVUZa0Eej3edXOQofLcp9qgotqDHK68spqYK8lnrXrdyyqzLlTHx3nxZkHvFUOl1lqj8G4NraQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.5.0.tgz", + "integrity": "sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/helpers": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz", - "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg==" + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", + "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", + "funding": { + "url": "https://opencollective.com/turf" + } }, "node_modules/@turf/hex-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.3.0.tgz", - "integrity": "sha512-adqOgpBJB+87bjnm5EKVklDuWsYtCrETlLrXpOw4CVyaqYEE2/Mvid25se/0TeGDfvIcnvIQvrApYL5O/sDaMw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.5.0.tgz", + "integrity": "sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==", "dependencies": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/intersect": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/intersect": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/interpolate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.3.0.tgz", - "integrity": "sha512-2gVMSj/Ri8l5KGkCTyTJTqSbZwfWco6tWGMZyG0fqcB61PA6pEedU+TShBOOEKu7eBlpSyHlkS7+uii1bEGUCA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.5.0.tgz", + "integrity": "sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/hex-grid": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/point-grid": "^6.3.0", - "@turf/square-grid": "^6.3.0", - "@turf/triangle-grid": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/hex-grid": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/point-grid": "^6.5.0", + "@turf/square-grid": "^6.5.0", + "@turf/triangle-grid": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/intersect": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz", - "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", + "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "polygon-clipping": "^0.15.2" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/intersect/node_modules/polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "dependencies": { - "splaytree": "^3.1.0" - } - }, - "node_modules/@turf/intersect/node_modules/splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - }, "node_modules/@turf/invariant": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz", - "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", + "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/isobands": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.3.0.tgz", - "integrity": "sha512-Ikk8LyVQJKsLH6nFYKEeUi9sShMVP9S63zy5CPMPvwRhZf0ix59tAEBfnk6DOfd0EzLLmEdfaAM2U0cRhkh9jA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.5.0.tgz", + "integrity": "sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==", "dependencies": { - "@turf/area": "^6.3.0", - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/area": "^6.5.0", + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", "object-assign": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/isolines": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.3.0.tgz", - "integrity": "sha512-z5hUIUcSaInGUhrx+vDZcCNWLS3MawzQGfc0TOUVDe03bO5sqUlaNyvx7C09Js4LEzsqqZ1GPIUvFPjePaXaVQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.5.0.tgz", + "integrity": "sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", "object-assign": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/kinks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz", - "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.5.0.tgz", + "integrity": "sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/length": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.3.0.tgz", - "integrity": "sha512-91MHtigpV7mbrMW3xyaPVtLWQU3p487t3YHU4vdxih03p+dFI512dX/FtWbd9LNgrtBt4PM1uo1WmafGvfStKA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz", + "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==", "dependencies": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-arc": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.3.0.tgz", - "integrity": "sha512-WAAUgAWGf+U02GhXWrplODyUm3X6LZnYyn4VJQ9BPsKyawfK+NtjP7KsZ1MipIgtixNq3Ceexep0AHGHos4Prw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.5.0.tgz", + "integrity": "sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==", "dependencies": { - "@turf/circle": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/circle": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-chunk": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.3.0.tgz", - "integrity": "sha512-Xfja7H6XEgFPaK37sg7WBb0pIiA9hfjXtF7A1QPrh8z+JFyuVJzveBG2mYvin5UKTwsMKXuby6s4FUvmoEFqjQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.5.0.tgz", + "integrity": "sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/length": "^6.3.0", - "@turf/line-slice-along": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/line-slice-along": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-intersect": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.3.0.tgz", - "integrity": "sha512-3naxR7XpkPd2vst3Mw6DFry4C9m3o0/f2n/xu5UAyxb88Ie4m2k+1eqkhzMMx/0L+E6iThWpLx7DASM6q6o9ow==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz", + "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/meta": "^6.5.0", "geojson-rbush": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-offset": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.3.0.tgz", - "integrity": "sha512-yzgmNc/8miyn+pH2ubT4rZb9uAPY6oLqkwmEdzy2fuU4yUFnCNN/nWvYP4acGdgaSfprJd+4MdlLFzWBJxSplw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.5.0.tgz", + "integrity": "sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-overlap": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.3.0.tgz", - "integrity": "sha512-fVyXfTpr/A+ZXZWG6PbuYz5rAGbTQWyrMZveCl2049SbOXSkVXGjUfpnLaklP0p+adw7eRR0LhZn6FGz9CQaFg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.5.0.tgz", + "integrity": "sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==", "dependencies": { - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0", "deep-equal": "1.x", "geojson-rbush": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-segment": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.3.0.tgz", - "integrity": "sha512-M+aDy83V+E7jYWNaf+b+A88yhnMrJhyg/lhAj6mU6UeB2PbruXB2qgSmmVDSE2dIknOvZZuIWNzEzUI07RO2kw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz", + "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-slice": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.3.0.tgz", - "integrity": "sha512-HEgVY7TcoRxh59DCb/7SUlX6x3RJWSEBspIfsxCv+2lhgb3aRekn+aELvr3VeY9fWPCXvOfELBH3PNjMhJMY2Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.5.0.tgz", + "integrity": "sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-slice-along": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.3.0.tgz", - "integrity": "sha512-3s6vGTxGgCTb3Wd1seyir49rRc0GsX6OZXiRP5VdlT3Aq0cuuCNJycgHCH+H8LiYrEQDUhNUWbGljreCH0/JCg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.5.0.tgz", + "integrity": "sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==", "dependencies": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-split": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.3.0.tgz", - "integrity": "sha512-Q0nUJ0vczy11piyEz0FaKScFwSQtb1HJ2RPEMCw1coUJhTCB02KBWQLImhYqwsD3uLg+H/fxaJ1Gva6EPWoDNQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.5.0.tgz", + "integrity": "sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0", - "@turf/square": "^6.3.0", - "@turf/truncate": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0", + "@turf/square": "^6.5.0", + "@turf/truncate": "^6.5.0", "geojson-rbush": "3.x" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/line-to-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.3.0.tgz", - "integrity": "sha512-754ywhQzcAylVSqQQwlv0TUMC5nCHp4nDle3X48tkHIKcnn4fJkW8O0YNhhQCE8p6NDcs0Ayi4qR0uHLPTzUWQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.5.0.tgz", + "integrity": "sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/mask": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.3.0.tgz", - "integrity": "sha512-2DbaHvmxz0ueQpGCo+6nXHhLqlmTjzGDkUL/ys6rgWTXj40udKakPwMNa2WrvzqHwowJsXWaWDp2GogRT5foDA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.5.0.tgz", + "integrity": "sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/union": "^6.3.0", - "rbush": "^2.0.1" + "@turf/helpers": "^6.5.0", + "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/meta": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.3.0.tgz", - "integrity": "sha512-qBJjaAJS9H3ap0HlGXyF/Bzfl0qkA9suafX/jnDsZvWMfVLt+s+o6twKrXOGk5t7nnNON2NFRC8+czxpu104EQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", + "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/midpoint": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.3.0.tgz", - "integrity": "sha512-ImiYK5l/QZh5aCynxCyHoaJYn4j1VhorVyw2XihHuwAtebTc+KRaBJpWSD2eJxo3Q3J+QepWMiiMvQFJgQ5uCQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.5.0.tgz", + "integrity": "sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==", "dependencies": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/moran-index": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.3.0.tgz", - "integrity": "sha512-qRsSqmYtvnKiGFbz3aU1up8Q8jY9MCflRdvKeTOJ2E3Z4xOIyOLXOrNvpLIM8CFcLwY06IInMRoaKi/CVOC54g==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.5.0.tgz", + "integrity": "sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==", "dependencies": { - "@turf/distance-weight": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/distance-weight": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/nearest-point": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.3.0.tgz", - "integrity": "sha512-eovLuWxO2cQaKETbf1OhnWYkRYYgwuDhJAvLU9ZpXnqk2tNE06gt/2C5oJJiSlh4ZksDM8ryHZicswaXrYz+qA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.5.0.tgz", + "integrity": "sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==", "dependencies": { - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/nearest-point-on-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.3.0.tgz", - "integrity": "sha512-b4C9Md1VbGn9chMgdSj2grJD4w4t0owEWOKEBwOZfdhrcksyOedVvKB7XqOFdj/8Jitel40EKAC5LQTNu24kEQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz", + "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==", "dependencies": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/nearest-point-to-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.3.0.tgz", - "integrity": "sha512-1ut4u1KXHwXc6qdnDLkhTdPUdeHOmdmysMBxnNNFH7UTefi3XfR8BF/NOxNP8g7OKJrZ2vhDeR4PCL5xAsVH5A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.5.0.tgz", + "integrity": "sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/point-to-line-distance": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/point-to-line-distance": "^6.5.0", "object-assign": "*" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/planepoint": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.3.0.tgz", - "integrity": "sha512-RDfzUiwB3P3bGeRBZf/czZdtQsqUIVQePaAU5ijCqTBdR1V0TuVbRig1WE0XD4j5dM242OEezHJ3Xqgo71Nzww==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.5.0.tgz", + "integrity": "sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/point-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.3.0.tgz", - "integrity": "sha512-1ERghdRXtA/5Z/To7X1Y9D1cvej3+ZCZXNZnM/0c+3sAioohjK5IXv2enR23p1ftA6Z3H7wug5IB4YmVzs4MaA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.5.0.tgz", + "integrity": "sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==", "dependencies": { - "@turf/boolean-within": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/boolean-within": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/point-on-feature": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.3.0.tgz", - "integrity": "sha512-zN35KN/IUAgOyVtlEQg1j71U8eoav2JPZOdWlEFHsjYQVm9cF+AKOkvBdm6LQWMWvCtwSqqghwe/zRKvzJPynw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.5.0.tgz", + "integrity": "sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==", "dependencies": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/nearest-point": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/nearest-point": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/point-to-line-distance": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.3.0.tgz", - "integrity": "sha512-AqCcj4A0GPzKb3w+q+C9ex0r5mC+u+Ee6VN2jY1p25dxBQJNpMZKDE5LcWtaXeD+pAk3ZGmvea8LR5S0AJukxA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.5.0.tgz", + "integrity": "sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==", "dependencies": { - "@turf/bearing": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/projection": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/projection": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/points-within-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.3.0.tgz", - "integrity": "sha512-ES/tLj5oZR7TBg7FSOy8bypBvXALwl2f36MmQ3AJfK0KvAeQ+mxFXTGslAK3ewL9fVVxWLsmbP9bPLSzWeuPAw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.5.0.tgz", + "integrity": "sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==", "dependencies": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/polygon-smooth": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.3.0.tgz", - "integrity": "sha512-60aMw3d57DXqdFyWU43c5gHaumCZ9jn6K5GqgeKTfmElIumdSspg9MEIW7d7z6qkPufPY34FczJ9yapMih5SIQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.5.0.tgz", + "integrity": "sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/polygon-tangents": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.3.0.tgz", - "integrity": "sha512-QEXsXgZKWV3mPPqxERIQ+DzBSvnO0R1c9FsHuHE0F49Cic+CRMPjEpnzQj39cOUQfwPlQl2ThuaKAljlQ5QNMQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.5.0.tgz", + "integrity": "sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-within": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/nearest-point": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/boolean-within": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/nearest-point": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/polygon-to-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.3.0.tgz", - "integrity": "sha512-KFGlQlGOBayBvELz+tip1zCa3eB8xyZePZUZ3I3OnU7mk0FFzJzvLTmPUc7MupgqORT4LkNGmyKSVWaz38NTig==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.5.0.tgz", + "integrity": "sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/polygonize": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.3.0.tgz", - "integrity": "sha512-v1w5ibIJ5to3+nuitVNyukPMMY+z++y3e55TBuot1vkAEyCi538Kc8Qz0eWONPGZKzwYtQtkve2NIp0BBeNd5g==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.5.0.tgz", + "integrity": "sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==", "dependencies": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/envelope": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/envelope": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/projection": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.3.0.tgz", - "integrity": "sha512-IpSs7Q6G6xi47ynVlYYVegPLy6Jc0yo3/DcIm83jaJa4NnzPFXIFZT0v9Fe1N8MraHZqiqaSPbVnJXCGwR12lg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.5.0.tgz", + "integrity": "sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==", "dependencies": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/random": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.3.0.tgz", - "integrity": "sha512-jSKNqLCOc/xUPoQp8jZLUYTrtID1PNJV7eLXMbJdHdcYwU7d6dTkrdgI08ZU/Nc4qJv1ZAlWO/xEyKGtC1RgrQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.5.0.tgz", + "integrity": "sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/rectangle-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.3.0.tgz", - "integrity": "sha512-XQAjpprUhGA9aoVH8H6lqZb0Dk8SZ2djKAPD6dDplFgrufdmP1Fe1BfbsdBgjyfPrdR7hSffLyEAwC3bhfJo2w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.5.0.tgz", + "integrity": "sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==", "dependencies": { - "@turf/boolean-intersects": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/boolean-intersects": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/rewind": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.3.0.tgz", - "integrity": "sha512-56HwvOZ4r4/wXr8l8zCpdjZ3bxY6Ee7aokuJr/+BlVqikHdRHRx+FJpLGpykZU1YWdO7IiLK7ajX+clYPaqRKg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.5.0.tgz", + "integrity": "sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==", "dependencies": { - "@turf/boolean-clockwise": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-clockwise": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/rhumb-bearing": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.3.0.tgz", - "integrity": "sha512-/c/BE3huEUrwN6gx7Bg2FzfJqeU+TWk/slQPDHpbVunlIPbS6L28brqSVD+KXfMG8HQIzynz6Pm4Y+j5Iv4aWA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.5.0.tgz", + "integrity": "sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/rhumb-destination": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.3.0.tgz", - "integrity": "sha512-MaQf5wldfERfn8cjtbkD/6GUurAwD+sjedvDgV/chZ83yx7kXmRgrVMpRSGUbmGQ3Ww8dn38sUCapnM6M07+Rg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.5.0.tgz", + "integrity": "sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/rhumb-distance": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.3.0.tgz", - "integrity": "sha512-wMIQVvznusonnp/POeucFdA4Rubn0NrkcEMdxdcCgFK7OmTz0zU4CEnNONF2IUGkQ5WwoKiuS7MOTQ8OuCjSfQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.5.0.tgz", + "integrity": "sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/sample": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.3.0.tgz", - "integrity": "sha512-CmUkpoLIi+57jxBmYh4KW7S4Vculty84NC2ERNFZrLkVquewVYSppwKsaZtc0Hbap6a1N7hP4C80e2bPzRC4fg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.5.0.tgz", + "integrity": "sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/sector": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.3.0.tgz", - "integrity": "sha512-bHaDlHzCKEl5G+EEXdMTk3MFC8Yl5QjwrMVakF2Usi0P0c7hp6r10QVOjq9nmn6jvZHTPaiG2A4z9unkWIFxIg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.5.0.tgz", + "integrity": "sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==", "dependencies": { - "@turf/circle": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-arc": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/circle": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-arc": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/shortest-path": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.3.0.tgz", - "integrity": "sha512-dc50vcgb6G/nyljCdfxS4T3tGb2f45MkKEFdz6sVTYqjNakPnRoJao8xvInVsf1i2J53dWNU635oZhW9P1nqKg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.5.0.tgz", + "integrity": "sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/bbox-polygon": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/clean-coords": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/transform-scale": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/bbox-polygon": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/clean-coords": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/transform-scale": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/simplify": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.3.0.tgz", - "integrity": "sha512-6a+9oKwZpZk3Oohz9koQZGXh1qb+/UgUz2yW2bunjjlKpBdBFhRbEKi0KeprgPGFLLTMjf0tybhO1rFwiz6S1w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.5.0.tgz", + "integrity": "sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==", "dependencies": { - "@turf/clean-coords": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clean-coords": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/square": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.3.0.tgz", - "integrity": "sha512-/nRGsV0DlUcOYv+gKAkIADSf+HooNLbOLBTUdhq9Piy3LuAWIXT+Rt5XN+NuNZP+84Al34GA1fR+BxqQ4reh7w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.5.0.tgz", + "integrity": "sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==", "dependencies": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/square-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.3.0.tgz", - "integrity": "sha512-ZCgThI5hPLJNVErCB9zkJ3w3OpW6BbrOqyrxFbwlYGZrZ6uj52/j8PWQtwnmiqdv0k8+Cbxrap7E6//Oks4jIw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.5.0.tgz", + "integrity": "sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/rectangle-grid": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/rectangle-grid": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/standard-deviational-ellipse": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.3.0.tgz", - "integrity": "sha512-e8CeSUv5FLpzlJxiOr9lDtJIY3e/JKW4is+gBO8rMTQNFbWyrqXtzhyTfrwXEPKmaeei1DK9ixxj/oRDna25Hw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.5.0.tgz", + "integrity": "sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==", "dependencies": { - "@turf/center-mean": "^6.3.0", - "@turf/ellipse": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/points-within-polygon": "^6.3.0" + "@turf/center-mean": "^6.5.0", + "@turf/ellipse": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/points-within-polygon": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/tag": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.3.0.tgz", - "integrity": "sha512-3L//rLql+ILeFuZ5L/sPm0f5NcHrNgUnGiB1hSIp3kdhhIIiZUpcktJUbksTvID67JJlP3smfyIQiU++LZW21w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.5.0.tgz", + "integrity": "sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==", "dependencies": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/tesselate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.3.0.tgz", - "integrity": "sha512-SkBHJCci/ergp/Y1TIfBRavdEJgFatQDz+ySdggXHT+mBiJEOEia3N+8V89RVOnORXTCDsjzWOWwftCS/J2sKQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.5.0.tgz", + "integrity": "sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==", "dependencies": { - "@turf/helpers": "^6.3.0", + "@turf/helpers": "^6.5.0", "earcut": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/tin": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.3.0.tgz", - "integrity": "sha512-obk9vyzKo3o3Dy4fPlb8IROb9LdMlz4LvKZ63DNtQsxwrWsc+og0EOh2mpvZrCIeoObx3ah5SnuAh14xH4JybA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.5.0.tgz", + "integrity": "sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==", "dependencies": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/transform-rotate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.3.0.tgz", - "integrity": "sha512-6CPfmDdaXjbBoPeyHkui704vz6MD3MoI09LGRVJ/RIo1uH/OL6RDSlCfLxFtkE33FJ7VV4giczc3LF1UP5Oh9w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.5.0.tgz", + "integrity": "sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==", "dependencies": { - "@turf/centroid": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0" + "@turf/centroid": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/transform-scale": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.3.0.tgz", - "integrity": "sha512-UnLWEXAUdZy7JYbylMjYczPUkxXlUK1nMgv7zEzQ+8mczysPVsgB/FDyiexY2bgVEEBMeDqFSHtqLRavXljI0A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.5.0.tgz", + "integrity": "sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==", "dependencies": { - "@turf/bbox": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/transform-translate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.3.0.tgz", - "integrity": "sha512-ZGAK3T6wdYLOIKr/FHl+i09b1vhPV3XWHw4/M27xA6US2rNcO6/jkLjskdME/3JzJDFmGa8F2vlPqlhtWWoRSw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.5.0.tgz", + "integrity": "sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==", "dependencies": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/triangle-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.3.0.tgz", - "integrity": "sha512-2AExXl7pTvRKOyGowuvvUm0tTyLQl+xzvv+mgWgNyg84qQptGN3HFH/QS4quoQdEzOyHNLFHgloNn6cWFX9v4A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.5.0.tgz", + "integrity": "sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==", "dependencies": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/intersect": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/intersect": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/truncate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.3.0.tgz", - "integrity": "sha512-fvzR3BUODPciEBELLqqAggEEeb1L0d79WZYb9HKaoSB0GKTTgNrEbkTXiiGEjGJ1s1FMqXOEp0DKsLvvb1h4OA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.5.0.tgz", + "integrity": "sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/turf": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.3.0.tgz", - "integrity": "sha512-6CcUammJKsn6mI7/+DlnXqf1iAk5HZ86/wmHIVG6VTmmPBP5drWSjoRUcaiXQADzLLuR9eZ3kl11KEOdvn9DmQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.5.0.tgz", + "integrity": "sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==", "dependencies": { - "@turf/along": "^6.3.0", - "@turf/angle": "^6.3.0", - "@turf/area": "^6.3.0", - "@turf/bbox": "^6.3.0", - "@turf/bbox-clip": "^6.3.0", - "@turf/bbox-polygon": "^6.3.0", - "@turf/bearing": "^6.3.0", - "@turf/bezier-spline": "^6.3.0", - "@turf/boolean-clockwise": "^6.3.0", - "@turf/boolean-contains": "^6.3.0", - "@turf/boolean-crosses": "^6.3.0", - "@turf/boolean-disjoint": "^6.3.0", - "@turf/boolean-equal": "^6.3.0", - "@turf/boolean-intersects": "^6.3.0", - "@turf/boolean-overlap": "^6.3.0", - "@turf/boolean-parallel": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/boolean-within": "^6.3.0", - "@turf/buffer": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/center-mean": "^6.3.0", - "@turf/center-median": "^6.3.0", - "@turf/center-of-mass": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/circle": "^6.3.0", - "@turf/clean-coords": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/clusters": "^6.3.0", - "@turf/clusters-dbscan": "^6.3.0", - "@turf/clusters-kmeans": "^6.3.0", - "@turf/collect": "^6.3.0", - "@turf/combine": "^6.3.0", - "@turf/concave": "^6.3.0", - "@turf/convex": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/difference": "^6.3.0", - "@turf/dissolve": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/distance-weight": "^6.3.0", - "@turf/ellipse": "^6.3.0", - "@turf/envelope": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/flatten": "^6.3.0", - "@turf/flip": "^6.3.0", - "@turf/great-circle": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/hex-grid": "^6.3.0", - "@turf/interpolate": "^6.3.0", - "@turf/intersect": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/isobands": "^6.3.0", - "@turf/isolines": "^6.3.0", - "@turf/kinks": "^6.3.0", - "@turf/length": "^6.3.0", - "@turf/line-arc": "^6.3.0", - "@turf/line-chunk": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/line-offset": "^6.3.0", - "@turf/line-overlap": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/line-slice": "^6.3.0", - "@turf/line-slice-along": "^6.3.0", - "@turf/line-split": "^6.3.0", - "@turf/line-to-polygon": "^6.3.0", - "@turf/mask": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/midpoint": "^6.3.0", - "@turf/moran-index": "^6.3.0", - "@turf/nearest-point": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0", - "@turf/nearest-point-to-line": "^6.3.0", - "@turf/planepoint": "^6.3.0", - "@turf/point-grid": "^6.3.0", - "@turf/point-on-feature": "^6.3.0", - "@turf/point-to-line-distance": "^6.3.0", - "@turf/points-within-polygon": "^6.3.0", - "@turf/polygon-smooth": "^6.3.0", - "@turf/polygon-tangents": "^6.3.0", - "@turf/polygon-to-line": "^6.3.0", - "@turf/polygonize": "^6.3.0", - "@turf/projection": "^6.3.0", - "@turf/random": "^6.3.0", - "@turf/rewind": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0", - "@turf/sample": "^6.3.0", - "@turf/sector": "^6.3.0", - "@turf/shortest-path": "^6.3.0", - "@turf/simplify": "^6.3.0", - "@turf/square": "^6.3.0", - "@turf/square-grid": "^6.3.0", - "@turf/standard-deviational-ellipse": "^6.3.0", - "@turf/tag": "^6.3.0", - "@turf/tesselate": "^6.3.0", - "@turf/tin": "^6.3.0", - "@turf/transform-rotate": "^6.3.0", - "@turf/transform-scale": "^6.3.0", - "@turf/transform-translate": "^6.3.0", - "@turf/triangle-grid": "^6.3.0", - "@turf/truncate": "^6.3.0", - "@turf/union": "^6.3.0", - "@turf/unkink-polygon": "^6.3.0", - "@turf/voronoi": "^6.3.0" + "@turf/along": "^6.5.0", + "@turf/angle": "^6.5.0", + "@turf/area": "^6.5.0", + "@turf/bbox": "^6.5.0", + "@turf/bbox-clip": "^6.5.0", + "@turf/bbox-polygon": "^6.5.0", + "@turf/bearing": "^6.5.0", + "@turf/bezier-spline": "^6.5.0", + "@turf/boolean-clockwise": "^6.5.0", + "@turf/boolean-contains": "^6.5.0", + "@turf/boolean-crosses": "^6.5.0", + "@turf/boolean-disjoint": "^6.5.0", + "@turf/boolean-equal": "^6.5.0", + "@turf/boolean-intersects": "^6.5.0", + "@turf/boolean-overlap": "^6.5.0", + "@turf/boolean-parallel": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/boolean-within": "^6.5.0", + "@turf/buffer": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/center-mean": "^6.5.0", + "@turf/center-median": "^6.5.0", + "@turf/center-of-mass": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/circle": "^6.5.0", + "@turf/clean-coords": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/clusters": "^6.5.0", + "@turf/clusters-dbscan": "^6.5.0", + "@turf/clusters-kmeans": "^6.5.0", + "@turf/collect": "^6.5.0", + "@turf/combine": "^6.5.0", + "@turf/concave": "^6.5.0", + "@turf/convex": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/difference": "^6.5.0", + "@turf/dissolve": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/distance-weight": "^6.5.0", + "@turf/ellipse": "^6.5.0", + "@turf/envelope": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/flatten": "^6.5.0", + "@turf/flip": "^6.5.0", + "@turf/great-circle": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/hex-grid": "^6.5.0", + "@turf/interpolate": "^6.5.0", + "@turf/intersect": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/isobands": "^6.5.0", + "@turf/isolines": "^6.5.0", + "@turf/kinks": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/line-arc": "^6.5.0", + "@turf/line-chunk": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/line-offset": "^6.5.0", + "@turf/line-overlap": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/line-slice": "^6.5.0", + "@turf/line-slice-along": "^6.5.0", + "@turf/line-split": "^6.5.0", + "@turf/line-to-polygon": "^6.5.0", + "@turf/mask": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/midpoint": "^6.5.0", + "@turf/moran-index": "^6.5.0", + "@turf/nearest-point": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0", + "@turf/nearest-point-to-line": "^6.5.0", + "@turf/planepoint": "^6.5.0", + "@turf/point-grid": "^6.5.0", + "@turf/point-on-feature": "^6.5.0", + "@turf/point-to-line-distance": "^6.5.0", + "@turf/points-within-polygon": "^6.5.0", + "@turf/polygon-smooth": "^6.5.0", + "@turf/polygon-tangents": "^6.5.0", + "@turf/polygon-to-line": "^6.5.0", + "@turf/polygonize": "^6.5.0", + "@turf/projection": "^6.5.0", + "@turf/random": "^6.5.0", + "@turf/rewind": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0", + "@turf/sample": "^6.5.0", + "@turf/sector": "^6.5.0", + "@turf/shortest-path": "^6.5.0", + "@turf/simplify": "^6.5.0", + "@turf/square": "^6.5.0", + "@turf/square-grid": "^6.5.0", + "@turf/standard-deviational-ellipse": "^6.5.0", + "@turf/tag": "^6.5.0", + "@turf/tesselate": "^6.5.0", + "@turf/tin": "^6.5.0", + "@turf/transform-rotate": "^6.5.0", + "@turf/transform-scale": "^6.5.0", + "@turf/transform-translate": "^6.5.0", + "@turf/triangle-grid": "^6.5.0", + "@turf/truncate": "^6.5.0", + "@turf/union": "^6.5.0", + "@turf/unkink-polygon": "^6.5.0", + "@turf/voronoi": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/union": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.3.0.tgz", - "integrity": "sha512-m8yh13Q5E0Y+YC10+iI/Qq0Txt7UmSIFByc7DfNVlMMGTceqLFa8xGwSVdFuB/d6MWwKuzKonQMl1PUx/Vd2Iw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.5.0.tgz", + "integrity": "sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "polygon-clipping": "^0.15.2" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "polygon-clipping": "^0.15.3" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/union/node_modules/polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "dependencies": { - "splaytree": "^3.1.0" - } - }, - "node_modules/@turf/union/node_modules/splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - }, "node_modules/@turf/unkink-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.3.0.tgz", - "integrity": "sha512-XBUJkuDEr2R8cHpl+sHtV15J1S28/HCxhAHqfV+As3bTi81KhVhBK9EBwFGYCu9aerVgBK129FjRKXjnTYqtDw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.5.0.tgz", + "integrity": "sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==", "dependencies": { - "@turf/area": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/area": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", "rbush": "^2.0.1" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@turf/voronoi": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.3.0.tgz", - "integrity": "sha512-M0C6Kfo+qvKk4veRD7xW1PjMitJ0vqN6F4OOczxyX3tkj/oMyhWg+YbWk7mo/wKdSo9gCvHhnIVNkPsSSaFmyQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.5.0.tgz", + "integrity": "sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==", "dependencies": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", "d3-voronoi": "1.1.2" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, "node_modules/@types/geojson": { - "version": "7946.0.7", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", - "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, "node_modules/@types/jquery": { "version": "3.5.5", @@ -4457,12 +4732,12 @@ } }, "node_modules/concaveman": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.0.tgz", - "integrity": "sha512-OcqechF2/kubbffomKqjGEkb0ndlYhEbmyg/fxIGqdfYp5AZjD2Kl5hc97Hh3ngEuHU2314Z4KDbxL7qXGWrQQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.1.tgz", + "integrity": "sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==", "dependencies": { - "point-in-polygon": "^1.0.1", - "rbush": "^3.0.0", + "point-in-polygon": "^1.1.0", + "rbush": "^3.0.1", "robust-predicates": "^2.0.4", "tinyqueue": "^2.0.3" } @@ -6680,14 +6955,28 @@ } }, "node_modules/geojson-rbush": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.1.2.tgz", - "integrity": "sha512-grkfdg3HIeTjwTfiJe5FT8+fGU3fABCc+vRJDBwdQz9kkLF0Sbif2gs2JUzjewwgmnvLGy9fInySDeADoNuk7w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz", + "integrity": "sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==", "dependencies": { "@turf/bbox": "*", "@turf/helpers": "6.x", "@turf/meta": "6.x", - "rbush": "^2.0.0" + "@types/geojson": "7946.0.8", + "rbush": "^3.0.1" + } + }, + "node_modules/geojson-rbush/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "node_modules/geojson-rbush/node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "dependencies": { + "quickselect": "^2.0.0" } }, "node_modules/get-caller-file": { @@ -6699,11 +6988,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-closest": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/get-closest/-/get-closest-0.0.4.tgz", - "integrity": "sha1-JprHdtHmAiqg/Vht1wjop9Miaa8=" - }, "node_modules/get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", @@ -10385,6 +10669,14 @@ "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" }, + "node_modules/polygon-clipping": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", + "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", + "dependencies": { + "splaytree": "^3.1.0" + } + }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -13481,6 +13773,11 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" }, + "node_modules/splaytree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", + "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" + }, "node_modules/split": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", @@ -14515,33 +14812,10 @@ "node": ">=0.6" } }, - "node_modules/topojson": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/topojson/-/topojson-3.0.2.tgz", - "integrity": "sha512-u3zeuL6WEVL0dmsRn7uHZKc4Ao4gpW3sORUv+N3ezLTvY3JdCuyg0hvpWiIfFw8p/JwVN++SvAsFgcFEeR15rQ==", - "deprecated": "Use topojson-client, topojson-server or topojson-simplify directly.", - "dependencies": { - "topojson-client": "3.0.0", - "topojson-server": "3.0.0", - "topojson-simplify": "3.0.2" - }, - "bin": { - "geo2topo": "node_modules/topojson-server/bin/geo2topo", - "topo2geo": "node_modules/topojson-client/bin/topo2geo", - "topomerge": "node_modules/topojson-client/bin/topomerge", - "topoquantize": "node_modules/topojson-client/bin/topoquantize", - "toposimplify": "node_modules/topojson-simplify/bin/toposimplify" - } - }, - "node_modules/topojson/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/topojson/node_modules/topojson-client": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz", - "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "dependencies": { "commander": "2" }, @@ -14551,10 +14825,15 @@ "topoquantize": "bin/topoquantize" } }, - "node_modules/topojson/node_modules/topojson-server": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.0.tgz", - "integrity": "sha1-N4546Hw5cqe1vixdYENptrrmnF4=", + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/topojson-server": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", + "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", "dependencies": { "commander": "2" }, @@ -14562,17 +14841,10 @@ "geo2topo": "bin/geo2topo" } }, - "node_modules/topojson/node_modules/topojson-simplify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/topojson-simplify/-/topojson-simplify-3.0.2.tgz", - "integrity": "sha512-gyYSVRt4jO/0RJXKZQPzTDQRWV+D/nOfiljNUv0HBXslFLtq3yxRHrl7jbrjdbda5Ytdr7M8BZUI4OxU7tnbRQ==", - "dependencies": { - "commander": "2", - "topojson-client": "3" - }, - "bin": { - "toposimplify": "bin/toposimplify" - } + "node_modules/topojson-server/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/tough-cookie": { "version": "2.5.0", @@ -17699,1304 +17971,1252 @@ } }, "@turf/along": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.3.0.tgz", - "integrity": "sha512-2j0nHp38IuzESyv5/9hLYM2MuUe155Kw390lkQtiLjhRtTeYQNEaRy+uhZhf3/DWrjGULH1HatLc5j0CmiwrJA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz", + "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==", "requires": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/angle": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.3.0.tgz", - "integrity": "sha512-wCWoK+7JKGYPZKYxdWwJJfqm1IQbUdOf4j5SENO6WJryXViM/ogRu2eAEqrmyrMYO84vonMSqiuPEuGoLqo9Xg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-6.5.0.tgz", + "integrity": "sha512-4pXMbWhFofJJAOvTMCns6N4C8CMd5Ih4O2jSAG9b3dDHakj3O4yN1+Zbm+NUei+eVEZ9gFeVp9svE3aMDenIkw==", "requires": { - "@turf/bearing": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0" } }, "@turf/area": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.3.0.tgz", - "integrity": "sha512-Y1cYyAQ2fk94npdgOeMF4msc2uabHY1m7A7ntixf1I8rkyDd6/iHh1IMy1QsM+VZXAEwDwsXhu+ZFYd3Jkeg4A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", + "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/bbox": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.3.0.tgz", - "integrity": "sha512-N4ue5Xopu1qieSHP2MA/CJGWHPKaTrVXQJjzHRNcY1vtsO126xbSaJhWUrFc5x5vVkXp0dcucGryO0r5m4o/KA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", + "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/bbox-clip": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.3.0.tgz", - "integrity": "sha512-DCFs1MdX3P7SzZiBjT1kWBp4g0cfv8Yn2/Ccq3JP4iVaqNQJujPfe0WwZjjTdXLbLLFTjoxnCJBjy3WZDmLvlw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-6.5.0.tgz", + "integrity": "sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/bbox-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.3.0.tgz", - "integrity": "sha512-CCyTBM8LzGRu/lReNlgDyjRO8NojtJ7EPPvSl3bdKQbNFsCm25gwe7Y3xsaCkWLNn5g89lQJI9Izf9xdEsENjQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-6.5.0.tgz", + "integrity": "sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/bearing": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.3.0.tgz", - "integrity": "sha512-apuUm9xN6VQLO33m7F2mmzlm3dHfeesJjMSzh9iehGtgmp1IaVndjdcIvs0ieiwm8bN9UhwXpfPtO3pV0n9SFw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz", + "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/bezier-spline": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.3.0.tgz", - "integrity": "sha512-5kJv7zLjuZPhjO8Z/eNT68UHwiDru6ihn2He0VFrnSJQJZI8V/TFXCob7GxncYFlKk7uHru8iMXGxFe3Y3P44w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-6.5.0.tgz", + "integrity": "sha512-vokPaurTd4PF96rRgGVm6zYYC5r1u98ZsG+wZEv9y3kJTuJRX/O3xIY2QnTGTdbVmAJN1ouOsD0RoZYaVoXORQ==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/boolean-clockwise": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.3.0.tgz", - "integrity": "sha512-zW0j8uPjBS5QJqNmJIeatTH02E1S7OCuBNBvkoOUPifC/c2xJ120a1r73prBj1zMFr6k3UCjwG9V8whUMxIAYA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-6.5.0.tgz", + "integrity": "sha512-45+C7LC5RMbRWrxh3Z0Eihsc8db1VGBO5d9BLTOAwU4jR6SgsunTfRWR16X7JUwIDYlCVEmnjcXJNi/kIU3VIw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/boolean-contains": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.3.0.tgz", - "integrity": "sha512-1MW7B5G5tIu1lnAv3pXyFzl75wfBYnbA2GhwHDb4okIXMhloy/r5uIqAZHo0fOXykKVJS/gIfA/MioKIftoTug==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-6.5.0.tgz", + "integrity": "sha512-4m8cJpbw+YQcKVGi8y0cHhBUnYT+QRfx6wzM4GI1IdtYH3p4oh/DOBJKrepQyiDzFDaNIjxuWXBh0ai1zVwOQQ==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/boolean-crosses": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.3.0.tgz", - "integrity": "sha512-ajCuNSSqQPN2p3Y1ERX4E/wEsNn5JANI2uNgGOpVAeNX48prQGCBANcG2FTMMB+WVqq9iIdQ4eB5mEg6I8TS4w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-6.5.0.tgz", + "integrity": "sha512-gvshbTPhAHporTlQwBJqyfW+2yV8q/mOTxG6PzRVl6ARsqNoqYQWkd4MLug7OmAqVyBzLK3201uAeBjxbGw0Ng==", "requires": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/polygon-to-line": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/polygon-to-line": "^6.5.0" } }, "@turf/boolean-disjoint": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.3.0.tgz", - "integrity": "sha512-bVAwAJF05QPH0tf+qjR3kUcCyqTgYcCbXSMgXl6LQF6mSGuOutzNq1gCyRLCOdOcZtw4Oh4dqeP3ykwv8kDibw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-6.5.0.tgz", + "integrity": "sha512-rZ2ozlrRLIAGo2bjQ/ZUu4oZ/+ZjGvLkN5CKXSKBcu6xFO6k2bgqeM8a1836tAW+Pqp/ZFsTA5fZHsJZvP2D5g==", "requires": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/polygon-to-line": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/polygon-to-line": "^6.5.0" } }, "@turf/boolean-equal": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.3.0.tgz", - "integrity": "sha512-eXr3oSHTvJYGyu/v57uNg0tnDHFnu+triwAaXtBh7lozt4d2riU8Ow71B+tjT9mBe/JRFfXIDsBWjbyB37y/6w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-6.5.0.tgz", + "integrity": "sha512-cY0M3yoLC26mhAnjv1gyYNQjn7wxIXmL2hBmI/qs8g5uKuC2hRWi13ydufE3k4x0aNRjFGlg41fjoYLwaVF+9Q==", "requires": { - "@turf/clean-coords": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", + "@turf/clean-coords": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", "geojson-equality": "0.1.6" } }, "@turf/boolean-intersects": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.3.0.tgz", - "integrity": "sha512-2pHOYqHSKDo0rzHTiqwdAaxa+tHLwr4NaTAjOpuN2hipv9bErzGtv3e5IYceJBnT0u4akK17NTn6qAr7/7g2aQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-6.5.0.tgz", + "integrity": "sha512-nIxkizjRdjKCYFQMnml6cjPsDOBCThrt+nkqtSEcxkKMhAQj5OO7o2CecioNTaX8EayqwMGVKcsz27oP4mKPTw==", "requires": { - "@turf/boolean-disjoint": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-disjoint": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/boolean-overlap": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.3.0.tgz", - "integrity": "sha512-rWh8JKTqlJ1m27FY8YeWcGoXutLyCVfSi2/8AOkXi2F+36P9GM4tHz19yKY3btbnHJTgSZf1xO2YhX2d0BmNqg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-6.5.0.tgz", + "integrity": "sha512-8btMIdnbXVWUa1M7D4shyaSGxLRw6NjMcqKBcsTXcZdnaixl22k7ar7BvIzkaRYN3SFECk9VGXfLncNS3ckQUw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/line-overlap": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/line-overlap": "^6.5.0", + "@turf/meta": "^6.5.0", "geojson-equality": "0.1.6" } }, "@turf/boolean-parallel": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.3.0.tgz", - "integrity": "sha512-p5YcKtVON6fTE3+pffw16QZyg3uXRmZ8CNxZM7lhGrJrPnny7BD2Kz1z2fp+8EElf00kjX2vFbDjDftte4Xh3g==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-6.5.0.tgz", + "integrity": "sha512-aSHJsr1nq9e5TthZGZ9CZYeXklJyRgR5kCLm5X4urz7+MotMOp/LsGOsvKvK9NeUl9+8OUmfMn8EFTT8LkcvIQ==", "requires": { - "@turf/clean-coords": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0" + "@turf/clean-coords": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0" } }, "@turf/boolean-point-in-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.3.0.tgz", - "integrity": "sha512-NqFSsoE6OwhDK19IllDQRhEQEkF7UVEOlqH9vgS1fGg4T6NcyKvACJs05c9457tL7QSbV9ZS53f2qiLneFL+qg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz", + "integrity": "sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/boolean-point-on-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.3.0.tgz", - "integrity": "sha512-eScH8sfKJVjfbEX5Hgkt1nA7A8DUoiYD1riUVqTp2xikujrMfnYRjFpL/UAo01v33cPKZlhCXp7NE86bdOSrYg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.5.0.tgz", + "integrity": "sha512-A1BbuQ0LceLHvq7F/P7w3QvfpmZqbmViIUPHdNLvZimFNLo4e6IQunmzbe+8aSStH9QRZm3VOflyvNeXvvpZEQ==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/boolean-within": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.3.0.tgz", - "integrity": "sha512-8XtVbzPp6J+lqZtDWVyIwSyVAVcnuie82ub56JEAhCf9w8FX5Db3qXQ76pFcOyy/woeXLZY/nIR58Q79PusrRw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.5.0.tgz", + "integrity": "sha512-YQB3oU18Inx35C/LU930D36RAVe7LDXk1kWsQ8mLmuqYn9YdPsDQTMTkLJMhoQ8EbN7QTdy333xRQ4MYgToteQ==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/buffer": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.3.0.tgz", - "integrity": "sha512-B0GWgJzmTaaw1GvTd+Df+ToKSYphz9d6hPCOwXbE2vS5DdZryoxBfxQ32LSX/hW/vx7TLf7E4M0VJBb+Sn1DKA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-6.5.0.tgz", + "integrity": "sha512-qeX4N6+PPWbKqp1AVkBVWFerGjMYMUyencwfnkCesoznU6qvfugFHNAngNqIBVnJjZ5n8IFyOf+akcxnrt9sNg==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/projection": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/projection": "^6.5.0", "d3-geo": "1.7.1", "turf-jsts": "*" } }, "@turf/center": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.3.0.tgz", - "integrity": "sha512-41g/ZYwoBs2PK7tpAHhf4D6llHdRvY827HLXCld5D0IOnzsWPqDk7WnV8P5uq4g/gyH1/WfKQYn5SgfSj4sSfw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", + "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/center-mean": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.3.0.tgz", - "integrity": "sha512-BZsqThJmc7wUTxPj7/RYztaegPntR2bBFDPTJ/C+qN8lnRhCccCZ81npYunriwMQC1kyXd1BChGMwjFh3jfB+Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-6.5.0.tgz", + "integrity": "sha512-AAX6f4bVn12pTVrMUiB9KrnV94BgeBKpyg3YpfnEbBpkN/znfVhL8dG8IxMAxAoSZ61Zt9WLY34HfENveuOZ7Q==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/center-median": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.3.0.tgz", - "integrity": "sha512-jMQzp4YLIPDWKAMpvyRmNOLcoCHy/OMsLIv6odmfBJc6q+5GkulXz4QW61a5o6XZNDkZiYe9f0QgNGaKH+HTWg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-6.5.0.tgz", + "integrity": "sha512-dT8Ndu5CiZkPrj15PBvslpuf01ky41DEYEPxS01LOxp5HOUHXp1oJxsPxvc+i/wK4BwccPNzU1vzJ0S4emd1KQ==", "requires": { - "@turf/center-mean": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/center-mean": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/center-of-mass": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.3.0.tgz", - "integrity": "sha512-dbiNo4VjNOskK/9hlifmb+cIsFgLqru3m/U1b+btDrliLzrFw3BEeLquZf3IZkOGMpVdIi5/F7IbkrPPz7HgWw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-6.5.0.tgz", + "integrity": "sha512-EWrriU6LraOfPN7m1jZi+1NLTKNkuIsGLZc2+Y8zbGruvUW+QV7K0nhf7iZWutlxHXTBqEXHbKue/o79IumAsQ==", "requires": { - "@turf/centroid": "^6.3.0", - "@turf/convex": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/centroid": "^6.5.0", + "@turf/convex": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/centroid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.3.0.tgz", - "integrity": "sha512-7KTyqhUEqXDoyR/nf/jAXiW8ZVszEnrp5XZkgYyrf2GWdSovSO0iCN1J3bE2jkJv7IWyeDmGYL61GGzuTSZS2Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", + "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/circle": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.3.0.tgz", - "integrity": "sha512-5N3J4YQr1efidvPgvtIQYpxb7gBVEoo00IFC0JNH6KqIVBMttFZw3Wsqor34ya91m58A5m6HTiz9Cdm1ktrEdw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.5.0.tgz", + "integrity": "sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==", "requires": { - "@turf/destination": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/destination": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/clean-coords": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.3.0.tgz", - "integrity": "sha512-Ns7+vXHigKTclzqlFrUnXsXjtEWAu2YYurDxD5mrKXcncuisUIoKbFM55ZxeiiBj0ji8c1huR1xSqs8GVxZJJA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-6.5.0.tgz", + "integrity": "sha512-EMX7gyZz0WTH/ET7xV8MyrExywfm9qUi0/MY89yNffzGIEHuFfqwhcCqZ8O00rZIPZHUTxpmsxQSTfzJJA1CPw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/clone": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.3.0.tgz", - "integrity": "sha512-GAgN89/9GCqUKECB1oY2hcTs0K2rZj+a2tY6VfM0ef9wwckuQZCKi+kKGUzhKVrmHee15jKV8n6DY0er8OndKg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.5.0.tgz", + "integrity": "sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/clusters": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.3.0.tgz", - "integrity": "sha512-NIT6LZ/zawt1nN7eC0VEII8J1QUx5qvUahtPKsADxHP27vDJDjnmGvUXvvC0XmibXt/RR9VRM5Rej04yn53g0A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-6.5.0.tgz", + "integrity": "sha512-Y6gfnTJzQ1hdLfCsyd5zApNbfLIxYEpmDibHUqR5z03Lpe02pa78JtgrgUNt1seeO/aJ4TG1NLN8V5gOrHk04g==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/clusters-dbscan": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.3.0.tgz", - "integrity": "sha512-EHWHMEBSGf4dvobfvifMl2G9p9KATP9TSeSf1WY+ajLRPfn3slUPSM9hP+7eisDBgb/tS+wqQNcl7pEoo72pnw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-6.5.0.tgz", + "integrity": "sha512-SxZEE4kADU9DqLRiT53QZBBhu8EP9skviSyl+FGj08Y01xfICM/RR9ACUdM0aEQimhpu+ZpRVcUK+2jtiCGrYQ==", "requires": { - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", "density-clustering": "1.3.0" } }, "@turf/clusters-kmeans": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.3.0.tgz", - "integrity": "sha512-cyHtW5nsOcs1p8l3mflX2805fOxR99FanXCP95U+001S4AwVSgxiOfTg8PUHg9nui2Qcq/PMBRQz80exb2UzyA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-6.5.0.tgz", + "integrity": "sha512-DwacD5+YO8kwDPKaXwT9DV46tMBVNsbi1IzdajZu1JDSWoN7yc7N9Qt88oi+p30583O0UPVkAK+A10WAQv4mUw==", "requires": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", "skmeans": "0.9.7" } }, "@turf/collect": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.3.0.tgz", - "integrity": "sha512-alkKujZ02m2wYNixYjF4AFSzXTMbewf1QnJRrtog3snJHFN/tZB9iU3ZcwvxOSbO2Zwrw89A90HLe8k7oGUqXw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-6.5.0.tgz", + "integrity": "sha512-4dN/T6LNnRg099m97BJeOcTA5fSI8cu87Ydgfibewd2KQwBexO69AnjEFqfPX3Wj+Zvisj1uAVIZbPmSSrZkjg==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", "rbush": "2.x" } }, "@turf/combine": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.3.0.tgz", - "integrity": "sha512-/FKUxUvQhKDDBJ4CTr49rvanYbdrtlsbr+7p6H8Vv0EyfeWqwJ3qA8lRuAjPtK0StviYg2t6XTucvKd/3PPX3Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-6.5.0.tgz", + "integrity": "sha512-Q8EIC4OtAcHiJB3C4R+FpB4LANiT90t17uOd851qkM2/o6m39bfN5Mv0PWqMZIHWrrosZqRqoY9dJnzz/rJxYQ==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/concave": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.3.0.tgz", - "integrity": "sha512-9BPctrW2Oy9K2jjKv80tR26RQEJjwAAFwgG8JEBK8hSF9zdqa07fzx7Ncj+8hM9+3vF30f2TvQ8yxvoH7HSvXA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-6.5.0.tgz", + "integrity": "sha512-I/sUmUC8TC5h/E2vPwxVht+nRt+TnXIPRoztDFvS8/Y0+cBDple9inLSo9nnPXMXidrBlGXZ9vQx/BjZUJgsRQ==", "requires": { - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/tin": "^6.3.0", - "topojson": "3.x" + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/tin": "^6.5.0", + "topojson-client": "3.x", + "topojson-server": "3.x" } }, "@turf/convex": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.3.0.tgz", - "integrity": "sha512-YpiLKRu1suwbI/knCOd7Fg7LojV6Beonu8gQjCoaPdkBEz0/W3XqNpfWQhcqp+XR10a2g4RK5mi6bUUejToFBw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-6.5.0.tgz", + "integrity": "sha512-x7ZwC5z7PJB0SBwNh7JCeCNx7Iu+QSrH7fYgK0RhhNop13TqUlvHMirMLRgf2db1DqUetrAO2qHJeIuasquUWg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", "concaveman": "*" } }, "@turf/destination": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.3.0.tgz", - "integrity": "sha512-aLt3U/XkJWyZW08Ln1qZwBNAGh27yhmYLu892+dBj3gKP6UUiR6ZopXxrBwjBVe00A6k2ktftKDn79qe0hptuw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz", + "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/difference": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz", - "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.5.0.tgz", + "integrity": "sha512-l8iR5uJqvI+5Fs6leNbhPY5t/a3vipUF/3AeVLpwPQcgmedNXyheYuy07PcMGH5Jdpi5gItOiTqwiU/bUH4b3A==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "polygon-clipping": "^0.15.2" - }, - "dependencies": { - "polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "requires": { - "splaytree": "^3.1.0" - } - }, - "splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - } + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "polygon-clipping": "^0.15.3" } }, "@turf/dissolve": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.3.0.tgz", - "integrity": "sha512-DxFH+3MQpBo3rIZSh9gjcdl00ZkyHAEK0DzTLq6JOS4vTHpYvFvDT07j/Vr+9cqfvWrAjGpQg92I8zMzh4XA6Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-6.5.0.tgz", + "integrity": "sha512-WBVbpm9zLTp0Bl9CE35NomTaOL1c4TQCtEoO43YaAhNEWJOOIhZMFJyr8mbvYruKl817KinT3x7aYjjCMjTAsQ==", "requires": { - "@turf/boolean-overlap": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/union": "^6.3.0", - "geojson-rbush": "3.x", - "get-closest": "*" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "polygon-clipping": "^0.15.3" } }, "@turf/distance": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.3.0.tgz", - "integrity": "sha512-basi24ssNFnH3iXPFjp/aNUrukjObiFWoIyDRqKyBJxVwVOwAWvfk4d38QQyBj5nDo5IahYRq/Q+T47/5hSs9w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz", + "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/distance-weight": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.3.0.tgz", - "integrity": "sha512-o85n4q3WM0L292FV7ZKBtSdTzn20JRqcZSSktkJoxeuQJMHXlstRwviLiF5pTl5oDXO/mRdq6aPecvWkMAaiCQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-6.5.0.tgz", + "integrity": "sha512-a8qBKkgVNvPKBfZfEJZnC3DV7dfIsC3UIdpRci/iap/wZLH41EmS90nM+BokAJflUHYy8PqE44wySGWHN1FXrQ==", "requires": { - "@turf/centroid": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/centroid": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/ellipse": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.3.0.tgz", - "integrity": "sha512-r+EvUK+IGgc3shvS/T1Wof2uCptS2fYmtcwMSFHnHjRnmUyrD4YFjPZT7ygxcDB91+UClZ6cdozR6vqBYzPAog==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-6.5.0.tgz", + "integrity": "sha512-kuXtwFviw/JqnyJXF1mrR/cb496zDTSbGKtSiolWMNImYzGGkbsAsFTjwJYgD7+4FixHjp0uQPzo70KDf3AIBw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/transform-rotate": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/transform-rotate": "^6.5.0" } }, "@turf/envelope": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.3.0.tgz", - "integrity": "sha512-9xmDTCogXJsAO0TrARA/lniMSEtAil9HIKXHDJ5N6zlZ2K5wfRdD2zDlqkgDT3t9oSvttSP3ltBf03fjMDt6Wg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-6.5.0.tgz", + "integrity": "sha512-9Z+FnBWvOGOU4X+fMZxYFs1HjFlkKqsddLuMknRaqcJd6t+NIv5DWvPtDL8ATD2GEExYDiFLwMdckfr1yqJgHA==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/bbox-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/bbox-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/explode": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.3.0.tgz", - "integrity": "sha512-J3vOGwf2EJXfh1gifFtxAuuhVYWAMTRQL6jE3h9a8osNLO1nj8JGVxaL6fmJgdZ/A9cFPv1OYUndBzi86UYZvw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-6.5.0.tgz", + "integrity": "sha512-6cSvMrnHm2qAsace6pw9cDmK2buAlw8+tjeJVXMfMyY+w7ZUi1rprWMsY92J7s2Dar63Bv09n56/1V7+tcj52Q==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/flatten": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.3.0.tgz", - "integrity": "sha512-0V3qxOGqb0NulEpADPCs/+i/AUQuNSChGA4oy/YGicfMHjnMNapZfOVg3LJEAkd/Kqpw2eJjjKe0gaX5aXo/1w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-6.5.0.tgz", + "integrity": "sha512-IBZVwoNLVNT6U/bcUUllubgElzpMsNoCw8tLqBw6dfYg9ObGmpEjf9BIYLr7a2Yn5ZR4l7YIj2T7kD5uJjZADQ==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/flip": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.3.0.tgz", - "integrity": "sha512-VTST1oaJFRyHOAbvY9kt8yKKCQt6aXpXeyVQRjhNESzlYLIQlTx3v+lI+eSSu+sc+SX4EDQltB1UdaVk7BIRJg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-6.5.0.tgz", + "integrity": "sha512-oyikJFNjt2LmIXQqgOGLvt70RgE2lyzPMloYWM7OR5oIFGRiBvqVD2hA6MNw6JewIm30fWZ8DQJw1NHXJTJPbg==", "requires": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/great-circle": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.3.0.tgz", - "integrity": "sha512-dpGJcRf2TLzBvVUZa0Eej3edXOQofLcp9qgotqDHK68spqYK8lnrXrdyyqzLlTHx3nxZkHvFUOl1lqj8G4NraQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-6.5.0.tgz", + "integrity": "sha512-7ovyi3HaKOXdFyN7yy1yOMa8IyOvV46RC1QOQTT+RYUN8ke10eyqExwBpL9RFUPvlpoTzoYbM/+lWPogQlFncg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/helpers": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz", - "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg==" + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", + "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==" }, "@turf/hex-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.3.0.tgz", - "integrity": "sha512-adqOgpBJB+87bjnm5EKVklDuWsYtCrETlLrXpOw4CVyaqYEE2/Mvid25se/0TeGDfvIcnvIQvrApYL5O/sDaMw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-6.5.0.tgz", + "integrity": "sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==", "requires": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/intersect": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/intersect": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/interpolate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.3.0.tgz", - "integrity": "sha512-2gVMSj/Ri8l5KGkCTyTJTqSbZwfWco6tWGMZyG0fqcB61PA6pEedU+TShBOOEKu7eBlpSyHlkS7+uii1bEGUCA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-6.5.0.tgz", + "integrity": "sha512-LSH5fMeiGyuDZ4WrDJNgh81d2DnNDUVJtuFryJFup8PV8jbs46lQGfI3r1DJ2p1IlEJIz3pmAZYeTfMMoeeohw==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/hex-grid": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/point-grid": "^6.3.0", - "@turf/square-grid": "^6.3.0", - "@turf/triangle-grid": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/hex-grid": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/point-grid": "^6.5.0", + "@turf/square-grid": "^6.5.0", + "@turf/triangle-grid": "^6.5.0" } }, "@turf/intersect": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz", - "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", + "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "polygon-clipping": "^0.15.2" - }, - "dependencies": { - "polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "requires": { - "splaytree": "^3.1.0" - } - }, - "splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - } + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "polygon-clipping": "^0.15.3" } }, "@turf/invariant": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz", - "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", + "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/isobands": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.3.0.tgz", - "integrity": "sha512-Ikk8LyVQJKsLH6nFYKEeUi9sShMVP9S63zy5CPMPvwRhZf0ix59tAEBfnk6DOfd0EzLLmEdfaAM2U0cRhkh9jA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-6.5.0.tgz", + "integrity": "sha512-4h6sjBPhRwMVuFaVBv70YB7eGz+iw0bhPRnp+8JBdX1UPJSXhoi/ZF2rACemRUr0HkdVB/a1r9gC32vn5IAEkw==", "requires": { - "@turf/area": "^6.3.0", - "@turf/bbox": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/area": "^6.5.0", + "@turf/bbox": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", "object-assign": "*" } }, "@turf/isolines": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.3.0.tgz", - "integrity": "sha512-z5hUIUcSaInGUhrx+vDZcCNWLS3MawzQGfc0TOUVDe03bO5sqUlaNyvx7C09Js4LEzsqqZ1GPIUvFPjePaXaVQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-6.5.0.tgz", + "integrity": "sha512-6ElhiLCopxWlv4tPoxiCzASWt/jMRvmp6mRYrpzOm3EUl75OhHKa/Pu6Y9nWtCMmVC/RcWtiiweUocbPLZLm0A==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", "object-assign": "*" } }, "@turf/kinks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz", - "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.5.0.tgz", + "integrity": "sha512-ViCngdPt1eEL7hYUHR2eHR662GvCgTc35ZJFaNR6kRtr6D8plLaDju0FILeFFWSc+o8e3fwxZEJKmFj9IzPiIQ==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/length": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.3.0.tgz", - "integrity": "sha512-91MHtigpV7mbrMW3xyaPVtLWQU3p487t3YHU4vdxih03p+dFI512dX/FtWbd9LNgrtBt4PM1uo1WmafGvfStKA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz", + "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==", "requires": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/line-arc": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.3.0.tgz", - "integrity": "sha512-WAAUgAWGf+U02GhXWrplODyUm3X6LZnYyn4VJQ9BPsKyawfK+NtjP7KsZ1MipIgtixNq3Ceexep0AHGHos4Prw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-6.5.0.tgz", + "integrity": "sha512-I6c+V6mIyEwbtg9P9zSFF89T7QPe1DPTG3MJJ6Cm1MrAY0MdejwQKOpsvNl8LDU2ekHOlz2kHpPVR7VJsoMllA==", "requires": { - "@turf/circle": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/circle": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/line-chunk": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.3.0.tgz", - "integrity": "sha512-Xfja7H6XEgFPaK37sg7WBb0pIiA9hfjXtF7A1QPrh8z+JFyuVJzveBG2mYvin5UKTwsMKXuby6s4FUvmoEFqjQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-6.5.0.tgz", + "integrity": "sha512-i1FGE6YJaaYa+IJesTfyRRQZP31QouS+wh/pa6O3CC0q4T7LtHigyBSYjrbjSLfn2EVPYGlPCMFEqNWCOkC6zg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/length": "^6.3.0", - "@turf/line-slice-along": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/line-slice-along": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/line-intersect": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.3.0.tgz", - "integrity": "sha512-3naxR7XpkPd2vst3Mw6DFry4C9m3o0/f2n/xu5UAyxb88Ie4m2k+1eqkhzMMx/0L+E6iThWpLx7DASM6q6o9ow==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz", + "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/meta": "^6.5.0", "geojson-rbush": "3.x" } }, "@turf/line-offset": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.3.0.tgz", - "integrity": "sha512-yzgmNc/8miyn+pH2ubT4rZb9uAPY6oLqkwmEdzy2fuU4yUFnCNN/nWvYP4acGdgaSfprJd+4MdlLFzWBJxSplw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-6.5.0.tgz", + "integrity": "sha512-CEXZbKgyz8r72qRvPchK0dxqsq8IQBdH275FE6o4MrBkzMcoZsfSjghtXzKaz9vvro+HfIXal0sTk2mqV1lQTw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/line-overlap": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.3.0.tgz", - "integrity": "sha512-fVyXfTpr/A+ZXZWG6PbuYz5rAGbTQWyrMZveCl2049SbOXSkVXGjUfpnLaklP0p+adw7eRR0LhZn6FGz9CQaFg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-6.5.0.tgz", + "integrity": "sha512-xHOaWLd0hkaC/1OLcStCpfq55lPHpPNadZySDXYiYjEz5HXr1oKmtMYpn0wGizsLwrOixRdEp+j7bL8dPt4ojQ==", "requires": { - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0", "deep-equal": "1.x", "geojson-rbush": "3.x" } }, "@turf/line-segment": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.3.0.tgz", - "integrity": "sha512-M+aDy83V+E7jYWNaf+b+A88yhnMrJhyg/lhAj6mU6UeB2PbruXB2qgSmmVDSE2dIknOvZZuIWNzEzUI07RO2kw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz", + "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/line-slice": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.3.0.tgz", - "integrity": "sha512-HEgVY7TcoRxh59DCb/7SUlX6x3RJWSEBspIfsxCv+2lhgb3aRekn+aELvr3VeY9fWPCXvOfELBH3PNjMhJMY2Q==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-6.5.0.tgz", + "integrity": "sha512-vDqJxve9tBHhOaVVFXqVjF5qDzGtKWviyjbyi2QnSnxyFAmLlLnBfMX8TLQCAf2GxHibB95RO5FBE6I2KVPRuw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0" } }, "@turf/line-slice-along": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.3.0.tgz", - "integrity": "sha512-3s6vGTxGgCTb3Wd1seyir49rRc0GsX6OZXiRP5VdlT3Aq0cuuCNJycgHCH+H8LiYrEQDUhNUWbGljreCH0/JCg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-6.5.0.tgz", + "integrity": "sha512-KHJRU6KpHrAj+BTgTNqby6VCTnDzG6a1sJx/I3hNvqMBLvWVA2IrkR9L9DtsQsVY63IBwVdQDqiwCuZLDQh4Ng==", "requires": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/line-split": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.3.0.tgz", - "integrity": "sha512-Q0nUJ0vczy11piyEz0FaKScFwSQtb1HJ2RPEMCw1coUJhTCB02KBWQLImhYqwsD3uLg+H/fxaJ1Gva6EPWoDNQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-6.5.0.tgz", + "integrity": "sha512-/rwUMVr9OI2ccJjw7/6eTN53URtGThNSD5I0GgxyFXMtxWiloRJ9MTff8jBbtPWrRka/Sh2GkwucVRAEakx9Sw==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0", - "@turf/square": "^6.3.0", - "@turf/truncate": "^6.3.0", + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0", + "@turf/square": "^6.5.0", + "@turf/truncate": "^6.5.0", "geojson-rbush": "3.x" } }, "@turf/line-to-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.3.0.tgz", - "integrity": "sha512-754ywhQzcAylVSqQQwlv0TUMC5nCHp4nDle3X48tkHIKcnn4fJkW8O0YNhhQCE8p6NDcs0Ayi4qR0uHLPTzUWQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-6.5.0.tgz", + "integrity": "sha512-qYBuRCJJL8Gx27OwCD1TMijM/9XjRgXH/m/TyuND4OXedBpIWlK5VbTIO2gJ8OCfznBBddpjiObLBrkuxTpN4Q==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/mask": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.3.0.tgz", - "integrity": "sha512-2DbaHvmxz0ueQpGCo+6nXHhLqlmTjzGDkUL/ys6rgWTXj40udKakPwMNa2WrvzqHwowJsXWaWDp2GogRT5foDA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-6.5.0.tgz", + "integrity": "sha512-RQha4aU8LpBrmrkH8CPaaoAfk0Egj5OuXtv6HuCQnHeGNOQt3TQVibTA3Sh4iduq4EPxnZfDjgsOeKtrCA19lg==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/union": "^6.3.0", - "rbush": "^2.0.1" + "@turf/helpers": "^6.5.0", + "polygon-clipping": "^0.15.3" } }, "@turf/meta": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.3.0.tgz", - "integrity": "sha512-qBJjaAJS9H3ap0HlGXyF/Bzfl0qkA9suafX/jnDsZvWMfVLt+s+o6twKrXOGk5t7nnNON2NFRC8+czxpu104EQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", + "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/midpoint": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.3.0.tgz", - "integrity": "sha512-ImiYK5l/QZh5aCynxCyHoaJYn4j1VhorVyw2XihHuwAtebTc+KRaBJpWSD2eJxo3Q3J+QepWMiiMvQFJgQ5uCQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-6.5.0.tgz", + "integrity": "sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==", "requires": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/moran-index": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.3.0.tgz", - "integrity": "sha512-qRsSqmYtvnKiGFbz3aU1up8Q8jY9MCflRdvKeTOJ2E3Z4xOIyOLXOrNvpLIM8CFcLwY06IInMRoaKi/CVOC54g==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-6.5.0.tgz", + "integrity": "sha512-ItsnhrU2XYtTtTudrM8so4afBCYWNaB0Mfy28NZwLjB5jWuAsvyV+YW+J88+neK/ougKMTawkmjQqodNJaBeLQ==", "requires": { - "@turf/distance-weight": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/distance-weight": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/nearest-point": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.3.0.tgz", - "integrity": "sha512-eovLuWxO2cQaKETbf1OhnWYkRYYgwuDhJAvLU9ZpXnqk2tNE06gt/2C5oJJiSlh4ZksDM8ryHZicswaXrYz+qA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.5.0.tgz", + "integrity": "sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==", "requires": { - "@turf/clone": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/nearest-point-on-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.3.0.tgz", - "integrity": "sha512-b4C9Md1VbGn9chMgdSj2grJD4w4t0owEWOKEBwOZfdhrcksyOedVvKB7XqOFdj/8Jitel40EKAC5LQTNu24kEQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz", + "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==", "requires": { - "@turf/bearing": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/nearest-point-to-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.3.0.tgz", - "integrity": "sha512-1ut4u1KXHwXc6qdnDLkhTdPUdeHOmdmysMBxnNNFH7UTefi3XfR8BF/NOxNP8g7OKJrZ2vhDeR4PCL5xAsVH5A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-6.5.0.tgz", + "integrity": "sha512-PXV7cN0BVzUZdjj6oeb/ESnzXSfWmEMrsfZSDRgqyZ9ytdiIj/eRsnOXLR13LkTdXVOJYDBuf7xt1mLhM4p6+Q==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/point-to-line-distance": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/point-to-line-distance": "^6.5.0", "object-assign": "*" } }, "@turf/planepoint": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.3.0.tgz", - "integrity": "sha512-RDfzUiwB3P3bGeRBZf/czZdtQsqUIVQePaAU5ijCqTBdR1V0TuVbRig1WE0XD4j5dM242OEezHJ3Xqgo71Nzww==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-6.5.0.tgz", + "integrity": "sha512-R3AahA6DUvtFbka1kcJHqZ7DMHmPXDEQpbU5WaglNn7NaCQg9HB0XM0ZfqWcd5u92YXV+Gg8QhC8x5XojfcM4Q==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/point-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.3.0.tgz", - "integrity": "sha512-1ERghdRXtA/5Z/To7X1Y9D1cvej3+ZCZXNZnM/0c+3sAioohjK5IXv2enR23p1ftA6Z3H7wug5IB4YmVzs4MaA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-6.5.0.tgz", + "integrity": "sha512-Iq38lFokNNtQJnOj/RBKmyt6dlof0yhaHEDELaWHuECm1lIZLY3ZbVMwbs+nXkwTAHjKfS/OtMheUBkw+ee49w==", "requires": { - "@turf/boolean-within": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/boolean-within": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/point-on-feature": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.3.0.tgz", - "integrity": "sha512-zN35KN/IUAgOyVtlEQg1j71U8eoav2JPZOdWlEFHsjYQVm9cF+AKOkvBdm6LQWMWvCtwSqqghwe/zRKvzJPynw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-6.5.0.tgz", + "integrity": "sha512-bDpuIlvugJhfcF/0awAQ+QI6Om1Y1FFYE8Y/YdxGRongivix850dTeXCo0mDylFdWFPGDo7Mmh9Vo4VxNwW/TA==", "requires": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/nearest-point": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/nearest-point": "^6.5.0" } }, "@turf/point-to-line-distance": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.3.0.tgz", - "integrity": "sha512-AqCcj4A0GPzKb3w+q+C9ex0r5mC+u+Ee6VN2jY1p25dxBQJNpMZKDE5LcWtaXeD+pAk3ZGmvea8LR5S0AJukxA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.5.0.tgz", + "integrity": "sha512-opHVQ4vjUhNBly1bob6RWy+F+hsZDH9SA0UW36pIRzfpu27qipU18xup0XXEePfY6+wvhF6yL/WgCO2IbrLqEA==", "requires": { - "@turf/bearing": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/projection": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0" + "@turf/bearing": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/projection": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0" } }, "@turf/points-within-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.3.0.tgz", - "integrity": "sha512-ES/tLj5oZR7TBg7FSOy8bypBvXALwl2f36MmQ3AJfK0KvAeQ+mxFXTGslAK3ewL9fVVxWLsmbP9bPLSzWeuPAw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-6.5.0.tgz", + "integrity": "sha512-YyuheKqjliDsBDt3Ho73QVZk1VXX1+zIA2gwWvuz8bR1HXOkcuwk/1J76HuFMOQI3WK78wyAi+xbkx268PkQzQ==", "requires": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/polygon-smooth": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.3.0.tgz", - "integrity": "sha512-60aMw3d57DXqdFyWU43c5gHaumCZ9jn6K5GqgeKTfmElIumdSspg9MEIW7d7z6qkPufPY34FczJ9yapMih5SIQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-6.5.0.tgz", + "integrity": "sha512-LO/X/5hfh/Rk4EfkDBpLlVwt3i6IXdtQccDT9rMjXEP32tRgy0VMFmdkNaXoGlSSKf/1mGqLl4y4wHd86DqKbg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/polygon-tangents": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.3.0.tgz", - "integrity": "sha512-QEXsXgZKWV3mPPqxERIQ+DzBSvnO0R1c9FsHuHE0F49Cic+CRMPjEpnzQj39cOUQfwPlQl2ThuaKAljlQ5QNMQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-6.5.0.tgz", + "integrity": "sha512-sB4/IUqJMYRQH9jVBwqS/XDitkEfbyqRy+EH/cMRJURTg78eHunvJ708x5r6umXsbiUyQU4eqgPzEylWEQiunw==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/boolean-within": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/nearest-point": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/boolean-within": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/nearest-point": "^6.5.0" } }, "@turf/polygon-to-line": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.3.0.tgz", - "integrity": "sha512-KFGlQlGOBayBvELz+tip1zCa3eB8xyZePZUZ3I3OnU7mk0FFzJzvLTmPUc7MupgqORT4LkNGmyKSVWaz38NTig==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.5.0.tgz", + "integrity": "sha512-5p4n/ij97EIttAq+ewSnKt0ruvuM+LIDzuczSzuHTpq4oS7Oq8yqg5TQ4nzMVuK41r/tALCk7nAoBuw3Su4Gcw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/polygonize": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.3.0.tgz", - "integrity": "sha512-v1w5ibIJ5to3+nuitVNyukPMMY+z++y3e55TBuot1vkAEyCi538Kc8Qz0eWONPGZKzwYtQtkve2NIp0BBeNd5g==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-6.5.0.tgz", + "integrity": "sha512-a/3GzHRaCyzg7tVYHo43QUChCspa99oK4yPqooVIwTC61npFzdrmnywMv0S+WZjHZwK37BrFJGFrZGf6ocmY5w==", "requires": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/envelope": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/envelope": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/projection": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.3.0.tgz", - "integrity": "sha512-IpSs7Q6G6xi47ynVlYYVegPLy6Jc0yo3/DcIm83jaJa4NnzPFXIFZT0v9Fe1N8MraHZqiqaSPbVnJXCGwR12lg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.5.0.tgz", + "integrity": "sha512-/Pgh9mDvQWWu8HRxqpM+tKz8OzgauV+DiOcr3FCjD6ubDnrrmMJlsf6fFJmggw93mtVPrZRL6yyi9aYCQBOIvg==", "requires": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/random": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.3.0.tgz", - "integrity": "sha512-jSKNqLCOc/xUPoQp8jZLUYTrtID1PNJV7eLXMbJdHdcYwU7d6dTkrdgI08ZU/Nc4qJv1ZAlWO/xEyKGtC1RgrQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/random/-/random-6.5.0.tgz", + "integrity": "sha512-8Q25gQ/XbA7HJAe+eXp4UhcXM9aOOJFaxZ02+XSNwMvY8gtWSCBLVqRcW4OhqilgZ8PeuQDWgBxeo+BIqqFWFQ==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/rectangle-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.3.0.tgz", - "integrity": "sha512-XQAjpprUhGA9aoVH8H6lqZb0Dk8SZ2djKAPD6dDplFgrufdmP1Fe1BfbsdBgjyfPrdR7hSffLyEAwC3bhfJo2w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-6.5.0.tgz", + "integrity": "sha512-yQZ/1vbW68O2KsSB3OZYK+72aWz/Adnf7m2CMKcC+aq6TwjxZjAvlbCOsNUnMAuldRUVN1ph6RXMG4e9KEvKvg==", "requires": { - "@turf/boolean-intersects": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/boolean-intersects": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/rewind": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.3.0.tgz", - "integrity": "sha512-56HwvOZ4r4/wXr8l8zCpdjZ3bxY6Ee7aokuJr/+BlVqikHdRHRx+FJpLGpykZU1YWdO7IiLK7ajX+clYPaqRKg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-6.5.0.tgz", + "integrity": "sha512-IoUAMcHWotBWYwSYuYypw/LlqZmO+wcBpn8ysrBNbazkFNkLf3btSDZMkKJO/bvOzl55imr/Xj4fi3DdsLsbzQ==", "requires": { - "@turf/boolean-clockwise": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-clockwise": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/rhumb-bearing": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.3.0.tgz", - "integrity": "sha512-/c/BE3huEUrwN6gx7Bg2FzfJqeU+TWk/slQPDHpbVunlIPbS6L28brqSVD+KXfMG8HQIzynz6Pm4Y+j5Iv4aWA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.5.0.tgz", + "integrity": "sha512-jMyqiMRK4hzREjQmnLXmkJ+VTNTx1ii8vuqRwJPcTlKbNWfjDz/5JqJlb5NaFDcdMpftWovkW5GevfnuzHnOYA==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/rhumb-destination": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.3.0.tgz", - "integrity": "sha512-MaQf5wldfERfn8cjtbkD/6GUurAwD+sjedvDgV/chZ83yx7kXmRgrVMpRSGUbmGQ3Ww8dn38sUCapnM6M07+Rg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-6.5.0.tgz", + "integrity": "sha512-RHNP1Oy+7xTTdRrTt375jOZeHceFbjwohPHlr9Hf68VdHHPMAWgAKqiX2YgSWDcvECVmiGaBKWus1Df+N7eE4Q==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/rhumb-distance": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.3.0.tgz", - "integrity": "sha512-wMIQVvznusonnp/POeucFdA4Rubn0NrkcEMdxdcCgFK7OmTz0zU4CEnNONF2IUGkQ5WwoKiuS7MOTQ8OuCjSfQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.5.0.tgz", + "integrity": "sha512-oKp8KFE8E4huC2Z1a1KNcFwjVOqa99isxNOwfo4g3SUABQ6NezjKDDrnvC4yI5YZ3/huDjULLBvhed45xdCrzg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" } }, "@turf/sample": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.3.0.tgz", - "integrity": "sha512-CmUkpoLIi+57jxBmYh4KW7S4Vculty84NC2ERNFZrLkVquewVYSppwKsaZtc0Hbap6a1N7hP4C80e2bPzRC4fg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-6.5.0.tgz", + "integrity": "sha512-kSdCwY7el15xQjnXYW520heKUrHwRvnzx8ka4eYxX9NFeOxaFITLW2G7UtXb6LJK8mmPXI8Aexv23F2ERqzGFg==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/sector": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.3.0.tgz", - "integrity": "sha512-bHaDlHzCKEl5G+EEXdMTk3MFC8Yl5QjwrMVakF2Usi0P0c7hp6r10QVOjq9nmn6jvZHTPaiG2A4z9unkWIFxIg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-6.5.0.tgz", + "integrity": "sha512-cYUOkgCTWqa23SOJBqxoFAc/yGCUsPRdn/ovbRTn1zNTm/Spmk6hVB84LCKOgHqvSF25i0d2kWqpZDzLDdAPbw==", "requires": { - "@turf/circle": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/line-arc": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/circle": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/line-arc": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/shortest-path": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.3.0.tgz", - "integrity": "sha512-dc50vcgb6G/nyljCdfxS4T3tGb2f45MkKEFdz6sVTYqjNakPnRoJao8xvInVsf1i2J53dWNU635oZhW9P1nqKg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-6.5.0.tgz", + "integrity": "sha512-4de5+G7+P4hgSoPwn+SO9QSi9HY5NEV/xRJ+cmoFVRwv2CDsuOPDheHKeuIAhKyeKDvPvPt04XYWbac4insJMg==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/bbox-polygon": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/clean-coords": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/transform-scale": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/bbox-polygon": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/clean-coords": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/transform-scale": "^6.5.0" } }, "@turf/simplify": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.3.0.tgz", - "integrity": "sha512-6a+9oKwZpZk3Oohz9koQZGXh1qb+/UgUz2yW2bunjjlKpBdBFhRbEKi0KeprgPGFLLTMjf0tybhO1rFwiz6S1w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-6.5.0.tgz", + "integrity": "sha512-USas3QqffPHUY184dwQdP8qsvcVH/PWBYdXY5am7YTBACaQOMAlf6AKJs9FT8jiO6fQpxfgxuEtwmox+pBtlOg==", "requires": { - "@turf/clean-coords": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/clean-coords": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/square": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.3.0.tgz", - "integrity": "sha512-/nRGsV0DlUcOYv+gKAkIADSf+HooNLbOLBTUdhq9Piy3LuAWIXT+Rt5XN+NuNZP+84Al34GA1fR+BxqQ4reh7w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/square/-/square-6.5.0.tgz", + "integrity": "sha512-BM2UyWDmiuHCadVhHXKIx5CQQbNCpOxB6S/aCNOCLbhCeypKX5Q0Aosc5YcmCJgkwO5BERCC6Ee7NMbNB2vHmQ==", "requires": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0" } }, "@turf/square-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.3.0.tgz", - "integrity": "sha512-ZCgThI5hPLJNVErCB9zkJ3w3OpW6BbrOqyrxFbwlYGZrZ6uj52/j8PWQtwnmiqdv0k8+Cbxrap7E6//Oks4jIw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-6.5.0.tgz", + "integrity": "sha512-mlR0ayUdA+L4c9h7p4k3pX6gPWHNGuZkt2c5II1TJRmhLkW2557d6b/Vjfd1z9OVaajb1HinIs1FMSAPXuuUrA==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/rectangle-grid": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/rectangle-grid": "^6.5.0" } }, "@turf/standard-deviational-ellipse": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.3.0.tgz", - "integrity": "sha512-e8CeSUv5FLpzlJxiOr9lDtJIY3e/JKW4is+gBO8rMTQNFbWyrqXtzhyTfrwXEPKmaeei1DK9ixxj/oRDna25Hw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-6.5.0.tgz", + "integrity": "sha512-02CAlz8POvGPFK2BKK8uHGUk/LXb0MK459JVjKxLC2yJYieOBTqEbjP0qaWhiBhGzIxSMaqe8WxZ0KvqdnstHA==", "requires": { - "@turf/center-mean": "^6.3.0", - "@turf/ellipse": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/points-within-polygon": "^6.3.0" + "@turf/center-mean": "^6.5.0", + "@turf/ellipse": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/points-within-polygon": "^6.5.0" } }, "@turf/tag": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.3.0.tgz", - "integrity": "sha512-3L//rLql+ILeFuZ5L/sPm0f5NcHrNgUnGiB1hSIp3kdhhIIiZUpcktJUbksTvID67JJlP3smfyIQiU++LZW21w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-6.5.0.tgz", + "integrity": "sha512-XwlBvrOV38CQsrNfrxvBaAPBQgXMljeU0DV8ExOyGM7/hvuGHJw3y8kKnQ4lmEQcmcrycjDQhP7JqoRv8vFssg==", "requires": { - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/tesselate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.3.0.tgz", - "integrity": "sha512-SkBHJCci/ergp/Y1TIfBRavdEJgFatQDz+ySdggXHT+mBiJEOEia3N+8V89RVOnORXTCDsjzWOWwftCS/J2sKQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-6.5.0.tgz", + "integrity": "sha512-M1HXuyZFCfEIIKkglh/r5L9H3c5QTEsnMBoZOFQiRnGPGmJWcaBissGb7mTFX2+DKE7FNWXh4TDnZlaLABB0dQ==", "requires": { - "@turf/helpers": "^6.3.0", + "@turf/helpers": "^6.5.0", "earcut": "^2.0.0" } }, "@turf/tin": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.3.0.tgz", - "integrity": "sha512-obk9vyzKo3o3Dy4fPlb8IROb9LdMlz4LvKZ63DNtQsxwrWsc+og0EOh2mpvZrCIeoObx3ah5SnuAh14xH4JybA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-6.5.0.tgz", + "integrity": "sha512-YLYikRzKisfwj7+F+Tmyy/LE3d2H7D4kajajIfc9mlik2+esG7IolsX/+oUz1biguDYsG0DUA8kVYXDkobukfg==", "requires": { - "@turf/helpers": "^6.3.0" + "@turf/helpers": "^6.5.0" } }, "@turf/transform-rotate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.3.0.tgz", - "integrity": "sha512-6CPfmDdaXjbBoPeyHkui704vz6MD3MoI09LGRVJ/RIo1uH/OL6RDSlCfLxFtkE33FJ7VV4giczc3LF1UP5Oh9w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-6.5.0.tgz", + "integrity": "sha512-A2Ip1v4246ZmpssxpcL0hhiVBEf4L8lGnSPWTgSv5bWBEoya2fa/0SnFX9xJgP40rMP+ZzRaCN37vLHbv1Guag==", "requires": { - "@turf/centroid": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0" + "@turf/centroid": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0" } }, "@turf/transform-scale": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.3.0.tgz", - "integrity": "sha512-UnLWEXAUdZy7JYbylMjYczPUkxXlUK1nMgv7zEzQ+8mczysPVsgB/FDyiexY2bgVEEBMeDqFSHtqLRavXljI0A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-6.5.0.tgz", + "integrity": "sha512-VsATGXC9rYM8qTjbQJ/P7BswKWXHdnSJ35JlV4OsZyHBMxJQHftvmZJsFbOqVtQnIQIzf2OAly6rfzVV9QLr7g==", "requires": { - "@turf/bbox": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0" + "@turf/bbox": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0" } }, "@turf/transform-translate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.3.0.tgz", - "integrity": "sha512-ZGAK3T6wdYLOIKr/FHl+i09b1vhPV3XWHw4/M27xA6US2rNcO6/jkLjskdME/3JzJDFmGa8F2vlPqlhtWWoRSw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-6.5.0.tgz", + "integrity": "sha512-NABLw5VdtJt/9vSstChp93pc6oel4qXEos56RBMsPlYB8hzNTEKYtC146XJvyF4twJeeYS8RVe1u7KhoFwEM5w==", "requires": { - "@turf/clone": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0" + "@turf/clone": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0" } }, "@turf/triangle-grid": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.3.0.tgz", - "integrity": "sha512-2AExXl7pTvRKOyGowuvvUm0tTyLQl+xzvv+mgWgNyg84qQptGN3HFH/QS4quoQdEzOyHNLFHgloNn6cWFX9v4A==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-6.5.0.tgz", + "integrity": "sha512-2jToUSAS1R1htq4TyLQYPTIsoy6wg3e3BQXjm2rANzw4wPQCXGOxrur1Fy9RtzwqwljlC7DF4tg0OnWr8RjmfA==", "requires": { - "@turf/distance": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/intersect": "^6.3.0" + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/intersect": "^6.5.0" } }, "@turf/truncate": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.3.0.tgz", - "integrity": "sha512-fvzR3BUODPciEBELLqqAggEEeb1L0d79WZYb9HKaoSB0GKTTgNrEbkTXiiGEjGJ1s1FMqXOEp0DKsLvvb1h4OA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.5.0.tgz", + "integrity": "sha512-pFxg71pLk+eJj134Z9yUoRhIi8vqnnKvCYwdT4x/DQl/19RVdq1tV3yqOT3gcTQNfniteylL5qV1uTBDV5sgrg==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" } }, "@turf/turf": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.3.0.tgz", - "integrity": "sha512-6CcUammJKsn6mI7/+DlnXqf1iAk5HZ86/wmHIVG6VTmmPBP5drWSjoRUcaiXQADzLLuR9eZ3kl11KEOdvn9DmQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-6.5.0.tgz", + "integrity": "sha512-ipMCPnhu59bh92MNt8+pr1VZQhHVuTMHklciQURo54heoxRzt1neNYZOBR6jdL+hNsbDGAECMuIpAutX+a3Y+w==", "requires": { - "@turf/along": "^6.3.0", - "@turf/angle": "^6.3.0", - "@turf/area": "^6.3.0", - "@turf/bbox": "^6.3.0", - "@turf/bbox-clip": "^6.3.0", - "@turf/bbox-polygon": "^6.3.0", - "@turf/bearing": "^6.3.0", - "@turf/bezier-spline": "^6.3.0", - "@turf/boolean-clockwise": "^6.3.0", - "@turf/boolean-contains": "^6.3.0", - "@turf/boolean-crosses": "^6.3.0", - "@turf/boolean-disjoint": "^6.3.0", - "@turf/boolean-equal": "^6.3.0", - "@turf/boolean-intersects": "^6.3.0", - "@turf/boolean-overlap": "^6.3.0", - "@turf/boolean-parallel": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/boolean-point-on-line": "^6.3.0", - "@turf/boolean-within": "^6.3.0", - "@turf/buffer": "^6.3.0", - "@turf/center": "^6.3.0", - "@turf/center-mean": "^6.3.0", - "@turf/center-median": "^6.3.0", - "@turf/center-of-mass": "^6.3.0", - "@turf/centroid": "^6.3.0", - "@turf/circle": "^6.3.0", - "@turf/clean-coords": "^6.3.0", - "@turf/clone": "^6.3.0", - "@turf/clusters": "^6.3.0", - "@turf/clusters-dbscan": "^6.3.0", - "@turf/clusters-kmeans": "^6.3.0", - "@turf/collect": "^6.3.0", - "@turf/combine": "^6.3.0", - "@turf/concave": "^6.3.0", - "@turf/convex": "^6.3.0", - "@turf/destination": "^6.3.0", - "@turf/difference": "^6.3.0", - "@turf/dissolve": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/distance-weight": "^6.3.0", - "@turf/ellipse": "^6.3.0", - "@turf/envelope": "^6.3.0", - "@turf/explode": "^6.3.0", - "@turf/flatten": "^6.3.0", - "@turf/flip": "^6.3.0", - "@turf/great-circle": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/hex-grid": "^6.3.0", - "@turf/interpolate": "^6.3.0", - "@turf/intersect": "^6.3.0", - "@turf/invariant": "^6.3.0", - "@turf/isobands": "^6.3.0", - "@turf/isolines": "^6.3.0", - "@turf/kinks": "^6.3.0", - "@turf/length": "^6.3.0", - "@turf/line-arc": "^6.3.0", - "@turf/line-chunk": "^6.3.0", - "@turf/line-intersect": "^6.3.0", - "@turf/line-offset": "^6.3.0", - "@turf/line-overlap": "^6.3.0", - "@turf/line-segment": "^6.3.0", - "@turf/line-slice": "^6.3.0", - "@turf/line-slice-along": "^6.3.0", - "@turf/line-split": "^6.3.0", - "@turf/line-to-polygon": "^6.3.0", - "@turf/mask": "^6.3.0", - "@turf/meta": "^6.3.0", - "@turf/midpoint": "^6.3.0", - "@turf/moran-index": "^6.3.0", - "@turf/nearest-point": "^6.3.0", - "@turf/nearest-point-on-line": "^6.3.0", - "@turf/nearest-point-to-line": "^6.3.0", - "@turf/planepoint": "^6.3.0", - "@turf/point-grid": "^6.3.0", - "@turf/point-on-feature": "^6.3.0", - "@turf/point-to-line-distance": "^6.3.0", - "@turf/points-within-polygon": "^6.3.0", - "@turf/polygon-smooth": "^6.3.0", - "@turf/polygon-tangents": "^6.3.0", - "@turf/polygon-to-line": "^6.3.0", - "@turf/polygonize": "^6.3.0", - "@turf/projection": "^6.3.0", - "@turf/random": "^6.3.0", - "@turf/rewind": "^6.3.0", - "@turf/rhumb-bearing": "^6.3.0", - "@turf/rhumb-destination": "^6.3.0", - "@turf/rhumb-distance": "^6.3.0", - "@turf/sample": "^6.3.0", - "@turf/sector": "^6.3.0", - "@turf/shortest-path": "^6.3.0", - "@turf/simplify": "^6.3.0", - "@turf/square": "^6.3.0", - "@turf/square-grid": "^6.3.0", - "@turf/standard-deviational-ellipse": "^6.3.0", - "@turf/tag": "^6.3.0", - "@turf/tesselate": "^6.3.0", - "@turf/tin": "^6.3.0", - "@turf/transform-rotate": "^6.3.0", - "@turf/transform-scale": "^6.3.0", - "@turf/transform-translate": "^6.3.0", - "@turf/triangle-grid": "^6.3.0", - "@turf/truncate": "^6.3.0", - "@turf/union": "^6.3.0", - "@turf/unkink-polygon": "^6.3.0", - "@turf/voronoi": "^6.3.0" + "@turf/along": "^6.5.0", + "@turf/angle": "^6.5.0", + "@turf/area": "^6.5.0", + "@turf/bbox": "^6.5.0", + "@turf/bbox-clip": "^6.5.0", + "@turf/bbox-polygon": "^6.5.0", + "@turf/bearing": "^6.5.0", + "@turf/bezier-spline": "^6.5.0", + "@turf/boolean-clockwise": "^6.5.0", + "@turf/boolean-contains": "^6.5.0", + "@turf/boolean-crosses": "^6.5.0", + "@turf/boolean-disjoint": "^6.5.0", + "@turf/boolean-equal": "^6.5.0", + "@turf/boolean-intersects": "^6.5.0", + "@turf/boolean-overlap": "^6.5.0", + "@turf/boolean-parallel": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/boolean-point-on-line": "^6.5.0", + "@turf/boolean-within": "^6.5.0", + "@turf/buffer": "^6.5.0", + "@turf/center": "^6.5.0", + "@turf/center-mean": "^6.5.0", + "@turf/center-median": "^6.5.0", + "@turf/center-of-mass": "^6.5.0", + "@turf/centroid": "^6.5.0", + "@turf/circle": "^6.5.0", + "@turf/clean-coords": "^6.5.0", + "@turf/clone": "^6.5.0", + "@turf/clusters": "^6.5.0", + "@turf/clusters-dbscan": "^6.5.0", + "@turf/clusters-kmeans": "^6.5.0", + "@turf/collect": "^6.5.0", + "@turf/combine": "^6.5.0", + "@turf/concave": "^6.5.0", + "@turf/convex": "^6.5.0", + "@turf/destination": "^6.5.0", + "@turf/difference": "^6.5.0", + "@turf/dissolve": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/distance-weight": "^6.5.0", + "@turf/ellipse": "^6.5.0", + "@turf/envelope": "^6.5.0", + "@turf/explode": "^6.5.0", + "@turf/flatten": "^6.5.0", + "@turf/flip": "^6.5.0", + "@turf/great-circle": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/hex-grid": "^6.5.0", + "@turf/interpolate": "^6.5.0", + "@turf/intersect": "^6.5.0", + "@turf/invariant": "^6.5.0", + "@turf/isobands": "^6.5.0", + "@turf/isolines": "^6.5.0", + "@turf/kinks": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/line-arc": "^6.5.0", + "@turf/line-chunk": "^6.5.0", + "@turf/line-intersect": "^6.5.0", + "@turf/line-offset": "^6.5.0", + "@turf/line-overlap": "^6.5.0", + "@turf/line-segment": "^6.5.0", + "@turf/line-slice": "^6.5.0", + "@turf/line-slice-along": "^6.5.0", + "@turf/line-split": "^6.5.0", + "@turf/line-to-polygon": "^6.5.0", + "@turf/mask": "^6.5.0", + "@turf/meta": "^6.5.0", + "@turf/midpoint": "^6.5.0", + "@turf/moran-index": "^6.5.0", + "@turf/nearest-point": "^6.5.0", + "@turf/nearest-point-on-line": "^6.5.0", + "@turf/nearest-point-to-line": "^6.5.0", + "@turf/planepoint": "^6.5.0", + "@turf/point-grid": "^6.5.0", + "@turf/point-on-feature": "^6.5.0", + "@turf/point-to-line-distance": "^6.5.0", + "@turf/points-within-polygon": "^6.5.0", + "@turf/polygon-smooth": "^6.5.0", + "@turf/polygon-tangents": "^6.5.0", + "@turf/polygon-to-line": "^6.5.0", + "@turf/polygonize": "^6.5.0", + "@turf/projection": "^6.5.0", + "@turf/random": "^6.5.0", + "@turf/rewind": "^6.5.0", + "@turf/rhumb-bearing": "^6.5.0", + "@turf/rhumb-destination": "^6.5.0", + "@turf/rhumb-distance": "^6.5.0", + "@turf/sample": "^6.5.0", + "@turf/sector": "^6.5.0", + "@turf/shortest-path": "^6.5.0", + "@turf/simplify": "^6.5.0", + "@turf/square": "^6.5.0", + "@turf/square-grid": "^6.5.0", + "@turf/standard-deviational-ellipse": "^6.5.0", + "@turf/tag": "^6.5.0", + "@turf/tesselate": "^6.5.0", + "@turf/tin": "^6.5.0", + "@turf/transform-rotate": "^6.5.0", + "@turf/transform-scale": "^6.5.0", + "@turf/transform-translate": "^6.5.0", + "@turf/triangle-grid": "^6.5.0", + "@turf/truncate": "^6.5.0", + "@turf/union": "^6.5.0", + "@turf/unkink-polygon": "^6.5.0", + "@turf/voronoi": "^6.5.0" } }, "@turf/union": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.3.0.tgz", - "integrity": "sha512-m8yh13Q5E0Y+YC10+iI/Qq0Txt7UmSIFByc7DfNVlMMGTceqLFa8xGwSVdFuB/d6MWwKuzKonQMl1PUx/Vd2Iw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.5.0.tgz", + "integrity": "sha512-igYWCwP/f0RFHIlC2c0SKDuM/ObBaqSljI3IdV/x71805QbIvY/BYGcJdyNcgEA6cylIGl/0VSlIbpJHZ9ldhw==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", - "polygon-clipping": "^0.15.2" - }, - "dependencies": { - "polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", - "requires": { - "splaytree": "^3.1.0" - } - }, - "splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" - } + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "polygon-clipping": "^0.15.3" } }, "@turf/unkink-polygon": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.3.0.tgz", - "integrity": "sha512-XBUJkuDEr2R8cHpl+sHtV15J1S28/HCxhAHqfV+As3bTi81KhVhBK9EBwFGYCu9aerVgBK129FjRKXjnTYqtDw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-6.5.0.tgz", + "integrity": "sha512-8QswkzC0UqKmN1DT6HpA9upfa1HdAA5n6bbuzHy8NJOX8oVizVAqfEPY0wqqTgboDjmBR4yyImsdPGUl3gZ8JQ==", "requires": { - "@turf/area": "^6.3.0", - "@turf/boolean-point-in-polygon": "^6.3.0", - "@turf/helpers": "^6.3.0", - "@turf/meta": "^6.3.0", + "@turf/area": "^6.5.0", + "@turf/boolean-point-in-polygon": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0", "rbush": "^2.0.1" } }, "@turf/voronoi": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.3.0.tgz", - "integrity": "sha512-M0C6Kfo+qvKk4veRD7xW1PjMitJ0vqN6F4OOczxyX3tkj/oMyhWg+YbWk7mo/wKdSo9gCvHhnIVNkPsSSaFmyQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-6.5.0.tgz", + "integrity": "sha512-C/xUsywYX+7h1UyNqnydHXiun4UPjK88VDghtoRypR9cLlb7qozkiLRphQxxsCM0KxyxpVPHBVQXdAL3+Yurow==", "requires": { - "@turf/helpers": "^6.3.0", - "@turf/invariant": "^6.3.0", + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", "d3-voronoi": "1.1.2" } }, "@types/geojson": { - "version": "7946.0.7", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", - "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, "@types/jquery": { "version": "3.5.5", @@ -20242,12 +20462,12 @@ } }, "concaveman": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.0.tgz", - "integrity": "sha512-OcqechF2/kubbffomKqjGEkb0ndlYhEbmyg/fxIGqdfYp5AZjD2Kl5hc97Hh3ngEuHU2314Z4KDbxL7qXGWrQQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.1.tgz", + "integrity": "sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==", "requires": { - "point-in-polygon": "^1.0.1", - "rbush": "^3.0.0", + "point-in-polygon": "^1.1.0", + "rbush": "^3.0.1", "robust-predicates": "^2.0.4", "tinyqueue": "^2.0.3" }, @@ -22005,14 +22225,30 @@ "integrity": "sha1-q0g48SatxeFvj5TmVd74IPkRnbw=" }, "geojson-rbush": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.1.2.tgz", - "integrity": "sha512-grkfdg3HIeTjwTfiJe5FT8+fGU3fABCc+vRJDBwdQz9kkLF0Sbif2gs2JUzjewwgmnvLGy9fInySDeADoNuk7w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz", + "integrity": "sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==", "requires": { "@turf/bbox": "*", "@turf/helpers": "6.x", "@turf/meta": "6.x", - "rbush": "^2.0.0" + "@types/geojson": "7946.0.8", + "rbush": "^3.0.1" + }, + "dependencies": { + "quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "requires": { + "quickselect": "^2.0.0" + } + } } }, "get-caller-file": { @@ -22021,11 +22257,6 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-closest": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/get-closest/-/get-closest-0.0.4.tgz", - "integrity": "sha1-JprHdtHmAiqg/Vht1wjop9Miaa8=" - }, "get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", @@ -24892,6 +25123,14 @@ "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" }, + "polygon-clipping": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", + "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", + "requires": { + "splaytree": "^3.1.0" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -27275,6 +27514,11 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" }, + "splaytree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", + "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" + }, "split": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", @@ -28057,45 +28301,33 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "topojson": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/topojson/-/topojson-3.0.2.tgz", - "integrity": "sha512-u3zeuL6WEVL0dmsRn7uHZKc4Ao4gpW3sORUv+N3ezLTvY3JdCuyg0hvpWiIfFw8p/JwVN++SvAsFgcFEeR15rQ==", + "topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "requires": { - "topojson-client": "3.0.0", - "topojson-server": "3.0.0", - "topojson-simplify": "3.0.2" + "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "topojson-server": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", + "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", + "requires": { + "commander": "2" }, "dependencies": { "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "topojson-client": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz", - "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", - "requires": { - "commander": "2" - } - }, - "topojson-server": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.0.tgz", - "integrity": "sha1-N4546Hw5cqe1vixdYENptrrmnF4=", - "requires": { - "commander": "2" - } - }, - "topojson-simplify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/topojson-simplify/-/topojson-simplify-3.0.2.tgz", - "integrity": "sha512-gyYSVRt4jO/0RJXKZQPzTDQRWV+D/nOfiljNUv0HBXslFLtq3yxRHrl7jbrjdbda5Ytdr7M8BZUI4OxU7tnbRQ==", - "requires": { - "commander": "2", - "topojson-client": "3" - } } } }, diff --git a/package.json b/package.json index 3a6fa45b67..380fc3f9f2 100644 --- a/package.json +++ b/package.json @@ -59,11 +59,11 @@ "license": "GPL", "dependencies": { "@babel/preset-env": "7.13.8", - "@turf/buffer": "^6.3.0", - "@turf/collect": "^6.3.0", - "@turf/distance": "^6.3.0", - "@turf/length": "^6.3.0", - "@turf/turf": "^6.3.0", + "@turf/buffer": "^6.5.0", + "@turf/collect": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/turf": "^6.5.0", "@types/jquery": "^3.5.5", "@types/leaflet-markercluster": "^1.0.3", "@types/leaflet-providers": "^1.2.0", diff --git a/test/GeoOperations.spec.ts b/test/GeoOperations.spec.ts index ccdb872294..10c595b92e 100644 --- a/test/GeoOperations.spec.ts +++ b/test/GeoOperations.spec.ts @@ -3,6 +3,7 @@ import {equal} from "assert"; import T from "./TestHelper"; import {GeoOperations} from "../Logic/GeoOperations"; import {BBox} from "../Logic/BBox"; +import * as turf from "@turf/turf" export default class GeoOperationsSpec extends T { @@ -187,7 +188,7 @@ export default class GeoOperationsSpec extends T { ], ["Regression test: intersection/overlap", () => { - const polyGrb ={ + const polyGrb = { "type": "Feature", "properties": { "osm_id": "25189153", @@ -351,10 +352,15 @@ export default class GeoOperationsSpec extends T { } } + const p0 = turf.polygon(polyGrb.geometry.coordinates) + Assert.notEqual(p0, null) + const p1 = turf.polygon(polyHouse.geometry.coordinates) + Assert.notEqual(p1, null) + const overlaps = GeoOperations.calculateOverlap(polyGrb, [polyHouse]) - Assert.equal(overlaps.length, 1) - const overlapsRev= GeoOperations.calculateOverlap(polyHouse, [polyGrb]) - Assert.equal(overlaps.length, 1) + Assert.equal(overlaps.length, 0) + const overlapsRev = GeoOperations.calculateOverlap(polyHouse, [polyGrb]) + Assert.equal(overlapsRev.length, 0) }] ] diff --git a/test/TestHelper.ts b/test/TestHelper.ts index 5910b97856..f8a6714cb8 100644 --- a/test/TestHelper.ts +++ b/test/TestHelper.ts @@ -1,9 +1,9 @@ export default class T { public readonly name: string; - private readonly _tests: [string, (() => void)][]; + private readonly _tests: [string, (() => (void | Promise))][]; - constructor(testsuite: string, tests: [string, () => void][]) { + constructor(testsuite: string, tests: [string, () => (Promise | void)][]) { this.name = testsuite this._tests = tests; } @@ -60,7 +60,14 @@ export default class T { const failures: { testsuite: string, name: string, msg: string } [] = [] for (const [name, test] of this._tests) { try { - test(); + const r = test() + if (r instanceof Promise) { + r.catch(e => { + console.log("ASYNC ERROR: ", e, e.stack) + failures.push({testsuite: this.name, name: name, msg: "" + e}); + }); + } + } catch (e) { console.log("ERROR: ", e, e.stack) failures.push({testsuite: this.name, name: name, msg: "" + e}); From 9c6822a1acecdd2dbde223af11f03a89bd257208 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Fri, 24 Dec 2021 02:51:01 +0100 Subject: [PATCH 08/18] Improve docs, formatting --- Logic/Osm/Actions/ReplaceGeometryAction.ts | 7 ++--- UI/Popup/ImportButton.ts | 30 +++++++++++----------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/Logic/Osm/Actions/ReplaceGeometryAction.ts b/Logic/Osm/Actions/ReplaceGeometryAction.ts index 08848b7c29..651676dc58 100644 --- a/Logic/Osm/Actions/ReplaceGeometryAction.ts +++ b/Logic/Osm/Actions/ReplaceGeometryAction.ts @@ -249,9 +249,10 @@ export default class ReplaceGeometryAction extends OsmChangeAction { } /** - * For 'this.feature`, gets a corresponding closest node that alreay exsists - * @constructor - * @private + * For 'this.feature`, gets a corresponding closest node that alreay exsists. + * + * This method contains the main logic for this module, as it decides which node gets moved where. + * */ private async GetClosestIds(): Promise<{ diff --git a/UI/Popup/ImportButton.ts b/UI/Popup/ImportButton.ts index 2650312b11..af272dc572 100644 --- a/UI/Popup/ImportButton.ts +++ b/UI/Popup/ImportButton.ts @@ -309,7 +309,7 @@ export class ConflateButton extends AbstractImportButton { tagSource: UIEventSource, guiState: DefaultGuiState, feature: any, onCancelClicked: () => void): BaseUIElement { return new FixedUiElement("ReplaceGeometry is currently very broken - use mapcomplete.osm.be for now").SetClass("alert") - + const nodesMustMatch = args.snap_onto_layers?.split(";")?.map((tag, i) => TagUtils.Tag(tag, "TagsSpec for import button " + i)) const mergeConfigs = [] @@ -365,19 +365,19 @@ export class ImportWayButton extends AbstractImportButton { { name: "move_osm_point_if", doc: "Moves the OSM-point to the newly imported point if these conditions are met", - },{ - name:"max_move_distance", + }, { + name: "max_move_distance", doc: "If an OSM-point is moved, the maximum amount of meters it is moved. Capped on 20m", defaultValue: "1" - },{ - name:"snap_onto_layers", - doc:"If no existing nearby point exists, but a line of a specified layer is closeby, snap to this layer instead", - - },{ - name:"snap_to_layer_max_distance", - doc:"Distance to distort the geometry to snap to this layer", -defaultValue: "0.1" - }], + }, { + name: "snap_onto_layers", + doc: "If no existing nearby point exists, but a line of a specified layer is closeby, snap to this layer instead", + + }, { + name: "snap_to_layer_max_distance", + doc: "Distance to distort the geometry to snap to this layer", + defaultValue: "0.1" + }], false ) } @@ -428,14 +428,14 @@ defaultValue: "0.1" } mergeConfigs.push(mergeConfig) } - + const moveOsmPointIfTags = args["move_osm_point_if"]?.split(";")?.map((tag, i) => TagUtils.Tag(tag, "TagsSpec for import button " + i)) if (nodesMustMatch !== undefined && moveOsmPointIfTags.length > 0) { - const moveDistance = Math.min(20, Number(args["max_move_distance"])) + const moveDistance = Math.min(20, Number(args["max_move_distance"])) const mergeConfig: MergePointConfig = { - mode: "move_osm_point" , + mode: "move_osm_point", ifMatches: new And(moveOsmPointIfTags), withinRangeOfM: moveDistance } From 57096028c697e4802cd6fdbe590e9a53e6888cec Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 28 Dec 2021 20:50:35 +0100 Subject: [PATCH 09/18] Add partial fill to etymolgy --- assets/layers/etymology/etymology.json | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/assets/layers/etymology/etymology.json b/assets/layers/etymology/etymology.json index 73542931c1..b085843873 100644 --- a/assets/layers/etymology/etymology.json +++ b/assets/layers/etymology/etymology.json @@ -184,9 +184,31 @@ } ] }, + "fill":"no", "width": { "render": "8" } + }, + { + "color": { + "render": "#05d7fc44", + "mappings": [ + { + "if": { + "and": [ + "name:etymology=", + "name:etymology:wikidata=" + ] + }, + "then": "#fcca0544" + } + ] + }, + "fill":"no", + "offset":-12, + "width": { + "render": "16" + } } ] -} \ No newline at end of file +} From 5b0fcc7e27f897a4ac50d6d0949553d0608d56b8 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 29 Dec 2021 20:44:20 +0100 Subject: [PATCH 10/18] Food.json: add reviews --- assets/layers/food/food.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index b0a91d1c7b..8bc584cf0c 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -614,7 +614,7 @@ } } ] - } + },"reviews" ], "deletion": { "softDeletionTags": { @@ -679,4 +679,4 @@ "description": { "en": "A layer showing restaurants and fast-food amenities (with a special rendering for friteries)" } -} \ No newline at end of file +} From 62c34451fd43b5f59e5a18e6dc77eff3ccc532eb Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 29 Dec 2021 20:46:57 +0100 Subject: [PATCH 11/18] Fix reviews --- assets/layers/food/food.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index 8bc584cf0c..ae6b710817 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -543,7 +543,7 @@ "condition": "cuisine=friture" }, "service:electricity", - "dog-access" + "dog-access","reviews" ], "filter": [ { @@ -614,7 +614,7 @@ } } ] - },"reviews" + } ], "deletion": { "softDeletionTags": { From 5e03a06bf7e84808b3aecfb82fb3a9aaf3fc84e5 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 30 Dec 2021 22:01:23 +0100 Subject: [PATCH 12/18] Expose geometry type as metatag --- Logic/SimpleMetaTagger.ts | 18 ++++++++++++++++-- assets/layers/etymology/etymology.json | 23 ++++------------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/Logic/SimpleMetaTagger.ts b/Logic/SimpleMetaTagger.ts index a99a70d4fa..db422827f8 100644 --- a/Logic/SimpleMetaTagger.ts +++ b/Logic/SimpleMetaTagger.ts @@ -7,7 +7,6 @@ import Title from "../UI/Base/Title"; import {FixedUiElement} from "../UI/Base/FixedUiElement"; import LayerConfig from "../Models/ThemeConfig/LayerConfig"; import {CountryCoder} from "latlon2country" -import ScriptUtils from "../scripts/ScriptUtils"; export class SimpleMetaTagger { @@ -409,7 +408,21 @@ export default class SimpleMetaTaggers { feature.properties["_loaded:datetime"] = datetime(freshness); return true; } + ); + + public static geometryType = new SimpleMetaTagger( + { + keys:["_geometry:type"], + doc: "Adds the geometry type as property. This is identical to the GoeJson geometry type and is one of `Point`,`LineString`, `Polygon` and exceptionally `MultiPolygon` or `MultiLineString`", + }, + (feature, _) => { + const changed = feature.properties["_geometry:type"] === feature.geometry.type; + feature.properties["_geometry:type"] = feature.geometry.type; + return changed + } ) + + public static metatags: SimpleMetaTagger[] = [ SimpleMetaTaggers.latlon, SimpleMetaTaggers.layerInfo, @@ -421,7 +434,8 @@ export default class SimpleMetaTaggers { SimpleMetaTaggers.directionSimplified, SimpleMetaTaggers.currentTime, SimpleMetaTaggers.objectMetaInfo, - SimpleMetaTaggers.noBothButLeftRight + SimpleMetaTaggers.noBothButLeftRight, + SimpleMetaTaggers.geometryType ]; diff --git a/assets/layers/etymology/etymology.json b/assets/layers/etymology/etymology.json index b085843873..5db0aa0592 100644 --- a/assets/layers/etymology/etymology.json +++ b/assets/layers/etymology/etymology.json @@ -184,30 +184,15 @@ } ] }, - "fill":"no", + "fill": "no", "width": { - "render": "8" - } - }, - { - "color": { - "render": "#05d7fc44", + "render": "8", "mappings": [ { - "if": { - "and": [ - "name:etymology=", - "name:etymology:wikidata=" - ] - }, - "then": "#fcca0544" + "if": "_geometry:type=Polygon", + "then": "16" } ] - }, - "fill":"no", - "offset":-12, - "width": { - "render": "16" } } ] From 83641d24949502fdeb8d1e104fb768c9d8675e4f Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 30 Dec 2021 22:02:11 +0100 Subject: [PATCH 13/18] Regenerate docs --- Docs/BuiltinLayers.md | 15 +++++++++++++++ Docs/CalculatedTags.md | 11 +++++++++++ Docs/SpecialRenderings.md | 20 ++++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/Docs/BuiltinLayers.md b/Docs/BuiltinLayers.md index b88b012e57..7e61e352d0 100644 --- a/Docs/BuiltinLayers.md +++ b/Docs/BuiltinLayers.md @@ -16,6 +16,7 @@ + [left_right_style](#left_right_style) + [split_point](#split_point) + [current_view](#current_view) + + [matchpoint](#matchpoint) 1. [Normal layers](#normal-layers) - [Frequently reused layers](#frequently-reused-layers) + [bicycle_library](#bicycle_library) @@ -159,6 +160,7 @@ - [left_right_style](#left_right_style) - [split_point](#split_point) - [current_view](#current_view) + - [matchpoint](#matchpoint) ### gps_location @@ -287,6 +289,19 @@ The icon on the button is the default icon of the layer, but can be customized b + - This layer can **not** be included in a theme. It is solely used by [special renderings](SpecialRenderings.md) showing a minimap with custom data. + + +### matchpoint + + + +The default rendering for a locationInput which snaps onto another object + +[Go to the source code](../assets/layers/matchpoint/matchpoint.json) + + + - This layer can **not** be included in a theme. It is solely used by [special renderings](SpecialRenderings.md) showing a minimap with custom data. diff --git a/Docs/CalculatedTags.md b/Docs/CalculatedTags.md index 6caf884340..02bf6103c9 100644 --- a/Docs/CalculatedTags.md +++ b/Docs/CalculatedTags.md @@ -18,6 +18,7 @@ + [_now:date, _now:datetime, _loaded:date, _loaded:_datetime](#_nowdate,-_now:datetime,-_loaded:date,-_loaded:_datetime) + [_last_edit:contributor, _last_edit:contributor:uid, _last_edit:changeset, _last_edit:timestamp, _version_number, _backend](#_last_editcontributor,-_last_edit:contributor:uid,-_last_edit:changeset,-_last_edit:timestamp,-_version_number,-_backend) + [sidewalk:left, sidewalk:right, generic_key:left:property, generic_key:right:property](#sidewalkleft,-sidewalk:right,-generic_key:left:property,-generic_key:right:property) + + [_geometry:type](#_geometrytype) + [distanceTo](#distanceto) + [overlapWith](#overlapwith) + [intersectionsWith](#intersectionswith) @@ -149,6 +150,16 @@ Information about the last edit of this object. Rewrites tags from 'generic_key:both:property' as 'generic_key:left:property' and 'generic_key:right:property' (and similar for sidewalk tagging). Note that this rewritten tags _will be reuploaded on a change_. To prevent to much unrelated retagging, this is only enabled if the layer has at least some lineRenderings with offset defined + + + + +### _geometry:type + + + +Adds the geometry type as property. This is identical to the GoeJson geometry type and is one of `Point`,`LineString`, `Polygon` and exceptionally `MultiPolygon` or `MultiLineString` + Calculating tags with Javascript diff --git a/Docs/SpecialRenderings.md b/Docs/SpecialRenderings.md index 65163c390b..ba5b54f54b 100644 --- a/Docs/SpecialRenderings.md +++ b/Docs/SpecialRenderings.md @@ -42,6 +42,10 @@ * [Example usage of tag_apply](#example-usage-of-tag_apply) + [export_as_gpx](#export_as_gpx) * [Example usage of export_as_gpx](#example-usage-of-export_as_gpx) + + [export_as_geojson](#export_as_geojson) + * [Example usage of export_as_geojson](#example-usage-of-export_as_geojson) + + [open_in_iD](#open_in_id) + * [Example usage of open_in_iD](#example-usage-of-open_in_id) + [clear_location_history](#clear_location_history) * [Example usage of clear_location_history](#example-usage-of-clear_location_history) + [auto_apply](#auto_apply) @@ -450,6 +454,22 @@ id_of_object_to_apply_this_one | _undefined_ | If specified, applies the the tag `{export_as_gpx()}` +### export_as_geojson + + Exports the selected feature as GeoJson-file + +#### Example usage of export_as_geojson + + `{export_as_geojson()}` + +### open_in_iD + + Opens the current view in the iD-editor + +#### Example usage of open_in_iD + + `{open_in_iD()}` + ### clear_location_history A button to remove the travelled track information from the device From 99163711224708b672f7fb94f76ea4a82c68c065 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 30 Dec 2021 22:28:03 +0100 Subject: [PATCH 14/18] Remove mailto: prefix automatically in the email field --- UI/Input/ValidatedTextField.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/UI/Input/ValidatedTextField.ts b/UI/Input/ValidatedTextField.ts index 24f8435676..12e043b390 100644 --- a/UI/Input/ValidatedTextField.ts +++ b/UI/Input/ValidatedTextField.ts @@ -350,8 +350,19 @@ export default class ValidatedTextField { ValidatedTextField.tp( "email", "An email adress", - (str) => EmailValidator.validate(str), - undefined, + (str) => { + if(str.startsWith("mailto:")){ + str = str.substring("mailto:".length) + } + return EmailValidator.validate(str); + }, + str => { + if(str === undefined){return undefined} + if(str.startsWith("mailto:")){ + str = str.substring("mailto:".length) + } + return str; + }, undefined, "email"), ValidatedTextField.tp( From 444f0bc47c4be612afff3dc375a6462c35a29871 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Thu, 30 Dec 2021 22:36:34 +0100 Subject: [PATCH 15/18] Add check: layer and theme ids must be lowercase and match [a-z_-]* --- Models/ThemeConfig/LayerConfig.ts | 6 ++++++ Models/ThemeConfig/LayoutConfig.ts | 6 ++++++ assets/themes/aed/aed_brugge.json | 2 +- assets/themes/grb_import/grb.json | 18 +++++++++--------- assets/themes/grb_import/grb_fixme.json | 2 +- assets/themes/grb_import/missing_streets.json | 6 +++--- .../street_lighting/street_lighting_assen.json | 2 +- 7 files changed, 27 insertions(+), 15 deletions(-) diff --git a/Models/ThemeConfig/LayerConfig.ts b/Models/ThemeConfig/LayerConfig.ts index bce97c06cb..091422bb66 100644 --- a/Models/ThemeConfig/LayerConfig.ts +++ b/Models/ThemeConfig/LayerConfig.ts @@ -73,7 +73,13 @@ export default class LayerConfig extends WithContextLoader { if (json.source.osmTags === undefined) { throw "Layer " + this.id + " does not define a osmTags in the source section - these should always be present, even for geojson layers (" + context + ")" + } + if(json.id.toLowerCase() !== json.id){ + throw `${context}: The id of a layer should be lowercase: ${json.id}` + } + if(json.id.match(/[a-z0-9-_]/) == null){ + throw `${context}: The id of a layer should match [a-z0-9-_]*: ${json.id}` } this.maxAgeOfCache = json.source.maxCacheAge ?? 24 * 60 * 60 * 30 diff --git a/Models/ThemeConfig/LayoutConfig.ts b/Models/ThemeConfig/LayoutConfig.ts index 7fb99c32d8..e18cd7d8fe 100644 --- a/Models/ThemeConfig/LayoutConfig.ts +++ b/Models/ThemeConfig/LayoutConfig.ts @@ -58,6 +58,12 @@ export default class LayoutConfig { constructor(json: LayoutConfigJson, official = true, context?: string) { this.official = official; this.id = json.id; + if(json.id.toLowerCase() !== json.id){ + throw "The id of a theme should be lowercase: "+json.id + } + if(json.id.match(/[a-z0-9-_]/) == null){ + throw "The id of a theme should match [a-z0-9-_]*: "+json.id + } context = (context ?? "") + "." + this.id; this.maintainer = json.maintainer; this.credits = json.credits; diff --git a/assets/themes/aed/aed_brugge.json b/assets/themes/aed/aed_brugge.json index 92d829d22f..01b530198f 100644 --- a/assets/themes/aed/aed_brugge.json +++ b/assets/themes/aed/aed_brugge.json @@ -18,7 +18,7 @@ "layers": [ "defibrillator", { - "id": "Brugge", + "id": "brugge", "name": "Brugse dataset", "source": { "osmTags": "Brugs volgnummer~*", diff --git a/assets/themes/grb_import/grb.json b/assets/themes/grb_import/grb.json index 6b2948807b..f3cc1d2fd9 100644 --- a/assets/themes/grb_import/grb.json +++ b/assets/themes/grb_import/grb.json @@ -93,7 +93,7 @@ } }, { - "id": "OSM-buildings", + "id": "osm-buildings", "name": "All OSM-buildings", "source": { "osmTags": "building~*", @@ -372,13 +372,13 @@ "builtin": "crab_address", "override": { "calculatedTags+": [ - "_embedded_in=feat.overlapWith('OSM-buildings').filter(b => /* Do not match newly created objects */ b.feat.properties.id.indexOf('-') < 0)[0]?.feat?.properties ?? {}", + "_embedded_in=feat.overlapWith('osm-buildings').filter(b => /* Do not match newly created objects */ b.feat.properties.id.indexOf('-') < 0)[0]?.feat?.properties ?? {}", "_embedding_nr=feat.get('_embedded_in')['addr:housenumber']+(feat.get('_embedded_in')['addr:unit'] ?? '')", "_embedding_street=feat.get('_embedded_in')['addr:street']", "_embedding_id=feat.get('_embedded_in').id", "_closeby_addresses=feat.closestn('address',10,undefined,50).map(f => f.feat).filter(addr => addr.properties['addr:street'] == feat.properties['STRAATNM'] && feat.properties['HNRLABEL'] == addr.properties['addr:housenumber'] + (addr.properties['addr:unit']??'') ).length", "_has_identical_closeby_address=feat.get('_closeby_addresses') >= 1 ? 'yes' : 'no'", - "_embedded_in_grb=feat.overlapWith('GRB')[0]?.feat?.properties ?? {}", + "_embedded_in_grb=feat.overlapWith('grb')[0]?.feat?.properties ?? {}", "_embedding_nr_grb=feat.get('_embedded_in_grb')['addr:housenumber']", "_embedding_street_grb=feat.get('_embedded_in_grb')['addr:street']" ], @@ -452,7 +452,7 @@ }, { "id": "import-button", - "render": "{import_button(address, addr:street=$STRAATNM; addr:housenumber=$_HNRLABEL,Voeg dit adres als een nieuw adrespunt toe,,OSM-buildings,5)}", + "render": "{import_button(address, addr:street=$STRAATNM; addr:housenumber=$_HNRLABEL,Voeg dit adres als een nieuw adrespunt toe,,osm-buildings,5)}", "condition": { "and": [ "_embedding_id!=", @@ -469,7 +469,7 @@ } }, { - "id": "GRB", + "id": "grb", "description": "Geometry which comes from GRB with tools to import them", "source": { "osmTags": { @@ -486,7 +486,7 @@ "name": "GRB geometries", "title": "GRB outline", "calculatedTags": [ - "_overlaps_with_buildings=feat.overlapWith('OSM-buildings').filter(f => f.feat.properties.id.indexOf('-') < 0)", + "_overlaps_with_buildings=feat.overlapWith('osm-buildings').filter(f => f.feat.properties.id.indexOf('-') < 0)", "_overlaps_with=feat.get('_overlaps_with_buildings').filter(f => f.overlap > 1 /* square meter */ )[0] ?? ''", "_overlap_absolute=feat.get('_overlaps_with')?.overlap", "_overlap_percentage=Math.round(100 * feat.get('_overlap_absolute') / feat.get('_surface')) ", @@ -507,7 +507,7 @@ "tagRenderings": [ { "id": "Import-button", - "render": "{import_way_button(OSM-buildings,building=$building;man_made=$man_made; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref; addr:street=$addr:street; addr:housenumber=$addr:housenumber; building:min_level=$_building:min_level, Upload this building to OpenStreetMap,,_is_part_of_building=true,1,_moveable=true)}", + "render": "{import_way_button(osm-buildings,building=$building;man_made=$man_made; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref; addr:street=$addr:street; addr:housenumber=$addr:housenumber; building:min_level=$_building:min_level, Upload this building to OpenStreetMap,,_is_part_of_building=true,1,_moveable=true)}", "mappings": [ { "#": "Hide import button if intersection with other objects are detected", @@ -524,11 +524,11 @@ "addr:housenumber~*" ] }, - "then": "{conflate_button(OSM-buildings,building=$_target_building_type; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref; addr:street=$addr:street; addr:housenumber=$addr:housenumber, Replace the geometry in OpenStreetMap and add the address,,_osm_obj:id)}" + "then": "{conflate_button(osm-buildings,building=$_target_building_type; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref; addr:street=$addr:street; addr:housenumber=$addr:housenumber, Replace the geometry in OpenStreetMap and add the address,,_osm_obj:id)}" }, { "if": "_overlaps_with!=", - "then": "{conflate_button(OSM-buildings,building=$_target_building_type; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref, Replace the geometry in OpenStreetMap,,_osm_obj:id)}" + "then": "{conflate_button(osm-buildings,building=$_target_building_type; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref, Replace the geometry in OpenStreetMap,,_osm_obj:id)}" } ] }, diff --git a/assets/themes/grb_import/grb_fixme.json b/assets/themes/grb_import/grb_fixme.json index 9a00f3ad1f..e1687783f9 100644 --- a/assets/themes/grb_import/grb_fixme.json +++ b/assets/themes/grb_import/grb_fixme.json @@ -31,7 +31,7 @@ }, "layers": [ { - "id": "OSM-buildings-fixme", + "id": "osm-buildings-fixme", "name": "OSM-buildings with a fixme", "source": { "osmTags": { diff --git a/assets/themes/grb_import/missing_streets.json b/assets/themes/grb_import/missing_streets.json index 7630d59036..dc82fc85b2 100644 --- a/assets/themes/grb_import/missing_streets.json +++ b/assets/themes/grb_import/missing_streets.json @@ -42,7 +42,7 @@ } ], "calculatedTags": [ - "_overlapping=Number(feat.properties.zoom) >= 14 ? feat.overlapWith('OSM-buildings').map(ff => ff.feat.properties) : undefined", + "_overlapping=Number(feat.properties.zoom) >= 14 ? feat.overlapWith('osm-buildings').map(ff => ff.feat.properties) : undefined", "_applicable=feat.get('_overlapping').filter(p => (p._spelling_is_correct === 'true') && (p._singular_import === 'true')).map(p => p.id)", "_applicable_count=feat.get('_applicable')?.length" ], @@ -67,7 +67,7 @@ }, { "id": "autoapply", - "render": "{auto_apply(OSM-buildings, _applicable, apply_streetname, Automatically add all missing streetnames on buildings in view)}" + "render": "{auto_apply(osm-buildings, _applicable, apply_streetname, Automatically add all missing streetnames on buildings in view)}" } ] } @@ -89,7 +89,7 @@ } }, { - "id": "OSM-buildings", + "id": "osm-buildings", "name": "Alle OSM-gebouwen met een huisnummer en zonder straat", "source": { "osmTags": { diff --git a/assets/themes/street_lighting/street_lighting_assen.json b/assets/themes/street_lighting/street_lighting_assen.json index 7f98cdcd70..fe515dba0c 100644 --- a/assets/themes/street_lighting/street_lighting_assen.json +++ b/assets/themes/street_lighting/street_lighting_assen.json @@ -19,7 +19,7 @@ "layers": [ "street_lamps", { - "id": "Assen", + "id": "assen", "name": "Dataset Assen", "source": { "osmTags": "Lichtmastnummer~*", From a35b1d34f464391aa6596336511301d27b3e4fa6 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Sat, 1 Jan 2022 02:03:00 +0100 Subject: [PATCH 16/18] Fix #595: cycle_barrier preset correction, add option to switch --- assets/layers/barrier/barrier.json | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/assets/layers/barrier/barrier.json b/assets/layers/barrier/barrier.json index fd29db7e85..0d784972f9 100644 --- a/assets/layers/barrier/barrier.json +++ b/assets/layers/barrier/barrier.json @@ -80,7 +80,7 @@ "de": "Fahrradhindernis" }, "tags": [ - "barrier=bollard" + "barrier=cycle_barrier" ], "description": { "en": "Cycle barrier, slowing down cyclists", @@ -125,6 +125,23 @@ ], "id": "bicycle=yes/no" }, + { + "id": "barrier_type", + "mappings": [ + { + "if": "barrier=bollard", + "then": { + "en": "This is a single bollard in the road" + } + },{ + "if": "barrier=cycle_barrier", + "then": { + "en": "This is a cycle barrier slowing down cyclists", + "nl": "Dit zijn fietshekjes die fietsers afremmen" + } + } + ] + }, { "question": { "en": "What kind of bollard is this?", From 4fd30d1a62d63623a77d1c5fe1c036f6b79f00c2 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Wed, 5 Jan 2022 17:08:35 +0100 Subject: [PATCH 17/18] Add support for 'contact:email','contact:phone' and 'contact:website' (write to 'email', 'phone' and 'website' if changed) - fix #601; remove 'tel:' from phone addresses - fix #602; small fixes to tag preview in case of deletion --- Logic/Tags/And.ts | 2 +- Logic/Tags/Tag.ts | 2 +- UI/Input/ValidatedTextField.ts | 10 ++++++++- assets/tagRenderings/questions.json | 32 +++++++++++++++++++++++++---- 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/Logic/Tags/And.ts b/Logic/Tags/And.ts index a5161b90fd..78b6d47106 100644 --- a/Logic/Tags/And.ts +++ b/Logic/Tags/And.ts @@ -59,7 +59,7 @@ export class And extends TagsFilter { } asHumanString(linkToWiki: boolean, shorten: boolean, properties) { - return this.and.map(t => t.asHumanString(linkToWiki, shorten, properties)).join("&"); + return this.and.map(t => t.asHumanString(linkToWiki, shorten, properties)).filter(x => x !== "").join("&"); } isUsableAsAnswer(): boolean { diff --git a/Logic/Tags/Tag.ts b/Logic/Tags/Tag.ts index 2d3c8a4a32..90b2c8841a 100644 --- a/Logic/Tags/Tag.ts +++ b/Logic/Tags/Tag.ts @@ -48,7 +48,7 @@ export class Tag extends TagsFilter { } if(v === "" || v === undefined){ // This tag will be removed if in the properties, so we indicate this with special rendering - if(currentProperties !== undefined && (currentProperties[this.key] ?? "") !== ""){ + if(currentProperties !== undefined && (currentProperties[this.key] ?? "") === ""){ // This tag is not present in the current properties, so this tag doesn't change anything return "" } diff --git a/UI/Input/ValidatedTextField.ts b/UI/Input/ValidatedTextField.ts index 12e043b390..8002186069 100644 --- a/UI/Input/ValidatedTextField.ts +++ b/UI/Input/ValidatedTextField.ts @@ -406,9 +406,17 @@ export default class ValidatedTextField { if (str === undefined) { return false; } + if(str.startsWith("tel:")){ + str = str.substring("tel:".length) + } return parsePhoneNumberFromString(str, (country())?.toUpperCase() as any)?.isValid() ?? false }, - (str, country: () => string) => parsePhoneNumberFromString(str, (country())?.toUpperCase() as any).formatInternational(), + (str, country: () => string) => { + if(str.startsWith("tel:")){ + str = str.substring("tel:".length) + } + return parsePhoneNumberFromString(str, (country())?.toUpperCase() as any).formatInternational(); + }, undefined, "tel" ), diff --git a/assets/tagRenderings/questions.json b/assets/tagRenderings/questions.json index 25a9549efa..f43b36ad09 100644 --- a/assets/tagRenderings/questions.json +++ b/assets/tagRenderings/questions.json @@ -71,9 +71,17 @@ "ca": "Quin és el telèfon de {name}?" }, "render": "{phone}", + "mappings": [ + { + "if": "contact:phone~*", + "then": "{contact:phone}", + "hideInAnswer": true + } + ], "freeform": { "key": "phone", - "type": "phone" + "type": "phone", + "addExtraTags": ["contact:phone="] } }, "osmlink": { @@ -140,9 +148,17 @@ "hu": "Mi a(z) {name} e-mail címe?", "ca": "Quina és l'adreça de correu electrònic de {name}?" }, + "mappings": [ + { + "if": "contact:email~*", + "then": "{contact:email}", + "hideInAnswer": true + } + ], "freeform": { "key": "email", - "type": "email" + "type": "email", + "addExtraTags": ["contact:email="] } }, "website": { @@ -168,8 +184,16 @@ "render": "{website}", "freeform": { "key": "website", - "type": "url" - } + "type": "url", + "addExtraTags": ["contact:website="] + }, + "mappings": [ + { + "if": "contact:website~*", + "then": "{contact:website}", + "hideInAnswer": true + } + ] }, "wheelchair-access": { "question": { From ee962f4ba3a19c98b0ec756bfb485769e3a00d47 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Wed, 5 Jan 2022 18:08:42 +0100 Subject: [PATCH 18/18] Small performance issues, improvement of #579 --- Logic/UIEventSource.ts | 5 ++++- UI/ShowDataLayer/ShowDataLayer.ts | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Logic/UIEventSource.ts b/Logic/UIEventSource.ts index 3aebda8532..28f2152575 100644 --- a/Logic/UIEventSource.ts +++ b/Logic/UIEventSource.ts @@ -281,10 +281,12 @@ export class UIEventSource { * @param f: The transforming function * @param extraSources: also trigger the update if one of these sources change * @param g: a 'backfunction to let the sync run in two directions. (data of the new UIEVEntSource, currentData) => newData + * @param allowUnregister: if set, the update will be halted if no listeners are registered */ public map(f: ((t: T) => J), extraSources: UIEventSource[] = [], - g: ((j: J, t: T) => T) = undefined): UIEventSource { + g: ((j: J, t: T) => T) = undefined, + allowUnregister = false): UIEventSource { const self = this; const stack = new Error().stack.split("\n"); @@ -297,6 +299,7 @@ export class UIEventSource { const update = function () { newSource.setData(f(self.data)); + return allowUnregister && newSource._callbacks.length === 0 } this.addCallback(update); diff --git a/UI/ShowDataLayer/ShowDataLayer.ts b/UI/ShowDataLayer/ShowDataLayer.ts index f306cadf23..d1af720010 100644 --- a/UI/ShowDataLayer/ShowDataLayer.ts +++ b/UI/ShowDataLayer/ShowDataLayer.ts @@ -145,7 +145,8 @@ export default class ShowDataLayer { pointToLayer: (feature, latLng) => self.pointToLayer(feature, latLng), onEachFeature: (feature, leafletLayer) => self.postProcessFeature(feature, leafletLayer) }); - + + const selfLayer = this.geoLayer; const allFeats = this._features.features.data; for (const feat of allFeats) { if (feat === undefined) { @@ -153,12 +154,11 @@ export default class ShowDataLayer { } try { if (feat.geometry.type === "LineString") { - const self = this; const coords = L.GeoJSON.coordsToLatLngs(feat.geometry.coordinates) const tagsSource = this.allElements?.addOrGetElement(feat) ?? new UIEventSource(feat.properties); let offsettedLine; tagsSource - .map(tags => this._layerToShow.lineRendering[feat.lineRenderingIndex].GenerateLeafletStyle(tags)) + .map(tags => this._layerToShow.lineRendering[feat.lineRenderingIndex].GenerateLeafletStyle(tags), [], undefined, true) .withEqualityStabilized((a, b) => { if (a === b) { return true @@ -176,6 +176,9 @@ export default class ShowDataLayer { offsettedLine = L.polyline(coords, lineStyle); this.postProcessFeature(feat, offsettedLine) offsettedLine.addTo(this.geoLayer) + + // If 'self.geoLayer' is not the same as the layer the feature is added to, we can safely remove this callback + return self.geoLayer !== selfLayer }) } else { this.geoLayer.addData(feat); @@ -186,11 +189,13 @@ export default class ShowDataLayer { } if (options.zoomToFeatures ?? false) { - try { - const bounds = this.geoLayer.getBounds() - mp.fitBounds(bounds, {animate: false}) - } catch (e) { - console.debug("Invalid bounds", e) + if(this.geoLayer.getLayers().length > 0){ + try { + const bounds = this.geoLayer.getBounds() + mp.fitBounds(bounds, {animate: false}) + } catch (e) { + console.debug("Invalid bounds", e) + } } }