feat: tools

This commit is contained in:
Artemy 2023-06-10 20:11:12 +03:00
parent 59fe9749a7
commit 0987ee994a
5 changed files with 1347 additions and 0 deletions

70
CountryFixer.js Normal file
View file

@ -0,0 +1,70 @@
#!/usr/bin/env node
const turf = require("@turf/turf");
const fs = require("fs");
const yargs = require("yargs/yargs");
const { hideBin } = require("yargs/helpers");
const args = yargs(hideBin(process.argv)).argv;
let simplify = Number(args.simplify) || false;
let co_features = JSON.parse(fs.readFileSync(args.countryPath));
let nonPoly = co_features.features.filter(
(v) => !v.geometry.type.endsWith("Polygon")
);
nonPoly = nonPoly.map((v) => {
if (v.properties.type === "landmark") {
v.properties.type = "landmark-0";
}
if (!v.properties.type) {
v.properties.type = "city";
}
return v;
});
let polygons = co_features.features.filter((v) =>
v.geometry.type.endsWith("Polygon")
);
let props = {};
for (let feature of polygons) {
if (props[feature.properties.name]) continue;
props[feature.properties.name] = {
stroke: feature.properties.stroke,
fill: feature.properties.fill,
type: feature.properties.type,
tags: feature.properties.tags,
};
}
polygons = turf.dissolve(turf.featureCollection(polygons), {
propertyName: "some-undefined-value",
});
if (simplify !== false) {
polygons = turf.simplify(polygons, {
tolerance: simplify,
highQuality: true,
});
}
polygons.features = polygons.features.map((v) => {
v.properties = {
name: v.properties.name,
fill: props[v.properties.name].fill,
stroke: props[v.properties.name].stroke,
type: props[v.properties.name].type,
tags: props[v.properties.name].tags,
};
return v;
});
polygons.features = polygons.features.concat(nonPoly);
console.log("done");
fs.writeFileSync(args.countryPath, JSON.stringify(polygons, null, " "));

383
GeoBuilder.js Normal file
View file

@ -0,0 +1,383 @@
#!/usr/bin/env node
const turf = require("@turf/turf");
const fs = require("fs");
const YAML = require("yaml");
const _ = require("lodash");
const path = require("node:path");
const yargs = require("yargs/yargs");
const { hideBin } = require("yargs/helpers");
const args = yargs(hideBin(process.argv)).argv;
const geofixConf = {
projectFolder: args.projectFolder,
layers: args.layers || path.join(args.projectFolder, "src", "layers.yaml"),
properties:
args.properties || path.join(args.projectFolder, "src", "properties.yaml"),
config: args.config || path.join(args.projectFolder, "src", "config.yaml"),
countries:
args.countries || path.join(args.projectFolder, "src", "countries"),
naturesObjects:
args.naturesObjects || path.join(args.projectFolder, "src", "nature"),
roads: args.roads || path.join(args.projectFolder, "src", "roads"),
output: args.output || path.join(args.projectFolder, "geo.geojson"),
};
let layers = YAML.parse(fs.readFileSync(geofixConf.layers, "utf-8"));
let countries_properties = YAML.parse(
fs.readFileSync(geofixConf.properties, "utf-8")
);
let config = YAML.parse(fs.readFileSync(geofixConf.config, "utf-8"));
let features = [];
for (country of layers) {
let properties = countries_properties[country];
let co_features = JSON.parse(
fs.readFileSync(
path.join(geofixConf.countries, `${country}.geojson`),
"utf-8"
)
);
fs.writeFileSync(
path.join(geofixConf.countries, `${country}.geojson`),
JSON.stringify(co_features, null, " ")
);
co_features = co_features.features;
features = [
...features,
...co_features.map((val) => {
if (val.geometry.type == "Polygon") {
val.properties = properties;
val.properties.name = country;
}
return val;
}),
];
}
let geo = {
type: "FeatureCollection",
features: features.reverse(),
};
geo.features = geo.features.filter((v) => v.properties.name);
console.time("Total");
console.log("Dissolve");
console.time("Dissolve");
let nonPoly = geo.features.filter((v) => !v.geometry.type.endsWith("Polygon"));
nonPoly = nonPoly.map((v) => {
if (v.properties.type === "landmark") {
v.properties.type = "landmark-0";
}
if (!v.properties.type) {
v.properties.type = "city";
}
return v;
});
let polygons = geo.features.filter((v) => v.geometry.type.endsWith("Polygon"));
let props = {};
for (let feature of polygons) {
if (props[feature.properties.name]) continue;
props[feature.properties.name] = {
stroke: feature.properties.stroke,
fill: feature.properties.fill,
type: feature.properties.type,
tags: feature.properties.tags,
};
}
let dissolved = turf.dissolve(turf.featureCollection(polygons), {
propertyName: "name",
});
dissolved.features = dissolved.features.map((v) => {
v.properties = {
name: v.properties.name,
fill: props[v.properties.name].fill,
stroke: props[v.properties.name].stroke,
type: props[v.properties.name].type,
tags: props[v.properties.name].tags,
};
return v;
});
geo.features = dissolved.features.concat(nonPoly);
console.timeEnd("Dissolve");
console.log();
console.log("Polygons to MultiPolygons");
console.time("Polygons to MultiPolygons");
polygons = geo.features.filter((v) => v.geometry.type.endsWith("Polygon"));
nonPoly = geo.features.filter((v) => !v.geometry.type.endsWith("Polygon"));
let countries = {};
for (let somePolygon of polygons) {
if (!countries[somePolygon.properties.name]) {
countries[somePolygon.properties.name] = {
type: "Feature",
properties: somePolygon.properties,
geometry: {
type: "MultiPolygon",
coordinates: [],
},
};
}
if (somePolygon.geometry.type === "MultiPolygon") {
countries[somePolygon.properties.name].geometry.coordinates = countries[
somePolygon.properties.name
].concat(somePolygon.geometry.coordinates);
} else if (somePolygon.geometry.type === "Polygon") {
countries[somePolygon.properties.name].geometry.coordinates.push(
somePolygon.geometry.coordinates
);
}
}
let multiPolygons = Object.values(countries);
geo.features = multiPolygons.concat(nonPoly);
console.timeEnd("Polygons to MultiPolygons");
console.log();
console.log("Difference");
console.time("Difference");
for (let g = 0; g < geo.features.length; g++) {
for (let i = 0; i < geo.features.length; i++) {
try {
if (
geo.features[g] === geo.features[i] ||
geo.features[i]?.properties.type === "sand" ||
geo.features[i]?.properties.type === "water" ||
geo.features[i]?.properties.type === "grass" ||
geo.features[g]?.properties.type === "sand" ||
geo.features[g]?.properties.type === "water" ||
geo.features[g]?.properties.type === "grass"
) {
continue;
}
if (
(geo.features[g]?.geometry.type === "Polygon" ||
geo.features[g]?.geometry.type === "MultiPolygon") &&
(geo.features[i]?.geometry.type === "Polygon" ||
geo.features[i]?.geometry.type === "MultiPolygon")
) {
let p1 =
geo.features[g]?.geometry.type === "MultiPolygon"
? turf.multiPolygon(
geo.features[g].geometry.coordinates,
geo.features[g].properties
)
: turf.polygon(
geo.features[g].geometry.coordinates,
geo.features[g].properties
);
let p2 =
geo.features[i]?.geometry.type === "MultiPolygon"
? turf.multiPolygon(
geo.features[i].geometry.coordinates,
geo.features[i].properties
)
: turf.polygon(
geo.features[i].geometry.coordinates,
geo.features[i].properties
);
let diff = turf.difference(p1, p2);
geo.features[g] = diff ? diff : geo.features[g];
} else continue;
} catch (e) {
console.log("Error, skip \n", e, "\n");
}
}
}
console.timeEnd("Difference");
console.log();
console.log("Add Map Components");
console.time("Add Map Components");
let sand = JSON.parse(
fs.readFileSync(path.join(geofixConf.naturesObjects, "sand.geojson"), "utf-8")
).features;
let water = JSON.parse(
fs.readFileSync(
path.join(geofixConf.naturesObjects, "water.geojson"),
"utf-8"
)
).features;
let grass = JSON.parse(
fs.readFileSync(
path.join(geofixConf.naturesObjects, "grass.geojson"),
"utf-8"
)
).features;
let white_road = JSON.parse(
fs.readFileSync(path.join(geofixConf.roads, "white.geojson"), "utf-8")
).features;
let orange_road = JSON.parse(
fs.readFileSync(path.join(geofixConf.roads, "orange.geojson"), "utf-8")
).features;
let yellow_road = JSON.parse(
fs.readFileSync(path.join(geofixConf.roads, "yellow.geojson"), "utf-8")
).features;
let road_sizes = JSON.parse(
fs.readFileSync(path.join(geofixConf.roads, "sizes.json"), "utf-8")
);
let map_comps = [
...water.map((val) => {
val.properties.type = "water";
val.properties.fill = "#75cff0";
val.properties.stroke = "#75cff0";
val.properties["fill-opacity"] = 1;
return val;
}),
...sand.map((val) => {
val.properties.type = "sand";
val.properties.fill = "#efe9e1";
val.properties.stroke = "#efe9e1";
val.properties["fill-opacity"] = 1;
return val;
}),
...grass.map((val) => {
val.properties.type = "grass";
val.properties.fill = "#d1e6be";
val.properties.stroke = "#d1e6be";
val.properties["fill-opacity"] = 1;
return val;
}),
...white_road.map((val) => {
let total = turf.buffer(
val,
road_sizes[val.properties.type] || road_sizes["middle"]
);
total.properties.type = "white_road";
val.properties.fill = "#fff";
val.properties.stroke = "#fff";
val.properties["fill-opacity"] = 1;
return total;
}),
...yellow_road.map((val) => {
let total = turf.buffer(
val,
road_sizes[val.properties.type] || road_sizes["middle"]
);
total.properties.type = "yellow_road";
val.properties.fill = "#ffc107";
val.properties.stroke = "#ffc107";
val.properties["fill-opacity"] = 1;
return total;
}),
...orange_road.map((val) => {
let total = turf.buffer(
val,
road_sizes[val.properties.type] || road_sizes["big"]
);
total.properties.type = "orange_road";
val.properties.fill = "#fd7e14";
val.properties.stroke = "#fd7e14";
val.properties["fill-opacity"] = 1;
return total;
}),
];
props = {};
for (let feature of map_comps) {
if (props[feature.properties.type]) continue;
props[feature.properties.type] = {
stroke: feature.properties.stroke,
fill: feature.properties.fill,
type: feature.properties.type,
tags: feature.properties.tags,
"fill-opacity": feature.properties["fill-opacity"],
};
}
map_comps = turf.dissolve(turf.featureCollection(map_comps), {
propertyName: "type",
});
map_comps.features = map_comps.features.map((v) => {
v.properties = {
fill: props[v.properties.type].fill,
stroke: props[v.properties.type].stroke,
type: props[v.properties.type].type,
tags: props[v.properties.type].tags,
"fill-opacity": props[v.properties.type]["fill-opacity"],
};
return v;
});
geo.features = [...map_comps.features, ...geo.features];
console.timeEnd("Add Map Components");
console.log();
if (config?.tags) {
console.log("Filter countries by tags");
console.time("Filter countries by tags");
geo.features = geo.features.filter((val) => {
if (_.intersection(config.tags, val.properties.tags).length === 0)
return false;
// else if (config?.cities == false && val.geometry.type === "Point")
// return false;
else return true;
});
console.timeEnd("Filter countries by tag");
console.log();
}
if (config?.reProperty) {
console.log("replace Properties");
console.time("replace Properties");
geo.features = geo.features.map((val) => {
val.properties = config.reProperty;
return val;
});
console.timeEnd("replace Properties");
console.log();
}
console.log("Set new ids");
console.time("Set new ids");
let id = 0;
geo.features = geo.features.map((val) => {
val.id = id++;
return val;
});
console.timeEnd("Set new ids");
fs.writeFileSync(geofixConf.output, JSON.stringify(geo, null, " "));
console.timeEnd("Total");

857
package-lock.json generated Normal file
View file

@ -0,0 +1,857 @@
{
"name": "cimengine-build-tools",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cimengine-build-tools",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"turf": "^3.0.14",
"yargs": "^17.7.2"
}
},
"node_modules/affine-hull": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/affine-hull/-/affine-hull-1.0.0.tgz",
"integrity": "sha512-3QNG6+vFAwJvSZHsJYDJ/mt1Cxx9n5ffA+1Ohmj7udw0JuRgUVIXK0P9N9pCMuEdS3jCNt8GFX5q2fChq+GO3Q==",
"dependencies": {
"robust-orientation": "^1.1.3"
}
},
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/bit-twiddle": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz",
"integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA=="
},
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
"wrap-ansi": "^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/convex-hull": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz",
"integrity": "sha512-24rZAoh81t41GHPLAxcsokgjH9XNoVqU2OiSi8iMHUn6HUURfiefcEWAPt1AfwZjBBWTKadOm1xUcUMnfFukhQ==",
"dependencies": {
"affine-hull": "^1.0.0",
"incremental-convex-hull": "^1.0.1",
"monotone-convex-hull-2d": "^1.0.1"
}
},
"node_modules/earcut": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
"integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"engines": {
"node": ">=6"
}
},
"node_modules/geojson-area": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/geojson-area/-/geojson-area-0.2.1.tgz",
"integrity": "sha512-I+cht30/CFFObh8GgEa/1o9Kd7RwQTHmotYp3ToyCpxxDFNcuX5SlErKkvoy3otnrsWzODN8yscSTGOAkQ3tKQ==",
"deprecated": "This module is now under the @mapbox namespace: install @mapbox/geojson-area instead",
"dependencies": {
"wgs84": "0.0.0"
}
},
"node_modules/geojson-normalize": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/geojson-normalize/-/geojson-normalize-0.0.0.tgz",
"integrity": "sha512-h/ldgc7C2DrYDIn+F/o+AgZLxmeC+O4q3wvGwiuBjTTRnhxvxaGz6cE6cRTeMH89jIJM3BiP+R6Yiht7f3PBuA==",
"deprecated": "This module is now under the @mapbox namespace: install @mapbox/geojson-normalize instead"
},
"node_modules/geojson-random": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/geojson-random/-/geojson-random-0.2.2.tgz",
"integrity": "sha512-/vZQ14mjKPG3LJ7bpyXsJ0aoz8NzvwpwwP//uBgbzIu2BCFd4uRagp1QvY3RAzRQsHOHyVh33dbYUYws7vOCkg==",
"bin": {
"geojson-random": "geojson-random"
}
},
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/incremental-convex-hull": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/incremental-convex-hull/-/incremental-convex-hull-1.0.1.tgz",
"integrity": "sha512-mKRJDXtzo1R9LxCuB1TdwZXHaPaIEldoGPsXy2jrJc/kufyqp8y/VAQQxThSxM2aroLoh6uObexPk1ASJ7FB7Q==",
"dependencies": {
"robust-orientation": "^1.1.2",
"simplicial-complex": "^1.0.0"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"engines": {
"node": ">=8"
}
},
"node_modules/jsts": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/jsts/-/jsts-1.1.2.tgz",
"integrity": "sha512-4qWAI9gR72HcGWCl7bej9/2dCM6Nv6dh5Zn1G+wzJYW9wsFL/2bPA3kdR8IAPObmF4gb56l5EGlXxErmB+9GOw==",
"engines": {
"node": ">= 4"
}
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/monotone-convex-hull-2d": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz",
"integrity": "sha512-ixQ3qdXTVHvR7eAoOjKY8kGxl9YjOFtzi7qOjwmFFPfBqZHVOjUFOBy/Dk9dusamRSPJe9ggyfSypRbs0Bl8BA==",
"dependencies": {
"robust-orientation": "^1.1.3"
}
},
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/robust-orientation": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.2.1.tgz",
"integrity": "sha512-FuTptgKwY6iNuU15nrIJDLjXzCChWB+T4AvksRtwPS/WZ3HuP1CElCm1t+OBfgQKfWbtZIawip+61k7+buRKAg==",
"dependencies": {
"robust-scale": "^1.0.2",
"robust-subtract": "^1.0.0",
"robust-sum": "^1.0.0",
"two-product": "^1.0.2"
}
},
"node_modules/robust-scale": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz",
"integrity": "sha512-jBR91a/vomMAzazwpsPTPeuTPPmWBacwA+WYGNKcRGSh6xweuQ2ZbjRZ4v792/bZOhRKXRiQH0F48AvuajY0tQ==",
"dependencies": {
"two-product": "^1.0.2",
"two-sum": "^1.0.0"
}
},
"node_modules/robust-subtract": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz",
"integrity": "sha512-xhKUno+Rl+trmxAIVwjQMiVdpF5llxytozXJOdoT4eTIqmqsndQqFb1A0oiW3sZGlhMRhOi6pAD4MF1YYW6o/A=="
},
"node_modules/robust-sum": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz",
"integrity": "sha512-AvLExwpaqUqD1uwLU6MwzzfRdaI6VEZsyvQ3IAQ0ZJ08v1H+DTyqskrf2ZJyh0BDduFVLN7H04Zmc+qTiahhAw=="
},
"node_modules/simplicial-complex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz",
"integrity": "sha512-mHauIKSOy3GquM5VnYEiu7eP5y4A8BiaN9ezUUgyYFz1k68PqDYcyaH3kenp2cyvWZE96QKE3nrxYw65Allqiw==",
"dependencies": {
"bit-twiddle": "^1.0.0",
"union-find": "^1.0.0"
}
},
"node_modules/simplify-js": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/simplify-js/-/simplify-js-1.2.4.tgz",
"integrity": "sha512-vITfSlwt7h/oyrU42R83mtzFpwYk3+mkH9bOHqq/Qw6n8rtR7aE3NZQ5fbcyCUVVmuMJR6ynsAhOfK2qoah8Jg=="
},
"node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/turf": {
"version": "3.0.14",
"resolved": "https://registry.npmjs.org/turf/-/turf-3.0.14.tgz",
"integrity": "sha512-YKaS5wvijcTkGr1p6YQXh2xHWojhC6PMPo8pUFqphgJhq4DCtRBDc0UfbfbS/SD3ozzRFcGDrO3jrQqNBi3VAw==",
"deprecated": "This package has moved: use @turf/turf instead",
"dependencies": {
"turf-along": "^3.0.12",
"turf-area": "^3.0.12",
"turf-bbox": "^3.0.12",
"turf-bbox-polygon": "^3.0.12",
"turf-bearing": "^3.0.12",
"turf-bezier": "^3.0.12",
"turf-buffer": "^3.0.12",
"turf-center": "^3.0.12",
"turf-centroid": "^3.0.12",
"turf-circle": "^3.0.12",
"turf-collect": "^3.0.12",
"turf-combine": "^3.0.12",
"turf-concave": "^3.0.12",
"turf-convex": "^3.0.12",
"turf-destination": "^3.0.12",
"turf-difference": "^3.0.12",
"turf-distance": "^3.0.12",
"turf-envelope": "^3.0.12",
"turf-explode": "^3.0.12",
"turf-flip": "^3.0.12",
"turf-helpers": "^3.0.12",
"turf-hex-grid": "^3.0.12",
"turf-inside": "^3.0.12",
"turf-intersect": "^3.0.12",
"turf-isolines": "^3.0.12",
"turf-kinks": "^3.0.12",
"turf-line-distance": "^3.0.12",
"turf-line-slice": "^3.0.12",
"turf-meta": "^3.0.12",
"turf-midpoint": "^3.0.12",
"turf-nearest": "^3.0.12",
"turf-planepoint": "^3.0.12",
"turf-point-grid": "^3.0.12",
"turf-point-on-line": "^3.0.12",
"turf-point-on-surface": "^3.0.12",
"turf-random": "^3.0.12",
"turf-sample": "^3.0.12",
"turf-simplify": "^3.0.12",
"turf-square": "^3.0.12",
"turf-square-grid": "^3.0.12",
"turf-tag": "^3.0.12",
"turf-tesselate": "^3.0.12",
"turf-tin": "^3.0.12",
"turf-triangle-grid": "^3.0.12",
"turf-union": "^3.0.12",
"turf-within": "^3.0.12"
}
},
"node_modules/turf-along": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-along/-/turf-along-3.0.12.tgz",
"integrity": "sha512-9wHa3LiqsdEExCuPgw8O5fJzqeL4lf8srBBfjGid2Tjh2nwuqgkcFZxzbnLE0Y8oFh60iNJUdccGuJSTJ3YGyg==",
"deprecated": "Turf packages are now namespaced: please use @turf/along instead",
"dependencies": {
"turf-bearing": "^3.0.12",
"turf-destination": "^3.0.12",
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-area": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-area/-/turf-area-3.0.12.tgz",
"integrity": "sha512-62Rc1UD8b1yv+AkfhjQ6LSvzxnuJi+jj6q4EkginZxPMJh8HACyQkeNy6VI9WucUULXzoPs8IqeqNwltpMpZVw==",
"deprecated": "Turf packages are now namespaced: please use @turf/area instead",
"dependencies": {
"geojson-area": "^0.2.1"
}
},
"node_modules/turf-bbox": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-bbox/-/turf-bbox-3.0.12.tgz",
"integrity": "sha512-ztNkTvRQ3ezArAQB2ZLLtJur9BiuWkwVv5u+aviC+3y0/mU5ITuoArOTUs4kLU+gNOjdpPwD0Ea/gqBR0lh2hw==",
"deprecated": "Turf packages are now namespaced: please use @turf/bbox instead",
"dependencies": {
"turf-meta": "^3.0.12"
}
},
"node_modules/turf-bbox-polygon": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-bbox-polygon/-/turf-bbox-polygon-3.0.12.tgz",
"integrity": "sha512-9wuTI5eFBBe0bXNK8c5wk/zHbSne28KmUQVX66QhTRvUc34v+NUIzn4bzi3rZXpJvLSLyPVltPnYfn+YsuCkAQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/bbox-polygon instead",
"dependencies": {
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-bearing": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-bearing/-/turf-bearing-3.0.12.tgz",
"integrity": "sha512-oWAFtgpQwR78xWZn53BzdwHhd4uT5OtuvwEgzFkZWSa6kp+UpdJ39lDAcvdR0H8dCszuGB4KguaGCZLG+iyUvg==",
"deprecated": "Turf packages are now namespaced: please use @turf/bearing instead",
"dependencies": {
"turf-invariant": "^3.0.12"
}
},
"node_modules/turf-bezier": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-bezier/-/turf-bezier-3.0.12.tgz",
"integrity": "sha512-8B4frrRtir9VJ6DTgGG5e81f7faPBnxTR2uJzWGd3bQkUaOBBX7rLQTBTBv1iFZVTU07QnWYgznm3c06FrtX2w==",
"deprecated": "Turf packages are now namespaced: please use @turf/bezier instead",
"dependencies": {
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-buffer": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-buffer/-/turf-buffer-3.0.12.tgz",
"integrity": "sha512-2wy66sAd0EXX13ql2KeA1bFOtecqDCWmaayLueEaM7HOxY6i/VvroDIHZrFzuwPAa/4ZwMZPaTPiFQ6kh7VSGw==",
"deprecated": "Turf packages are now namespaced: please use @turf/buffer instead",
"dependencies": {
"geojson-normalize": "0.0.0",
"jsts": "1.1.2",
"turf-combine": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-center": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-center/-/turf-center-3.0.12.tgz",
"integrity": "sha512-H2okrDla22kawwXsPvazV09mHr26/51sKONL52HTBeqiD2sK0WWRQkpdLfJdia0FT47wVk9mBiLXsKeIzDUi7Q==",
"deprecated": "Turf packages are now namespaced: please use @turf/center instead",
"dependencies": {
"turf-bbox": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-centroid": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-centroid/-/turf-centroid-3.0.12.tgz",
"integrity": "sha512-OuH8ZZjnxiNETZ8vZkb+dC6C+fit+LdRBolLGDQzBKDLXV2z1nQX2+w/qTNKV9XP5ZZLeEpJPmP0z1MDSz+YRA==",
"deprecated": "Turf packages are now namespaced: please use @turf/centroid instead",
"dependencies": {
"turf-helpers": "^3.0.12",
"turf-meta": "^3.0.12"
}
},
"node_modules/turf-circle": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-circle/-/turf-circle-3.0.12.tgz",
"integrity": "sha512-dOGg9yQXA21SpgI1qjU+Kgq0esvBU+ZTqoM5A2fWmoa0458YUoB85hnbxFtnmsFB3qXDsrW9RBuC4kyNCcn9KQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/circle instead",
"dependencies": {
"turf-destination": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-collect": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-collect/-/turf-collect-3.0.12.tgz",
"integrity": "sha512-V36Hz03VmMXn0BUAZNY+w1bpCX6Ks2JzfvHdiWHh5MccziroaKOfOeC1odJcXSDrhoR14/0oSC4tHDKJslbcPA==",
"deprecated": "Turf packages are now namespaced: please use @turf/collect instead",
"dependencies": {
"turf-inside": "^3.0.12"
}
},
"node_modules/turf-combine": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-combine/-/turf-combine-3.0.12.tgz",
"integrity": "sha512-j99I2ydmO4AzQQqzh+DBbxRr+a//DNbXJFcvBSy88G7vlKByPzr0ONVDNcvS/a1JRTl11C2vfrWxRtHwwmzzDg==",
"deprecated": "Turf packages are now namespaced: please use @turf/combine instead",
"dependencies": {
"turf-meta": "^3.0.12"
}
},
"node_modules/turf-concave": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-concave/-/turf-concave-3.0.12.tgz",
"integrity": "sha512-0KQfAk1f7TRUtuNbIDsRcbi4ONMhtrQg0Y/uY/QM5wVIKMj5T5ZuSApqEfs4cDXcfWu//hwe2bgHJzu1GlUn4w==",
"deprecated": "Turf packages are now namespaced: please use @turf/concave instead",
"dependencies": {
"turf-distance": "^3.0.12",
"turf-meta": "^3.0.12",
"turf-tin": "^3.0.12",
"turf-union": "^3.0.12"
}
},
"node_modules/turf-convex": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-convex/-/turf-convex-3.0.12.tgz",
"integrity": "sha512-xfwhxDQKygFsdbEK8503/N+B4JZZB6i58lE39DTMcf97xCCLyv7zxGlalsKU4j+qywV3nbO6yhKHScv4t6t5bg==",
"deprecated": "Turf packages are now namespaced: please use @turf/convex instead",
"dependencies": {
"convex-hull": "^1.0.3",
"turf-helpers": "^3.0.12",
"turf-meta": "^3.0.12"
}
},
"node_modules/turf-destination": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-destination/-/turf-destination-3.0.12.tgz",
"integrity": "sha512-nXKJfH5qv+eoNbw5ggLZNsUokgmaHnGD8Woauc8+7C36JRPSEm1Y3wcjAdJX0VadJJdL8AjNP65QOiWOLdVe1Q==",
"deprecated": "Turf packages are now namespaced: please use @turf/destination instead",
"dependencies": {
"turf-helpers": "^3.0.12",
"turf-invariant": "^3.0.12"
}
},
"node_modules/turf-difference": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-difference/-/turf-difference-3.0.12.tgz",
"integrity": "sha512-YRMUspic52qdwZZxuVp0LB2QG39q4Ps5ZTfZq+QIGsqdKK7FxvbJTxsb/a+n4xHe/K4zCcWo/AXUw1pOFLrNbA==",
"deprecated": "Turf packages are now namespaced: please use @turf/difference instead",
"dependencies": {
"jsts": "1.1.2",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-distance": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-distance/-/turf-distance-3.0.12.tgz",
"integrity": "sha512-dy2TguSbcCKJK7ZPwCZuG9+mK2DBKZ4g0wlmbKa7iGPFG18X1nPWJRzUkmNF3kdUe9K6+7SViTnbH6xQYCNpiw==",
"deprecated": "Turf packages are now namespaced: please use @turf/distance instead",
"dependencies": {
"turf-helpers": "^3.0.12",
"turf-invariant": "^3.0.12"
}
},
"node_modules/turf-envelope": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-envelope/-/turf-envelope-3.0.12.tgz",
"integrity": "sha512-2ahLojIP000MUhk7JC/ILASwiP074sFD5nc1HTYyHRhqkb8ukwFMHrR3haEmQdf7sJE3nexBELY9PMGyTQmBiQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/envelope instead",
"dependencies": {
"turf-bbox": "^3.0.12",
"turf-bbox-polygon": "^3.0.12"
}
},
"node_modules/turf-explode": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-explode/-/turf-explode-3.0.12.tgz",
"integrity": "sha512-cBUdQl2RBbu5YdL+mBNOcou8OlHLF6F9s6Rwz4EuOOGG0Urs0NE2CmascINB1+TgbxJozb29ZKNXezgwhwnrpg==",
"deprecated": "Turf packages are now namespaced: please use @turf/explode instead",
"dependencies": {
"turf-helpers": "^3.0.12",
"turf-meta": "^3.0.12"
}
},
"node_modules/turf-flip": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-flip/-/turf-flip-3.0.12.tgz",
"integrity": "sha512-SV/DI8I/dczRlqBMcAZyyQq1rlkrFZigFUKhtDIBqEJJvqKy70kDxbHrAkJdeAZ20caflkaTV2K40x4UTUpNgg==",
"deprecated": "Turf packages are now namespaced: please use @turf/flip instead",
"dependencies": {
"turf-meta": "^3.0.12"
}
},
"node_modules/turf-grid": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/turf-grid/-/turf-grid-1.0.1.tgz",
"integrity": "sha512-T2jHZ2HOgvkZZQjMmtl9lexeY6Xk1POF6wbYE7aYLjBO43MQqYNEFDf3JQ1gJymrYEaNy7yDSDYDyiYSsK6sQw==",
"dependencies": {
"turf-point": "^2.0.0"
}
},
"node_modules/turf-helpers": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-helpers/-/turf-helpers-3.0.12.tgz",
"integrity": "sha512-e0Oic1RVdTq3PAd5XlPgdtE3eZlN4kSd+Sr4iwayeeBRCMns60j9t6helyHxvbjLLy1uP28IiNfnm30BF+YThw==",
"deprecated": "Turf packages are now namespaced: please use @turf/helpers instead"
},
"node_modules/turf-hex-grid": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-hex-grid/-/turf-hex-grid-3.0.12.tgz",
"integrity": "sha512-3O580ujUHbAEi8vk38uyxvIQN3yjyeQEJtJppB2sYO7zcNORIcao68DlXQW29nSy1pUAYCbNkghDcumNL3A58A==",
"deprecated": "Turf packages are now namespaced: please use @turf/hex-grid instead",
"dependencies": {
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-inside": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-inside/-/turf-inside-3.0.12.tgz",
"integrity": "sha512-QjRDeSgDwf1hIEATsYgbYMB1GnnfwEqjapskOIojICeUBfKA+NMExjaBtMc2V1SY5jNqja6tVPH+ek0d+WO7Vg==",
"deprecated": "Turf packages are now namespaced: please use @turf/inside instead",
"dependencies": {
"turf-invariant": "^3.0.12"
}
},
"node_modules/turf-intersect": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-intersect/-/turf-intersect-3.0.12.tgz",
"integrity": "sha512-eXDksaYFakN6BFcfiyqgH1PDizfkfhPUU2Axd+I5zjVEHgECplK+z8LYA/RqvQ59aWQ2MfNRqxwW12T07c4gMw==",
"deprecated": "Turf packages are now namespaced: please use @turf/intersect instead",
"dependencies": {
"jsts": "1.1.2"
}
},
"node_modules/turf-invariant": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-invariant/-/turf-invariant-3.0.12.tgz",
"integrity": "sha512-6BAyAupdij6X8gTlpGHCG/zpqXXaTi7kjMAbQrepTpnPhIEQJtlGsiZCQu4EckCZS5Rzj5/b8Xw4gaxNpadihw==",
"deprecated": "Turf packages are now namespaced: please use @turf/invariant instead"
},
"node_modules/turf-isolines": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-isolines/-/turf-isolines-3.0.12.tgz",
"integrity": "sha512-b4TY6fKYWvToxiYjYTiURUlljls8jG1oKFaBulu5pz0q6rxmpxkCGOA8t9AXQkNXzHBrDE+vjXashMtYEN9Tsw==",
"deprecated": "Turf packages are now namespaced: please use @turf/isolines instead",
"dependencies": {
"turf-bbox": "^3.0.12",
"turf-grid": "1.0.1",
"turf-helpers": "^3.0.12",
"turf-inside": "^3.0.12",
"turf-planepoint": "^3.0.12",
"turf-square": "^3.0.12",
"turf-tin": "^3.0.12"
}
},
"node_modules/turf-kinks": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-kinks/-/turf-kinks-3.0.12.tgz",
"integrity": "sha512-gzLqDKPqq9rSWIPy6NDZMspDqk1wvP1sg+jaSqdKnW3mPTDn32IbHLxihjGzZoaW0YlIZmnrZlVBLqId6kCZ5w==",
"deprecated": "Turf packages are now namespaced: please use @turf/kinks instead",
"dependencies": {
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-line-distance": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-line-distance/-/turf-line-distance-3.0.12.tgz",
"integrity": "sha512-HzrxOEKdUgl1vdqIBLmaA99B0cg3+41kamQ650wn26BFUdMrrtkt+x2FT3Y7DifYTNljQ2fblbylqtMAAS0jag==",
"deprecated": "Turf packages are now namespaced: please use @turf/line-distance instead",
"dependencies": {
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-line-slice": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-line-slice/-/turf-line-slice-3.0.12.tgz",
"integrity": "sha512-1ecV3DCTRkv2azoaN/ZFcKxLBrw3l4SRSP/dVAk1Gwn83vBYJ9XtjmUiMLE2WbzTzuzuDxLb6fMvyGyteXBUeg==",
"deprecated": "Turf packages are now namespaced: please use @turf/line-slice instead",
"dependencies": {
"turf-bearing": "^3.0.12",
"turf-destination": "^3.0.12",
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12",
"turf-point-on-line": "^3.0.12"
}
},
"node_modules/turf-meta": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-meta/-/turf-meta-3.0.12.tgz",
"integrity": "sha512-B3YSKMpWGx1WYE8IM62pzOA0kqjrGjd/ZkSyrD5WXnrrpPfAUl0yBoZCJYL5IQcOwLqfd5xZt3HJnNH9cFiG7A==",
"deprecated": "Turf packages are now namespaced: please use @turf/meta instead"
},
"node_modules/turf-midpoint": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-midpoint/-/turf-midpoint-3.0.12.tgz",
"integrity": "sha512-Q1fZWQzc4SSF09hY+tJvgnDGBmVqTgBkIzOg0I0hy+ti0b9bSJ5P3+KY6wkVcC+zgDa8jzp8GZETijAV4WUAqw==",
"deprecated": "Turf packages are now namespaced: please use @turf/midpoint instead",
"dependencies": {
"turf-bearing": "^3.0.12",
"turf-destination": "^3.0.12",
"turf-distance": "^3.0.12",
"turf-invariant": "^3.0.12"
}
},
"node_modules/turf-nearest": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-nearest/-/turf-nearest-3.0.12.tgz",
"integrity": "sha512-4jyHgtpxVSM2LXh+lz4z47lketEXMKlcIpCJplHFpT1ZddIUoKvT6RJDhTUN8a+mohE8HAPgvcUA53vmjxxNEg==",
"deprecated": "Turf packages are now namespaced: please use @turf/nearest instead",
"dependencies": {
"turf-distance": "^3.0.12"
}
},
"node_modules/turf-planepoint": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-planepoint/-/turf-planepoint-3.0.12.tgz",
"integrity": "sha512-2okyqSAjC00QWEyr1vi04Vgug6OaYfBRtvtzHs16IxBN5xhAuwtCnUICb/1ugbOgCiBFV6TzIle/vA0EUVuRxQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/planepoint instead"
},
"node_modules/turf-point": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/turf-point/-/turf-point-2.0.1.tgz",
"integrity": "sha512-DkzYiE8Gc7G6XNW3FsBEwKAMz7jVZ/cw+PqLLkiSR1bde0vRZumF26UDQrspyQNih/oShQ0i4mSfa/dw3tqzsA==",
"dependencies": {
"minimist": "^1.1.0"
},
"bin": {
"turf-point": "bin/point.js"
}
},
"node_modules/turf-point-grid": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-point-grid/-/turf-point-grid-3.0.12.tgz",
"integrity": "sha512-5keUPz8j0VWilANaX3bP1evAm/u1u8v10HfUjtoenvWAC5dTGMUVCskgFqX9XitwmsPtaFiCuakM8s3HQzydSQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/point-grid instead",
"dependencies": {
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-point-on-line": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-point-on-line/-/turf-point-on-line-3.0.12.tgz",
"integrity": "sha512-0+gqSE3pK//ylzQZoc+tLpLUa1/14vvqbMvteFu2bl9NP6oudzZqTWoY9dBfyD9rLQtFOCf/IdkIk+IIwTn1cg==",
"deprecated": "Turf packages are now namespaced: please use @turf/point-on-line instead",
"dependencies": {
"turf-bearing": "^3.0.12",
"turf-destination": "^3.0.12",
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-point-on-surface": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-point-on-surface/-/turf-point-on-surface-3.0.12.tgz",
"integrity": "sha512-8/CXalHx672E2gR5FIZlazrx2Gj8HJW9JHb7UF/SH2CGDt/DUQKynz3/rn2fj4PyGtXGG7JoS/XuBwEdH99gAw==",
"deprecated": "Turf packages are now namespaced: please use @turf/point-on-surface instead",
"dependencies": {
"turf-center": "^3.0.12",
"turf-distance": "^3.0.12",
"turf-explode": "^3.0.12",
"turf-helpers": "^3.0.12",
"turf-inside": "^3.0.12"
}
},
"node_modules/turf-random": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-random/-/turf-random-3.0.12.tgz",
"integrity": "sha512-y0bRhHUfTQJBdEigLpS0+y8ReagylBlAgSKhCanMkw2WtQBj4y5MNOT+dgwX6iOCiWrzCsgPvDm/2hRxdYzmTQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/random instead",
"dependencies": {
"geojson-random": "^0.2.2"
}
},
"node_modules/turf-sample": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-sample/-/turf-sample-3.0.12.tgz",
"integrity": "sha512-aDwiE4kjSHt60hYdIhCFQp7xTauIPUVufbfJSVR2+Xrq6KdK8IPIkUAjDKNIo7iSetEsK9uHNHCFTTvW1emGMQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/sample instead",
"dependencies": {
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-simplify": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-simplify/-/turf-simplify-3.0.12.tgz",
"integrity": "sha512-g+kLtFhZaQD+OZwcl2KZ8RVWGQdsCJBT3/ZQiP6K8RYdD3d3QbruKIQdLgEZhK0lL0/EUCgzQz3/mhpxTA3RMw==",
"deprecated": "Turf packages are now namespaced: please use @turf/simplify instead",
"dependencies": {
"simplify-js": "^1.2.1"
}
},
"node_modules/turf-square": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-square/-/turf-square-3.0.12.tgz",
"integrity": "sha512-jBxMU+9ZO8WAEwFBC2AsBpwV/vmqdBFn73ONEYDb8n+LiOAMbwsDM+75pxg6kt5l3ugQJGbgfxVucVl3SUTJaQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/square instead",
"dependencies": {
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-square-grid": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-square-grid/-/turf-square-grid-3.0.12.tgz",
"integrity": "sha512-L8Bd3/YNYMqIYqWJDmGMJ7itSO7VMrbU1Vubt1f+GOHGnNcf789YXe1poNa6VdONw7spuRlgbQA94VMI5vzZUQ==",
"deprecated": "Turf packages are now namespaced: please use @turf/square-grid instead",
"dependencies": {
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-tag": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-tag/-/turf-tag-3.0.12.tgz",
"integrity": "sha512-tNC7FkAMdFjePrqZqjrxE5IXGdkrZcBjWbRmCSwy0DMKhLgPuXfWNACXt4FFC5dgQ3jc3NbDvfsML6gs1es1zA==",
"deprecated": "Turf packages are now namespaced: please use @turf/tag instead",
"dependencies": {
"turf-inside": "^3.0.12"
}
},
"node_modules/turf-tesselate": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-tesselate/-/turf-tesselate-3.0.12.tgz",
"integrity": "sha512-LWalgrdZGqXoqxkqlD/uV7xpIbuhNJviLw1ANdiST6F6laz8qoi8C2hfHIyzcQB7T/0LeWsuWzHtJ1MotYhpuA==",
"deprecated": "Turf packages are now namespaced: please use @turf/tesselate instead",
"dependencies": {
"earcut": "^2.0.0",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-tin": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-tin/-/turf-tin-3.0.12.tgz",
"integrity": "sha512-uqadTFrAE3pdVzAQN5CMGzZZtZMrirjRYL2iJRaHAXy9lDaVT+TlDe9gt+8SIwiPI1hVHq9NHHrEn6Cyn+xXxg==",
"deprecated": "Turf packages are now namespaced: please use @turf/tin instead",
"dependencies": {
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-triangle-grid": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-triangle-grid/-/turf-triangle-grid-3.0.12.tgz",
"integrity": "sha512-hL17vUzp85YoQeqRs4zIKEZloLGt8DWie39j2EK1S8I030L2A60aznZzagnxgo2JnReS25tDSRA4JdrorrECOw==",
"deprecated": "Turf packages are now namespaced: please use @turf/triangle-grid instead",
"dependencies": {
"turf-distance": "^3.0.12",
"turf-helpers": "^3.0.12"
}
},
"node_modules/turf-union": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-union/-/turf-union-3.0.12.tgz",
"integrity": "sha512-9R3/SccBa6Qpqn1CYUU1n7gv1E1f+pNiLZmf1tEqPq0QQQE8jY3B03YrsIBK1bP6RI8N6wx/2hfX7h9LgFQvmw==",
"deprecated": "Turf packages are now namespaced: please use @turf/union instead",
"dependencies": {
"jsts": "1.1.2"
}
},
"node_modules/turf-within": {
"version": "3.0.12",
"resolved": "https://registry.npmjs.org/turf-within/-/turf-within-3.0.12.tgz",
"integrity": "sha512-RgVeZ8LBZjcUSX8OvVW/nk2hJ1Vp+RPD+axOWaRf+zMbIiiBBAxmE8FxJSm6EINUuOR8zkvWIt+pyeltRYtG8A==",
"deprecated": "Turf packages are now namespaced: please use @turf/within instead",
"dependencies": {
"turf-helpers": "^3.0.12",
"turf-inside": "^3.0.12"
}
},
"node_modules/two-product": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz",
"integrity": "sha512-vOyrqmeYvzjToVM08iU52OFocWT6eB/I5LUWYnxeAPGXAhAxXYU/Yr/R2uY5/5n4bvJQL9AQulIuxpIsMoT8XQ=="
},
"node_modules/two-sum": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz",
"integrity": "sha512-phP48e8AawgsNUjEY2WvoIWqdie8PoiDZGxTDv70LDr01uX5wLEQbOgSP7Z/B6+SW5oLtbe8qaYX2fKJs3CGTw=="
},
"node_modules/union-find": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz",
"integrity": "sha512-wFA9bMD/40k7ZcpKVXfu6X1qD3ri5ryO8HUsuA1RnxPCQl66Mu6DgkxyR+XNnd+osD0aLENixcJVFj+uf+O4gw=="
},
"node_modules/wgs84": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/wgs84/-/wgs84-0.0.0.tgz",
"integrity": "sha512-ANHlY4Rb5kHw40D0NJ6moaVfOCMrp9Gpd1R/AIQYg2ko4/jzcJ+TVXYYF6kXJqQwITvEZP4yEthjM7U6rYlljQ=="
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"engines": {
"node": ">=10"
}
},
"node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
"string-width": "^4.2.3",
"y18n": "^5.0.5",
"yargs-parser": "^21.1.1"
},
"engines": {
"node": ">=12"
}
},
"node_modules/yargs-parser": {
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"engines": {
"node": ">=12"
}
}
}
}

36
package.json Normal file
View file

@ -0,0 +1,36 @@
{
"name": "cimengine-build-tools",
"version": "1.0.0",
"description": "Geojson data processing tools for CIMEngine",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"bin": {
"cimengine-build": "./GeoBuilder.js",
"cimengine-country-fix": "./CountryFixer.js",
"cimengine-init": "./ProjectInit.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/CIMEngine/cimengine-build-tools.git"
},
"keywords": [
"cimengine",
"geojson",
"geo",
"map",
"tools",
"processing"
],
"author": "artegoser",
"license": "MIT",
"bugs": {
"url": "https://github.com/CIMEngine/cimengine-build-tools/issues"
},
"homepage": "https://github.com/CIMEngine/cimengine-build-tools#readme",
"dependencies": {
"turf": "^3.0.14",
"yargs": "^17.7.2"
}
}

1
projectInit.js Normal file
View file

@ -0,0 +1 @@
//todo