diff --git a/index.js b/index.js index 98e5b77..ae45bd9 100644 --- a/index.js +++ b/index.js @@ -213,12 +213,12 @@ class UdgerParser { rua['ua_class'] = 'Unrecognized'; rua['ua_class_code'] = 'unrecognized'; - dotProp.set(ruaJson, 'ua.string', ua); + dotProp.setProperty(ruaJson, 'ua.string', ua); if (opts.full) { - dotProp.set(ruaJson, 'ua.class.name', 'Unrecognized'); - dotProp.set(ruaJson, 'ua.class.code', 'unrecognized'); + dotProp.setProperty(ruaJson, 'ua.class.name', 'Unrecognized'); + dotProp.setProperty(ruaJson, 'ua.class.code', 'unrecognized'); } else { - dotProp.set(ruaJson, 'ua.class', 'unrecognized'); + dotProp.setProperty(ruaJson, 'ua.class', 'unrecognized'); } //////////////////////////////////////////////// @@ -266,38 +266,38 @@ class UdgerParser { rua['crawler_respect_robotstxt'] = r['respect_robotstxt'] || ''; // JSON FORMAT - rua['ua'] && dotProp.set(ruaJson, 'ua.name', rua['ua']); + rua['ua'] && dotProp.setProperty(ruaJson, 'ua.name', rua['ua']); if (opts.full) { - dotProp.set(ruaJson, 'ua.class.name', 'Crawler'); - dotProp.set(ruaJson, 'ua.class.code', 'crawler'); - rua['ua_version'] && dotProp.set(ruaJson, 'ua.version.current', rua['ua_version']); - rua['ua_version_major'] && dotProp.set(ruaJson, 'ua.version.major', rua['ua_version_major']); - - rua['ua_family'] && dotProp.set(ruaJson, 'ua.family.name', rua['ua_family']); - rua['ua_family_code'] && dotProp.set(ruaJson, 'ua.family.code', rua['ua_family_code']); - rua['ua_family_homepage'] && dotProp.set(ruaJson, 'ua.family.homepage', rua['ua_family_homepage']); - rua['ua_family_vendor'] && dotProp.set(ruaJson, 'ua.family.vendor.name', rua['ua_family_vendor']); - rua['ua_family_vendor_code'] && dotProp.set(ruaJson, 'ua.family.vendor.code', rua['ua_family_vendor_code']); - rua['ua_family_homepage'] && dotProp.set(ruaJson, 'ua.family.vendor.homepage', rua['ua_family_homepage']); - rua['ua_family_icon'] && dotProp.set(ruaJson, 'ua.family.icon', rua['ua_family_icon']); - rua['ua_family'] && r['botid'] && dotProp.set(ruaJson, 'ua.family.infoUrl', rua['ua_family_info_url']); + dotProp.setProperty(ruaJson, 'ua.class.name', 'Crawler'); + dotProp.setProperty(ruaJson, 'ua.class.code', 'crawler'); + rua['ua_version'] && dotProp.setProperty(ruaJson, 'ua.version.current', rua['ua_version']); + rua['ua_version_major'] && dotProp.setProperty(ruaJson, 'ua.version.major', rua['ua_version_major']); + + rua['ua_family'] && dotProp.setProperty(ruaJson, 'ua.family.name', rua['ua_family']); + rua['ua_family_code'] && dotProp.setProperty(ruaJson, 'ua.family.code', rua['ua_family_code']); + rua['ua_family_homepage'] && dotProp.setProperty(ruaJson, 'ua.family.homepage', rua['ua_family_homepage']); + rua['ua_family_vendor'] && dotProp.setProperty(ruaJson, 'ua.family.vendor.name', rua['ua_family_vendor']); + rua['ua_family_vendor_code'] && dotProp.setProperty(ruaJson, 'ua.family.vendor.code', rua['ua_family_vendor_code']); + rua['ua_family_homepage'] && dotProp.setProperty(ruaJson, 'ua.family.vendor.homepage', rua['ua_family_homepage']); + rua['ua_family_icon'] && dotProp.setProperty(ruaJson, 'ua.family.icon', rua['ua_family_icon']); + rua['ua_family'] && r['botid'] && dotProp.setProperty(ruaJson, 'ua.family.infoUrl', rua['ua_family_info_url']); } else { - dotProp.set(ruaJson, 'ua.class', 'crawler'); - rua['ua_family_code'] && dotProp.set(ruaJson, 'ua.family.code', rua['ua_family_code']); - rua['ua_family_homepage'] && dotProp.set(ruaJson, 'ua.family.homepage', rua['ua_family_homepage']); - rua['ua_family_vendor_code'] && dotProp.set(ruaJson, 'ua.family.vendor', rua['ua_family_vendor_code']); + dotProp.setProperty(ruaJson, 'ua.class', 'crawler'); + rua['ua_family_code'] && dotProp.setProperty(ruaJson, 'ua.family.code', rua['ua_family_code']); + rua['ua_family_homepage'] && dotProp.setProperty(ruaJson, 'ua.family.homepage', rua['ua_family_homepage']); + rua['ua_family_vendor_code'] && dotProp.setProperty(ruaJson, 'ua.family.vendor', rua['ua_family_vendor_code']); } - rua['crawler_last_seen'] && dotProp.set(ruaJson, 'crawler.lastSeen', rua['crawler_last_seen']); + rua['crawler_last_seen'] && dotProp.setProperty(ruaJson, 'crawler.lastSeen', rua['crawler_last_seen']); if (opts.full) { - rua['crawler_category'] && dotProp.set(ruaJson, 'crawler.category.name', rua['crawler_category']); - rua['crawler_category_code'] && dotProp.set(ruaJson, 'crawler.category.code', rua['crawler_category_code']); - rua['crawler_respect_robotstxt'] && dotProp.set(ruaJson, 'crawler.respectRobotsTxt', rua['crawler_respect_robotstxt']); + rua['crawler_category'] && dotProp.setProperty(ruaJson, 'crawler.category.name', rua['crawler_category']); + rua['crawler_category_code'] && dotProp.setProperty(ruaJson, 'crawler.category.code', rua['crawler_category_code']); + rua['crawler_respect_robotstxt'] && dotProp.setProperty(ruaJson, 'crawler.respectRobotsTxt', rua['crawler_respect_robotstxt']); } else { - rua['crawler_category_code'] && dotProp.set(ruaJson, 'crawler.category', rua['crawler_category_code']); + rua['crawler_category_code'] && dotProp.setProperty(ruaJson, 'crawler.category', rua['crawler_category_code']); } } else { @@ -322,10 +322,10 @@ class UdgerParser { rua['ua_class_code'] = r['client_classification_code']; if (opts.full) { - dotProp.set(ruaJson, 'ua.class.name', rua['ua_class']); - dotProp.set(ruaJson, 'ua.class.code', rua['ua_class_code']); + dotProp.setProperty(ruaJson, 'ua.class.name', rua['ua_class']); + dotProp.setProperty(ruaJson, 'ua.class.code', rua['ua_class_code']); } else { - dotProp.set(ruaJson, 'ua.class', rua['ua_class_code']); + dotProp.setProperty(ruaJson, 'ua.class', rua['ua_class_code']); } if (e[1]) { rua['ua'] = r['name'] + ' ' + e[1]; @@ -338,20 +338,20 @@ class UdgerParser { } if (rua['ua']) { - dotProp.set(ruaJson, 'ua.name', rua['ua']); + dotProp.setProperty(ruaJson, 'ua.name', rua['ua']); } else { dotProp.delete(ruaJson, 'ua.name'); } if (opts.full) { if (rua['ua_version']) { - dotProp.set(ruaJson, 'ua.version.current', rua['ua_version']); + dotProp.setProperty(ruaJson, 'ua.version.current', rua['ua_version']); } else { dotProp.delete(ruaJson, 'ua.version.current'); } if (rua['ua_version_major']) { - dotProp.set(ruaJson, 'ua.version.current', rua['ua_version_major']); + dotProp.setProperty(ruaJson, 'ua.version.current', rua['ua_version_major']); } else { dotProp.delete(ruaJson, 'ua.version.current'); } @@ -370,22 +370,22 @@ class UdgerParser { rua['ua_engine'] = r['engine'] || ''; if (opts.full) { - rua['ua_uptodate_current_version'] && dotProp.set(ruaJson, 'ua.uptodateCurrentVersion', rua['ua_uptodate_current_version']); - rua['ua_family'] && dotProp.set(ruaJson, 'ua.family.name', rua['ua_family']); - rua['ua_family_code'] && dotProp.set(ruaJson, 'ua.family.code', rua['ua_family_code']); - rua['ua_family_homepage'] && dotProp.set(ruaJson, 'ua.family.homepage', rua['ua_family_homepage']); - rua['ua_family_vendor'] && dotProp.set(ruaJson, 'ua.family.vendor.name', rua['ua_family_vendor']); - rua['ua_family_vendor_code'] && dotProp.set(ruaJson, 'ua.family.vendor.code', rua['ua_family_vendor_code']); - rua['ua_family_vendor_homepage'] && dotProp.set(ruaJson, 'ua.family.vendor.homepage', rua['ua_family_vendor_homepage']); - rua['ua_family_icon'] && dotProp.set(ruaJson, 'ua.family.icon', rua['ua_family_icon']); - rua['ua_family_icon_big'] && dotProp.set(ruaJson, 'ua.family.iconBig', rua['ua_family_icon_big']); + rua['ua_uptodate_current_version'] && dotProp.setProperty(ruaJson, 'ua.uptodateCurrentVersion', rua['ua_uptodate_current_version']); + rua['ua_family'] && dotProp.setProperty(ruaJson, 'ua.family.name', rua['ua_family']); + rua['ua_family_code'] && dotProp.setProperty(ruaJson, 'ua.family.code', rua['ua_family_code']); + rua['ua_family_homepage'] && dotProp.setProperty(ruaJson, 'ua.family.homepage', rua['ua_family_homepage']); + rua['ua_family_vendor'] && dotProp.setProperty(ruaJson, 'ua.family.vendor.name', rua['ua_family_vendor']); + rua['ua_family_vendor_code'] && dotProp.setProperty(ruaJson, 'ua.family.vendor.code', rua['ua_family_vendor_code']); + rua['ua_family_vendor_homepage'] && dotProp.setProperty(ruaJson, 'ua.family.vendor.homepage', rua['ua_family_vendor_homepage']); + rua['ua_family_icon'] && dotProp.setProperty(ruaJson, 'ua.family.icon', rua['ua_family_icon']); + rua['ua_family_icon_big'] && dotProp.setProperty(ruaJson, 'ua.family.iconBig', rua['ua_family_icon_big']); if (r['name']) { - dotProp.set(ruaJson, 'ua.family.infoUrl', rua['ua_family_info_url']); + dotProp.setProperty(ruaJson, 'ua.family.infoUrl', rua['ua_family_info_url']); } } else { - rua['ua_family_code'] && dotProp.set(ruaJson, 'ua.family', rua['ua_family_code']); + rua['ua_family_code'] && dotProp.setProperty(ruaJson, 'ua.family', rua['ua_family_code']); } - rua['ua_engine'] && dotProp.set(ruaJson, 'ua.engine', rua['ua_engine']); + rua['ua_engine'] && dotProp.setProperty(ruaJson, 'ua.engine', rua['ua_engine']); break; } @@ -422,20 +422,20 @@ class UdgerParser { rua['os_family_vendor_homepage'] = r['vendor_homepage'] || ''; if (opts.full) { - rua['os'] && dotProp.set(ruaJson, 'os.name', rua['os']); - rua['os_code'] && dotProp.set(ruaJson, 'os.code', rua['os_code']); - rua['os_homepage'] && dotProp.set(ruaJson, 'os.homepage', rua['os_homepage']); - rua['os_icon'] && dotProp.set(ruaJson, 'os.icon', rua['os_icon']); - rua['os_icon_big'] && dotProp.set(ruaJson, 'os.iconBig', rua['os_icon_big']); - rua['os_info_url'] && dotProp.set(ruaJson, 'os.infoUrl', rua['os_info_url']); - rua['os_family'] && dotProp.set(ruaJson, 'os.family.name', rua['os_family']); - rua['os_family_code'] && dotProp.set(ruaJson, 'os.family.code', rua['os_family_code']); - rua['os_family_vendor'] && dotProp.set(ruaJson, 'os.family.vendor.name', rua['os_family_vendor']); - rua['os_family_vendor_code'] && dotProp.set(ruaJson, 'os.family.vendor.code', rua['os_family_vendor_code']); - rua['os_family_vendor_homepage'] && dotProp.set(ruaJson, 'os.family.vendor.homepage', rua['os_family_vendor_homepage']); + rua['os'] && dotProp.setProperty(ruaJson, 'os.name', rua['os']); + rua['os_code'] && dotProp.setProperty(ruaJson, 'os.code', rua['os_code']); + rua['os_homepage'] && dotProp.setProperty(ruaJson, 'os.homepage', rua['os_homepage']); + rua['os_icon'] && dotProp.setProperty(ruaJson, 'os.icon', rua['os_icon']); + rua['os_icon_big'] && dotProp.setProperty(ruaJson, 'os.iconBig', rua['os_icon_big']); + rua['os_info_url'] && dotProp.setProperty(ruaJson, 'os.infoUrl', rua['os_info_url']); + rua['os_family'] && dotProp.setProperty(ruaJson, 'os.family.name', rua['os_family']); + rua['os_family_code'] && dotProp.setProperty(ruaJson, 'os.family.code', rua['os_family_code']); + rua['os_family_vendor'] && dotProp.setProperty(ruaJson, 'os.family.vendor.name', rua['os_family_vendor']); + rua['os_family_vendor_code'] && dotProp.setProperty(ruaJson, 'os.family.vendor.code', rua['os_family_vendor_code']); + rua['os_family_vendor_homepage'] && dotProp.setProperty(ruaJson, 'os.family.vendor.homepage', rua['os_family_vendor_homepage']); } else { - rua['os_code'] && dotProp.set(ruaJson, 'os.code', rua['os_code']); - rua['os_family_code'] && dotProp.set(ruaJson, 'os.family', rua['os_family_code']); + rua['os_code'] && dotProp.setProperty(ruaJson, 'os.code', rua['os_code']); + rua['os_family_code'] && dotProp.setProperty(ruaJson, 'os.family', rua['os_family_code']); } break; } @@ -473,17 +473,17 @@ class UdgerParser { rua['os_family_vendor_code'] = r['vendor_code'] || ''; rua['os_family_vendor_homepage'] = r['vendor_homepage'] || ''; - rua['os'] && dotProp.set(ruaJson, 'os.name', rua['os']); - rua['os_code'] && dotProp.set(ruaJson, 'os.code', rua['os_code']); - rua['os_homepage'] && dotProp.set(ruaJson, 'os.homepage', rua['os_homepage']); - rua['os_icon'] && dotProp.set(ruaJson, 'os.icon', rua['os_icon']); - rua['os_icon_big'] && dotProp.set(ruaJson, 'os.iconBig', rua['os_icon_big']); - rua['os_info_url'] && dotProp.set(ruaJson, 'os.infoUrl', rua['os_info_url']); - rua['os_family'] && dotProp.set(ruaJson, 'os.family.name', rua['os_family']); - rua['os_family_code'] && dotProp.set(ruaJson, 'os.family.code', rua['os_family_code']); - rua['os_family_vendor'] && dotProp.set(ruaJson, 'os.family.vendor.name', rua['os_family_vendor']); - rua['os_family_vendor_code'] && dotProp.set(ruaJson, 'os.family.vendor.code', rua['os_family_vendor_code']); - rua['os_family_vendor_homepage'] && dotProp.set(ruaJson, 'os.family.vendor.homepage', rua['os_family_vendor_homepage']); + rua['os'] && dotProp.setProperty(ruaJson, 'os.name', rua['os']); + rua['os_code'] && dotProp.setProperty(ruaJson, 'os.code', rua['os_code']); + rua['os_homepage'] && dotProp.setProperty(ruaJson, 'os.homepage', rua['os_homepage']); + rua['os_icon'] && dotProp.setProperty(ruaJson, 'os.icon', rua['os_icon']); + rua['os_icon_big'] && dotProp.setProperty(ruaJson, 'os.iconBig', rua['os_icon_big']); + rua['os_info_url'] && dotProp.setProperty(ruaJson, 'os.infoUrl', rua['os_info_url']); + rua['os_family'] && dotProp.setProperty(ruaJson, 'os.family.name', rua['os_family']); + rua['os_family_code'] && dotProp.setProperty(ruaJson, 'os.family.code', rua['os_family_code']); + rua['os_family_vendor'] && dotProp.setProperty(ruaJson, 'os.family.vendor.name', rua['os_family_vendor']); + rua['os_family_vendor_code'] && dotProp.setProperty(ruaJson, 'os.family.vendor.code', rua['os_family_vendor_code']); + rua['os_family_vendor_homepage'] && dotProp.setProperty(ruaJson, 'os.family.vendor.homepage', rua['os_family_vendor_homepage']); } } @@ -513,13 +513,13 @@ class UdgerParser { rua['device_class_info_url'] = 'https://udger.com/resources/ua-list/device-detail?device=' + r['name']; if (opts.full) { - rua['device_class'] && dotProp.set(ruaJson, 'device.class.name', rua['device_class']); - rua['device_class_code'] && dotProp.set(ruaJson, 'device.class.code', rua['device_class_code']); - rua['device_class_icon'] && dotProp.set(ruaJson, 'device.class.icon', rua['device_class_icon']); - rua['device_class_icon_big'] && dotProp.set(ruaJson, 'device.class.iconBig', rua['device_class_icon_big']); - rua['device_class_info_url'] && dotProp.set(ruaJson, 'device.class.infoUrl', rua['device_class_info_url']); + rua['device_class'] && dotProp.setProperty(ruaJson, 'device.class.name', rua['device_class']); + rua['device_class_code'] && dotProp.setProperty(ruaJson, 'device.class.code', rua['device_class_code']); + rua['device_class_icon'] && dotProp.setProperty(ruaJson, 'device.class.icon', rua['device_class_icon']); + rua['device_class_icon_big'] && dotProp.setProperty(ruaJson, 'device.class.iconBig', rua['device_class_icon_big']); + rua['device_class_info_url'] && dotProp.setProperty(ruaJson, 'device.class.infoUrl', rua['device_class_info_url']); } else { - rua['device_class_code'] && dotProp.set(ruaJson, 'device.class', rua['device_class_code']); + rua['device_class_code'] && dotProp.setProperty(ruaJson, 'device.class', rua['device_class_code']); } break; @@ -548,13 +548,13 @@ class UdgerParser { rua['device_class_info_url'] = 'https://udger.com/resources/ua-list/device-detail?device=' + (r['name'] || ''); if (opts.full) { - rua['device_class'] && dotProp.set(ruaJson, 'device.class.name', rua['device_class']); - rua['device_class_code'] && dotProp.set(ruaJson, 'device.class.code', rua['device_class_code']); - rua['device_class_icon'] && dotProp.set(ruaJson, 'device.class.icon', rua['device_class_icon']); - rua['device_class_icon_big'] && dotProp.set(ruaJson, 'device.class.iconBig', rua['device_class_icon_big']); - rua['device_class_info_url'] && dotProp.set(ruaJson, 'device.class.infoUrl', rua['device_class_info_url']); + rua['device_class'] && dotProp.setProperty(ruaJson, 'device.class.name', rua['device_class']); + rua['device_class_code'] && dotProp.setProperty(ruaJson, 'device.class.code', rua['device_class_code']); + rua['device_class_icon'] && dotProp.setProperty(ruaJson, 'device.class.icon', rua['device_class_icon']); + rua['device_class_icon_big'] && dotProp.setProperty(ruaJson, 'device.class.iconBig', rua['device_class_icon_big']); + rua['device_class_info_url'] && dotProp.setProperty(ruaJson, 'device.class.infoUrl', rua['device_class_info_url']); } else { - rua['device_class_code'] && dotProp.set(ruaJson, 'device.class', rua['device_class_code']); + rua['device_class_code'] && dotProp.setProperty(ruaJson, 'device.class', rua['device_class_code']); } } } @@ -611,13 +611,13 @@ class UdgerParser { rua['device_brand_icon_big'] = rC['icon_big'] || ''; rua['device_brand_info_url'] = 'https://udger.com/resources/ua-list/devices-brand-detail?brand=' + (rC['brand_code'] || ''); - rua['device_marketname'] && dotProp.set(ruaJson, 'device.marketName', rua['device_marketname']); - rua['device_brand'] && dotProp.set(ruaJson, 'device.brand.name', rua['device_brand']); - rua['device_brand_code'] && dotProp.set(ruaJson, 'device.brand.code', rua['device_brand_code']); - rua['device_brand_homepage'] && dotProp.set(ruaJson, 'device.brand.homepage', rua['device_brand_homepage']); - rua['device_brand_icon'] && dotProp.set(ruaJson, 'device.brand.icon', rua['device_brand_icon']); - rua['device_brand_icon_big'] && dotProp.set(ruaJson, 'device.brand.iconBig', rua['device_brand_icon_big']); - rua['device_brand_info_url'] && dotProp.set(ruaJson, 'device.brand.infoUrl', rua['device_brand_info_url']); + rua['device_marketname'] && dotProp.setProperty(ruaJson, 'device.marketName', rua['device_marketname']); + rua['device_brand'] && dotProp.setProperty(ruaJson, 'device.brand.name', rua['device_brand']); + rua['device_brand_code'] && dotProp.setProperty(ruaJson, 'device.brand.code', rua['device_brand_code']); + rua['device_brand_homepage'] && dotProp.setProperty(ruaJson, 'device.brand.homepage', rua['device_brand_homepage']); + rua['device_brand_icon'] && dotProp.setProperty(ruaJson, 'device.brand.icon', rua['device_brand_icon']); + rua['device_brand_icon_big'] && dotProp.setProperty(ruaJson, 'device.brand.iconBig', rua['device_brand_icon_big']); + rua['device_brand_info_url'] && dotProp.setProperty(ruaJson, 'device.brand.infoUrl', rua['device_brand_info_url']); } } @@ -653,7 +653,7 @@ class UdgerParser { debug('parse IP address: START (IP: ' + ip + ')'); rip['ip'] = ip; - dotProp.set(ripJson, 'ip', ip); + dotProp.setProperty(ripJson, 'ip', ip); const ipver = utils.getIpVersion(ip); @@ -666,7 +666,7 @@ class UdgerParser { rip['ip_ver'] = ipver; if (opts.full) { - dotProp.set(ripJson, 'version', ipver); + dotProp.setProperty(ripJson, 'version', ipver); } q = this.db.prepare( @@ -714,40 +714,40 @@ class UdgerParser { // JSON FORMAT if (opts.full) { - rip['ip_classification'] && dotProp.set(ripJson, 'classification.name', rip['ip_classification']); - rip['ip_classification_code'] && dotProp.set(ripJson, 'classification.code', rip['ip_classification_code']); + rip['ip_classification'] && dotProp.setProperty(ripJson, 'classification.name', rip['ip_classification']); + rip['ip_classification_code'] && dotProp.setProperty(ripJson, 'classification.code', rip['ip_classification_code']); } else { - rip['ip_classification_code'] && dotProp.set(ripJson, 'classification', rip['ip_classification_code']); + rip['ip_classification_code'] && dotProp.setProperty(ripJson, 'classification', rip['ip_classification_code']); } - rip['ip_last_seen'] && dotProp.set(ripJson, 'lastSeen', rip['ip_last_seen']); - rip['ip_hostname'] && dotProp.set(ripJson, 'hostname', rip['ip_hostname']); - rip['ip_country'] && dotProp.set(ripJson, 'geo.country.name', rip['ip_country']); - rip['ip_country_code'] && dotProp.set(ripJson, 'geo.country.code', rip['ip_country_code']); - rip['ip_city'] && dotProp.set(ripJson, 'geo.city', rip['ip_city']); + rip['ip_last_seen'] && dotProp.setProperty(ripJson, 'lastSeen', rip['ip_last_seen']); + rip['ip_hostname'] && dotProp.setProperty(ripJson, 'hostname', rip['ip_hostname']); + rip['ip_country'] && dotProp.setProperty(ripJson, 'geo.country.name', rip['ip_country']); + rip['ip_country_code'] && dotProp.setProperty(ripJson, 'geo.country.code', rip['ip_country_code']); + rip['ip_city'] && dotProp.setProperty(ripJson, 'geo.city', rip['ip_city']); - rip['crawler_name'] && dotProp.set(ripJson, 'crawler.name', rip['crawler_name']); + rip['crawler_name'] && dotProp.setProperty(ripJson, 'crawler.name', rip['crawler_name']); if (opts.full) { - rip['crawler_ver'] && dotProp.set(ripJson, 'crawler.version.current', rip['crawler_ver']); - rip['crawler_ver_major'] && dotProp.set(ripJson, 'crawler.version.major', rip['crawler_ver_major']); - rip['crawler_family'] && dotProp.set(ripJson, 'crawler.family.name', rip['crawler_family']); - rip['crawler_family_code'] && dotProp.set(ripJson, 'crawler.family.code', rip['crawler_family_code']); - rip['crawler_family_homepage'] && dotProp.set(ripJson, 'crawler.family.homepage', rip['crawler_family_homepage']); - rip['crawler_family_vendor'] && dotProp.set(ripJson, 'crawler.family.vendor.name', rip['crawler_family_vendor']); - rip['crawler_family_vendor_code'] && dotProp.set(ripJson, 'crawler.family.vendor.code', rip['crawler_family_vendor_code']); - rip['crawler_family_vendor_homepage'] && dotProp.set(ripJson, 'crawler.family.vendor.homepage', rip['crawler_family_vendor_homepage']); - rip['crawler_family_icon'] && dotProp.set(ripJson, 'crawler.family.icon', rip['crawler_family_icon']); + rip['crawler_ver'] && dotProp.setProperty(ripJson, 'crawler.version.current', rip['crawler_ver']); + rip['crawler_ver_major'] && dotProp.setProperty(ripJson, 'crawler.version.major', rip['crawler_ver_major']); + rip['crawler_family'] && dotProp.setProperty(ripJson, 'crawler.family.name', rip['crawler_family']); + rip['crawler_family_code'] && dotProp.setProperty(ripJson, 'crawler.family.code', rip['crawler_family_code']); + rip['crawler_family_homepage'] && dotProp.setProperty(ripJson, 'crawler.family.homepage', rip['crawler_family_homepage']); + rip['crawler_family_vendor'] && dotProp.setProperty(ripJson, 'crawler.family.vendor.name', rip['crawler_family_vendor']); + rip['crawler_family_vendor_code'] && dotProp.setProperty(ripJson, 'crawler.family.vendor.code', rip['crawler_family_vendor_code']); + rip['crawler_family_vendor_homepage'] && dotProp.setProperty(ripJson, 'crawler.family.vendor.homepage', rip['crawler_family_vendor_homepage']); + rip['crawler_family_icon'] && dotProp.setProperty(ripJson, 'crawler.family.icon', rip['crawler_family_icon']); if (r['ip_classification_code'] === 'crawler') { - rip['crawler_family_info_url'] && dotProp.set(ripJson, 'crawler.family.infoUrl', rip['crawler_family_info_url']); + rip['crawler_family_info_url'] && dotProp.setProperty(ripJson, 'crawler.family.infoUrl', rip['crawler_family_info_url']); } - rip['crawler_last_seen'] && dotProp.set(ripJson, 'crawler.lastSeen', rip['crawler_last_seen']); - rip['crawler_category'] && dotProp.set(ripJson, 'crawler.category.name', rip['crawler_category']); - rip['crawler_category_code'] && dotProp.set(ripJson, 'crawler.category.code', rip['crawler_category_code']); - rip['crawler_respect_robotstxt'] && dotProp.set(ripJson, 'crawler.respectRobotsTxt', rip['crawler_category_code']); + rip['crawler_last_seen'] && dotProp.setProperty(ripJson, 'crawler.lastSeen', rip['crawler_last_seen']); + rip['crawler_category'] && dotProp.setProperty(ripJson, 'crawler.category.name', rip['crawler_category']); + rip['crawler_category_code'] && dotProp.setProperty(ripJson, 'crawler.category.code', rip['crawler_category_code']); + rip['crawler_respect_robotstxt'] && dotProp.setProperty(ripJson, 'crawler.respectRobotsTxt', rip['crawler_category_code']); } else { - rip['crawler_family_code'] && dotProp.set(ripJson, 'crawler.family', rip['crawler_family_code']); - rip['crawler_category_code'] && dotProp.set(ripJson, 'crawler.category', rip['crawler_category_code']); - rip['crawler_last_seen'] && dotProp.set(ripJson, 'crawler.lastSeen', rip['crawler_last_seen']); + rip['crawler_family_code'] && dotProp.setProperty(ripJson, 'crawler.family', rip['crawler_family_code']); + rip['crawler_category_code'] && dotProp.setProperty(ripJson, 'crawler.category', rip['crawler_category_code']); + rip['crawler_last_seen'] && dotProp.setProperty(ripJson, 'crawler.lastSeen', rip['crawler_last_seen']); } } else { @@ -756,10 +756,10 @@ class UdgerParser { rip['ip_classification_code'] = 'unrecognized'; if (opts.full) { - dotProp.set(ripJson, 'classification.name', rip['ip_classification']); - dotProp.set(ripJson, 'classification.code', rip['ip_classification_code']); + dotProp.setProperty(ripJson, 'classification.name', rip['ip_classification']); + dotProp.setProperty(ripJson, 'classification.code', rip['ip_classification_code']); } else { - dotProp.set(ripJson, 'classification', rip['ip_classification_code']); + dotProp.setProperty(ripJson, 'classification', rip['ip_classification_code']); } } @@ -783,11 +783,11 @@ class UdgerParser { rip['datacenter_homepage'] = r['homepage'] || ''; if (opts.full) { - rip['datacenter_name'] && dotProp.set(ripJson, 'datacenter.name', rip['datacenter_name']); - rip['datacenter_name_code'] && dotProp.set(ripJson, 'datacenter.code', rip['datacenter_name_code']); - rip['datacenter_homepage'] && dotProp.set(ripJson, 'datacenter.homepage', rip['datacenter_homepage']); + rip['datacenter_name'] && dotProp.setProperty(ripJson, 'datacenter.name', rip['datacenter_name']); + rip['datacenter_name_code'] && dotProp.setProperty(ripJson, 'datacenter.code', rip['datacenter_name_code']); + rip['datacenter_homepage'] && dotProp.setProperty(ripJson, 'datacenter.homepage', rip['datacenter_homepage']); } else { - rip['datacenter_name_code'] && dotProp.set(ripJson, 'datacenter', rip['datacenter_name_code']); + rip['datacenter_name_code'] && dotProp.setProperty(ripJson, 'datacenter', rip['datacenter_name_code']); } } @@ -825,11 +825,11 @@ class UdgerParser { rip['datacenter_homepage'] = r['homepage'] || ''; if (opts.full) { - rip['datacenter_name'] && dotProp.set(ripJson, 'datacenter.name', rip['datacenter_name']); - rip['datacenter_name_code'] && dotProp.set(ripJson, 'datacenter.code', rip['datacenter_name_code']); - rip['datacenter_homepage'] && dotProp.set(ripJson, 'datacenter.homepage', rip['datacenter_homepage']); + rip['datacenter_name'] && dotProp.setProperty(ripJson, 'datacenter.name', rip['datacenter_name']); + rip['datacenter_name_code'] && dotProp.setProperty(ripJson, 'datacenter.code', rip['datacenter_name_code']); + rip['datacenter_homepage'] && dotProp.setProperty(ripJson, 'datacenter.homepage', rip['datacenter_homepage']); } else { - rip['datacenter_name_code'] && dotProp.set(ripJson, 'datacenter', rip['datacenter_name_code']); + rip['datacenter_name_code'] && dotProp.setProperty(ripJson, 'datacenter', rip['datacenter_name_code']); } } diff --git a/package-lock.json b/package-lock.json index 6734b88..330d28e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,10 @@ "version": "1.5.0", "license": "MIT", "dependencies": { - "better-sqlite3": "8.0.1", - "dot-prop": "5.3.0", + "better-sqlite3": "12.2.0", + "dot-prop": "9.0.0", "fs-extra": "11.1.0", - "ip-address": "8.1.0", + "ip-address": "10.0.1", "node-gyp": "9.3.1", "randexp": "0.5.3" }, @@ -732,13 +732,17 @@ ] }, "node_modules/better-sqlite3": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.0.1.tgz", - "integrity": "sha512-JhTZjpyapA1icCEjIZB4TSSgkGdFgpWZA2Wszg7Cf4JwJwKQmbvuNnJBeR+EYG/Z29OXvR4G//Rbg31BW/Z7Yg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.2.0.tgz", + "integrity": "sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "bindings": "^1.5.0", - "prebuild-install": "^7.1.0" + "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x" } }, "node_modules/binary-extensions": { @@ -1195,14 +1199,30 @@ } }, "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", + "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "type-fest": "^4.18.2" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/drange": { @@ -1770,12 +1790,10 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "node_modules/ip-address": { - "version": "8.1.0", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, "engines": { "node": ">= 12" } @@ -1847,14 +1865,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "dev": true, @@ -2095,10 +2105,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "license": "MIT" - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -3174,10 +3180,6 @@ "node": ">=8" } }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, "node_modules/ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", @@ -6267,12 +6269,12 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "better-sqlite3": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.0.1.tgz", - "integrity": "sha512-JhTZjpyapA1icCEjIZB4TSSgkGdFgpWZA2Wszg7Cf4JwJwKQmbvuNnJBeR+EYG/Z29OXvR4G//Rbg31BW/Z7Yg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.2.0.tgz", + "integrity": "sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==", "requires": { "bindings": "^1.5.0", - "prebuild-install": "^7.1.0" + "prebuild-install": "^7.1.1" } }, "binary-extensions": { @@ -6596,11 +6598,18 @@ "dev": true }, "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", "requires": { - "is-obj": "^2.0.0" + "type-fest": "^4.18.2" + }, + "dependencies": { + "type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" + } } }, "drange": { @@ -7010,11 +7019,9 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "ip-address": { - "version": "8.1.0", - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - } + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==" }, "is-binary-path": { "version": "2.1.0", @@ -7062,11 +7069,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, "is-plain-object": { "version": "2.0.4", "dev": true, @@ -7250,9 +7252,6 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "1.1.0" - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -7999,9 +7998,6 @@ "which": "^2.0.1" } }, - "sprintf-js": { - "version": "1.1.2" - }, "ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", diff --git a/package.json b/package.json index 63ed75c..2b6e65e 100644 --- a/package.json +++ b/package.json @@ -40,11 +40,10 @@ "tap": "16.3.3" }, "dependencies": { - "better-sqlite3": "8.0.1", - "dot-prop": "5.3.0", - "fs-extra": "11.1.0", - "ip-address": "8.1.0", - "node-gyp": "9.3.1", + "better-sqlite3": "12.2.0", + "dot-prop": "9.0.0", + "fs-extra": "11.3.1", + "ip-address": "10.0.1", "randexp": "0.5.3" } }