Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function validationOutdatedTags(context) {
var type = 'outdated_tags';
// initialize name-suggestion-index matcher
var nsiMatcher = matcher();
nsiMatcher.buildMatchIndex(brands.brands);
var nsiKeys = ['amenity', 'shop', 'tourism', 'leisure', 'office'];
var allWD = {};
var allWP = {};
Object.keys(brands.brands).forEach(function(kvnd) {
var brand = brands.brands[kvnd];
var wd = brand.tags['brand:wikidata'];
var wp = brand.tags['brand:wikipedia'];
if (wd) { allWD[wd] = kvnd; }
if (wp) { allWP[wp] = kvnd; }
});
function oldTagIssues(entity, graph) {
var oldTags = Object.assign({}, entity.tags); // shallow copy
var preset = context.presets().match(entity, graph);
// try key/value|name match against name-suggestion-index
if (newTags.name) {
for (var i = 0; i < nsiKeys.length; i++) {
var k = nsiKeys[i];
if (!newTags[k]) continue;
var center = entity.extent(graph).center();
var countryCode = countryCoder.iso1A2Code(center);
var match = nsiMatcher.matchKVN(k, newTags[k], newTags.name, countryCode && countryCode.toLowerCase());
if (!match) continue;
// for now skip ambiguous matches (like Target~(USA) vs Target~(Australia))
if (match.d) continue;
var brand = brands.brands[match.kvnd];
if (brand && brand.tags['brand:wikidata'] &&
brand.tags['brand:wikidata'] !== entity.tags['not:brand:wikidata']) {
subtype = 'noncanonical_brand';
var keepTags = ['takeaway'].reduce(function(acc, k) {
if (newTags[k]) {
acc[k] = newTags[k];
}
return acc;
}, {});
nsiKeys.forEach(function(k) { delete newTags[k]; });
Object.assign(newTags, brand.tags, keepTags);
break;
}
}