{"_id":"udger-nodejs","_rev":"20-9f5b4750024dd2b844161cd06f4ef648","name":"udger-nodejs","dist-tags":{"latest":"1.5.1"},"versions":{"0.9.0":{"name":"udger-nodejs","version":"0.9.0","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@0.9.0","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"6bf1b4454bd8b90414205a29e133c1916c481112","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-0.9.0.tgz","integrity":"sha512-ZQTJMt01AfBa4/Mdr9J8BjsDe+iHeQZI4/EjSEzw2kvlDsUM/nVt5LJ94oBsIUYUkvk67iaLtzC5A1xwUmwoqA==","signatures":[{"sig":"MEUCIETf2Uf7RwWCJFyZL3cFLHGC6uDnQa3oQrU6lew6xTSkAiEApnp6K41/ktGwocTiHadc+NLF3r3892QC9bgiRfOQAEI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","email":"info@udger.com","gitHead":"003951310b67faff59640fdffd930b2533d723d5","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"5.5.1","description":"NodeJS agent string parser based on Udger https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.9.1","dependencies":{"fs-extra":"4.0.2","node-gyp":"3.6.2","ip-address":"5.8.8","better-sqlite3":"4.0.3"},"devDependencies":{"tap":"11.0.0","connect":"3.6.5","merge-deep":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs-0.9.0.tgz_1511867826002_0.2906158594414592","host":"s3://npm-registry-packages"}},"0.9.1":{"name":"udger-nodejs","version":"0.9.1","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@0.9.1","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"bce5df57935d18f37d2ff6e80f99717b70023717","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-0.9.1.tgz","integrity":"sha512-sOMDEhv0lsBGbx3F9PeZ7WvgS0qV+Ubz7Jhg+pzmYppuRz3Xr9ds/G6aVDBQkHl/gZOc6pTwjZIEKv1WZsE4pQ==","signatures":[{"sig":"MEUCID1RxZL1TvSDY0cbdmOXxjz92z2vQHKAablXkWCcBd36AiEAhuaauL7hzCqPYbZzUE6S/3+kYBuGSFv71k4cD74Y0fc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","email":"info@udger.com","gitHead":"c8a249820cc1bb9ee014e86abf46e81e46628db5","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"5.5.1","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.9.1","dependencies":{"fs-extra":"4.0.2","node-gyp":"3.6.2","ip-address":"5.8.8","better-sqlite3":"4.0.3"},"devDependencies":{"tap":"11.0.0","connect":"3.6.5","merge-deep":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs-0.9.1.tgz_1511901485675_0.5116187133826315","host":"s3://npm-registry-packages"}},"0.9.2":{"name":"udger-nodejs","version":"0.9.2","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@0.9.2","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"3283c853dc308ebbc0a5671ef1275cccbd322447","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-0.9.2.tgz","integrity":"sha512-nu6+aJ+tjEqEyqC3eYV+hmYJYbf4SJDdwJ+Wq8nGg/UbStqupPXKJuWjXSYcIQHr57LoN7vEDgJLy0p5IEaR+w==","signatures":[{"sig":"MEYCIQCf7T2aAb+AZfrqT+GakmHnHuFa+zfoRVdHX+XYXCfh8AIhAIH7ce+y3nRfEKPs8A5hez1d9ubeoHV5oZ2fj6bXHZIE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","email":"info@udger.com","gitHead":"7ae22196fdc4f96122977c63cf57e8eb8315d20c","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"5.5.1","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.9.1","dependencies":{"fs-extra":"4.0.2","node-gyp":"3.6.2","ip-address":"5.8.8","better-sqlite3":"4.0.3"},"devDependencies":{"tap":"11.0.0","connect":"3.6.5","merge-deep":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs-0.9.2.tgz_1511931258421_0.5132104428485036","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"udger-nodejs","version":"1.0.0","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.0.0","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"f6dacc202225cafa89b45fa97cb21df4ba79fe8d","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.0.0.tgz","integrity":"sha512-uRfwQYwx8vtuRPsDTrdRUdrM7m8zg3vYiwPb5RzlYnc3mN89xhII49lbtjCeiacQu1SdSAwpGcnGxIN4rKXuag==","signatures":[{"sig":"MEUCIC3Bk/2gnzoyT2I6NE/COmTe7m5zPcjXd0XDRS/GHSWlAiEArKC4hatkjn0mwmU00yk0Nf3mNWyAgD3BMpyR6FNVFws=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","email":"info@udger.com","gitHead":"a71ae63888249ccb2dbe20225a8534da21abbaee","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"5.5.1","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.9.1","dependencies":{"dot-prop":"4.2.0","fs-extra":"4.0.2","node-gyp":"3.6.2","ip-address":"5.8.8","better-sqlite3":"4.0.3"},"devDependencies":{"tap":"11.0.0","connect":"3.6.5","merge-deep":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs-1.0.0.tgz_1512125431810_0.37914611934684217","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"udger-nodejs","version":"1.0.1","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.0.1","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"e07fa9a507def2bbb2f6a06d14ed85e4dcd3db55","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.0.1.tgz","integrity":"sha512-KOXeU4vlU/tBxdFu4In2AwfPxfpSnEm6qyCvAfTsom3cm8DJMzyejWkwteZrNq8XJe3Hx9BEZQL+VzihkqI20w==","signatures":[{"sig":"MEUCIQCjQKi/UERB1qLG2jSq6LBgZETBPZ3/YsF/Z8Za9RFgMwIgCX2BdgbrtW2gLKA5lZd3Gd2ZkN10J41xXKgZex8kIpc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","email":"info@udger.com","gitHead":"de05b70b39ba86feac53653ede598335661edbf8","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"5.5.1","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.9.1","dependencies":{"dot-prop":"4.2.0","fs-extra":"4.0.2","node-gyp":"3.6.2","ip-address":"5.8.8","better-sqlite3":"4.0.3"},"devDependencies":{"tap":"11.0.0","connect":"3.6.5","merge-deep":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs-1.0.1.tgz_1512151195506_0.47470321925356984","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"udger-nodejs","version":"1.2.0","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.2.0","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"76c4b4dfee89d5355d56ab9be488f536a2418531","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.2.0.tgz","fileCount":47,"integrity":"sha512-zYCgHzX0oLOGwHr04BT+iFsB2aDTIHjyKGWZlClFRkoVV7McF+pe9AvZbbLI18q3DHiQGEdMKZZfhHaqVXhxbg==","signatures":[{"sig":"MEUCIQCWV3zPHJ59hSlgETjDPpuzaFpdFGTIT4Pk5KcxwhDEfwIgUuLVTiGUFQlzkBWbP9Xx0nC39r21AouT/hC3E4JSFTw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":213415},"main":"index.js","email":"info@udger.com","gitHead":"e0dafa88e03f8cee729e6b0e9814cbf30a0e9b06","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"5.6.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.9.3","dependencies":{"dot-prop":"4.2.0","fs-extra":"4.0.2","node-gyp":"3.6.2","ip-address":"5.8.8","better-sqlite3":"4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tap":"11.0.0","connect":"3.6.5","merge-deep":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.2.0_1519911398210_0.216081136729954","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"udger-nodejs","version":"1.2.1","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.2.1","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"90ef77cfe7e3d93f176e594af80afe4044e33c55","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.2.1.tgz","fileCount":47,"integrity":"sha512-YIR88inM9tbvYLq9aLX0n8su5mHBLVDAsrwoSkuz9u71VB5wWlYBD1/tYxCZVy6ELT1iZNnP16TgGMLnJlTIWw==","signatures":[{"sig":"MEQCIEeZkFSbVGslPgOnMX8j0rJeVHKjkZbt5OHvmRDB9GjfAiB5L4xVowHtM10Kx56ZW4w0Ek+l2CdAThZgehh2LmAk1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":213415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8NNVCRA9TVsSAnZWagAAIX4P/0DjORAv8K4UU2md/WPV\n8IOgbQbf0zLqPVsN1Nda+WgzU02+Hoo5l4dm4dl6I28MCzpaBXrkcmd9Yjwy\nW4dOYx/pbpxMRFxKmSN6a1RQduy+BDgvmNW2SMGvrQZyKSAio9ausVBNt0Go\nwNOjfO6MfXz0XQiIsghxyrR6FGw4OE8CXTvdLcLdsZ0vtNg8S2bbVb2f4dlu\nSP1O7JwkYmDGI95FbrftQ6HucMKGq2vFfysyhhD5xINz66de8TIIZ8XNJQyy\ntifSyuVo/XtUzgiN9gltKbwxjDKlMzTix+Qc6wVeo0OnYr+6vZKtI/5Rrj8S\n+L+tPS3VrYwyCg6rpFsrVMybMT2pdtPZamdEuSUgyJsM0uAKf/xSi7IEJa47\nSoA1rAX0/KgoLbUDza5uLqevp/3PfLOstWjqbDuqLKP8cl/hE7We9VfQ6vHH\nFQuvROgA2wkXwQtr8bjoTOcPWuwkUitB+Uudc6cIfUa3jNdXkkcDsb1K4j9n\n3QNUo6twy3ww5HecVNwbTtT6zqm2ludj00kyuTYes6v2s38iHWIU8hL47lIP\nFpBxasXV/D1cDqkxntawp3KUzWHoQdCY1AfdCYNolbIc8i5+MAljPoTLxagX\nD8jM7wYtc7DpyHZ3qwtE/6v+/w133sADnDcnXgm8GSvNymB5LHrPdjMoVHpJ\nYUiD\r\n=dZqc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"b10b2cfcd46d3976742cd8651f0cb38260b947ae","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.0.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"dot-prop":"4.2.0","fs-extra":"6.0.0","node-gyp":"3.6.2","ip-address":"5.8.9","better-sqlite3":"4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"11.1.4","connect":"3.6.6","merge-deep":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.2.1_1525732180503_0.6064879465592659","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"udger-nodejs","version":"1.3.0","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.0","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"cb914622376b500d1dcf2bbe08338948c496521d","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.0.tgz","fileCount":54,"integrity":"sha512-+MeE8ECu5lomrshhZ0e/9HbCfNpdN0A0/14IAAqSq36iq2uwLd5uoQJ9eKX25SGz2RTuxKQhRpkhAoRCKW0BAA==","signatures":[{"sig":"MEYCIQDIUwOXpF9K9Jpxi5RJveehhUz4mmhuVav5uNb7bWJojQIhAIFlGSCDsST8aGW0TIvZGI5Tmp/g894x4KDAdfKMIE8i","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8X6MCRA9TVsSAnZWagAAOkcP/1LnRebF83CEUhI/A3GR\nZeOzxWtb7qQGlg1h12UXgHpp0GxfaXVWxr3OJHLwCewbyc8xOZaEC94U2qAf\nUgPX73NcbquaRkCZsbIeqaD9KLO7W7fV3yYQ/ziphUBh9FoL0ksGvn27d+oz\nh6QrqMi9L+A24/CTpDWO+HlkDdxT/pxU8weLpaFFHREoiOj+8EX42kTI58LL\nd3raow9+CyZqZNrd9ruaelOj1/DtCWDsPjQbGm2HPttUz3TuNep2Pj4lZVnz\nDweW36PRpookkTodre47PL1ToYhQLy1yCc5VvnbAWt2lrHWSviQPLBAkDt7D\n2OPxDAyhtRTL9DKhWk6evAEzbqwSS2QZ9rSGas9fOO8yzBj174N0H4EHWffr\njnBYrRoUJJcjBI7v/DoCPhH1U+0X2NBJp9Hd0YyYZYhOTnF9eHCMAtWIKILE\nGjqgdtuH91zOP7+FVHBmdD6Dsvd0jbRpdelx0v1eT5IHcpGRnwf41rDsrviS\nlMHKrGfVZN/kgeLFaPRkiLXDF/CHOUlEeieDnOVAcqlhwcitR4WIzOnB32ES\nA9U/oD2P3Z/AcqWrtG61Z9cI4c/Gt2TTvKjusVKtU93Lq9V4DbgVE4934ESb\n8KRNyxep4NPfosdzaXKDTVMd7QLxxi65u0z9aLrN7RUpNM/fXyy6bn8puB7G\n77wg\r\n=ooaH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"d53287e8bfe5917cdea9fa524fe44d5601d72f85","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.0.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"randexp":"0.4.9","dot-prop":"4.2.0","fs-extra":"6.0.0","node-gyp":"3.6.2","ip-address":"5.8.9","better-sqlite3":"4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"11.1.4","connect":"3.6.6","merge-deep":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.0_1525776011729_0.5312551512424213","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"udger-nodejs","version":"1.3.1","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.1","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"d1ef1e68b0c6b3f6afe37c4f29cc25fe144ac60d","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.1.tgz","fileCount":54,"integrity":"sha512-MoHy8NpNLHtdnPJeZ7cxTgRZpOGqjPIHHLAHMyLfgXBZGV+BfmjG/5zNLdyLCdMXGIfiWLgxeJnEwkSOM0or9A==","signatures":[{"sig":"MEYCIQDK7L7xOF1Sxc9QpsDONDwP7HZpvz+iUfEmR9R7fn9ajAIhANshFQa01rrJVJe0/0lBNHqVolohEl4ZzVVq3T3qCdiL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8Yg9CRA9TVsSAnZWagAAa58P/jQ97AEFq0VtUFb9I2yD\n8fO/ZBgyo7VBT6HrlyoKOt41weXeYqC9ZbXDy5aN5ry2mkTXuHgMbi25yXOU\n2WWo1x33IHftyvlz+0bnLMPak5uFBCagblkgM13XKpra6ruc/n9C5TF0zZPj\nJu4XHFSnBc7teGn3J+Ua7VF372UD1Qds6QNZhIAESzd5jrt93q66or5ANGuT\nEdh1BH0WPqbBsHh2Xoeq1jM3HWKvez6wSTetZfTZwKnst2oph9onxST4HEeM\n/q9I7HkwmZn4lCe3ya6CJuG41Whh9iRCF8+PwQKGjGf8fUMwIreXH/x2oew8\nQjSzzsmwrusuA++qWErALDYGiJuhrjsxC82h4Vh+Yh1ktEAkwVDaWYFm1ErA\nGgbXj95wczIjB01g5Bsr+fdjnlR/Vx6UyjNLruowbStQgbvm+MerLhd5erGA\nTLIVVO3YNdg8mWaWWJ1NTaeS2AlgyQF8hQSGIDX1b1OV7o+tL80948Ys82js\n0icPFvdKHVXqZUTuUB+1NIkkDKHhtDkx6nCO+LEyFI6XOmdDuGF0ggl+BQmi\n84rTWGDX8kJ1wa9wFOJzfLsa6V4VBz3MaUWUnH8+2Wpn+DfXZftkoyqZ5g4b\nfcQEW4TlTvTg3fr8j6kzLw6fjIMzSJSsX1yCEKi/5EldhRNj8EWhJhJBbCwR\nKSu6\r\n=+keo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"e721a894b245884479c64515ce523478bfcd8912","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.0.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"randexp":"0.4.9","dot-prop":"4.2.0","fs-extra":"6.0.0","node-gyp":"3.6.2","ip-address":"5.8.9","better-sqlite3":"4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"11.1.4","connect":"3.6.6","merge-deep":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.1_1525778492200_0.5312475678182171","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"udger-nodejs","version":"1.3.2","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.2","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"067bafa426c93ea13f53602f5e5147497cc51a44","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.2.tgz","fileCount":55,"integrity":"sha512-B8b/Cx5J9OFoInfSpsSQxOholLCggReoQ+7jq14TjGPjnKNGuI51JiU85ry445KtUiCvWR8JnjIo+Fb2C434DA==","signatures":[{"sig":"MEYCIQDnPhTFuUhBoENiFfr3/w78p6IXOuJRYSCIUxq4mrI4sgIhAOVcZjhzxjdx8nDRt+elYP9jpO8DTbw9DmY58W0+8BFc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":225931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8fdeCRA9TVsSAnZWagAAIMUP/RvtVRlrEy1aP2EQ9I2M\nhUM3exzYYkPgeddi0rkv/gdIovWzqkrx1FB0d/Gz4AtOQMNRtn7W2topQBH5\no2apgKzli1rugvQYoGn6NJfHDL11OjoT0IYi3N4PJmshsrME9VRNiT4HFX2W\nsFSSC4jIhBnFVOZubFgxgEFmL7XJNhPW5dTZ1TaE4T67JmLyZZC7FolUQbvz\n0jJAkhdsBT/ro0rt6Rkc2cgR58Tv5VptPpeTLXfs+ZQJvPWh/cqfwSnqBH6J\n9L7m/1z2ypPtovzSeXEz0+0Q3nB9A9h8GbAdNwp7s1/Sbh90GapaUNJ7nGSv\ni+kf13j5JwO0GQWviH/BEkjYmPBjV6JpeFKPchXwApV8H5/GJrwdXpV64pZH\n45ay9v9CzO3QkoXnHRVKS2C6GpMbs4VDzmfjZ5rlWou2dlog0U2WmQA19P9I\nxNpYQlytSyF2fSO00xtsTfJyllVDyhhEzPIYRxLIkZRC1RDODd2xZ4TTxW/S\nImZ20P7t4UUaupQFHbdRRiyQjzvrnjmLwpqm6gNi8Irb3k2djnGuutaDW46S\ngsgUH7NC1Db0X4SvUc+2jDitFpdHOHVgbnah02s4VIDEuoxoXHZyxjmr6FHy\nSoBz1WuZT19VwImlQuTKiFU1LpmK4sBA3zBxtOFUB+V23Hkc/ZgMw4wEK+NL\nOLBP\r\n=f7I0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"8d3990b0995633d5fb88f8b6a5b88d406ca532f6","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.0.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"randexp":"0.4.9","dot-prop":"4.2.0","fs-extra":"6.0.0","node-gyp":"3.6.2","ip-address":"5.8.9","better-sqlite3":"4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"11.1.4","connect":"3.6.6","merge-deep":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.2_1525806940918_0.2164871010894791","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"udger-nodejs","version":"1.3.3","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.3","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"ee88dd095a10834ac5377b1e8b39ad316fc5055f","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.3.tgz","fileCount":55,"integrity":"sha512-XyAewwoC5DWL1eGK+G3x6TY7xq8smCPkE5O1dQHRyKPypIiZ+N0Vx9Vq1HqtkYyqzfdl6f6L2CnK9VuaUt2iSg==","signatures":[{"sig":"MEUCIQCnZx80bnp5bW10gFri/NlCzu7Si7u5ffl0eHg5eEqZOAIgJMP6s2Cwk3tCkO0AS1JmLeZ68a8Xw+3hTK6KYmTFaPg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":226169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8gjjCRA9TVsSAnZWagAAEXwP/0193CgjQavKvRAyAV1N\nS5+A2zGGOf8XWo98jP2nt7YjXuUetufKvKkstoctUt5US7wPzwyF0Vj1SaKF\nezp30+PhNflsnHnDuGGDAEf1zRvUlC2IOOso4a2lq7tYRPZuH/XWFORVWsCk\ncIK3hoePNlezR4kaPOculpKO+pj4/otKJXxvC5AO2KMbD9DyqyANpJyCADHJ\n/KHEe9o4piwgzYM+CiS4tuuUedRDT/x73jXVG6C4LK9t1KrPSzP8e99q+RQP\nSHhJkMZotrOikCFvaM9L/QZAvnugskKVCEurqnc0BIjCXwtjUr2OB97S/trC\n84AAnU1QIXvx2EaR4SFKCaJaHVKmsaXX16pE11jJjYjZpiygTeykfdx6B+fp\nkFgNOUb7+A4Jd2WzNROp1hjo4uMo3jLss6pIlyPIINEb0/35ubrxKGjjl9jN\n50kV/MsvowmuB99w6S/wq1T5wlk6yEkrwanBZj6A1ax2sf7nTrGm8vy4L6nd\nng0fXetRBlUM/oQi0C7yVbm5I5e5AyGLBYAtn4CyZ5qSPMCLUhO83lGr8js9\nVuCbJBFxHYBnplDlYvxkQS9laVeWqv0ZhHkdcrhXbeuh7HWENbU5bViDQr+j\nd4P5qFaFyXA48vj0lhz3EZHOZXb67e82GiEYLE0r/t7lWU9Hdh/9+IpL+/DS\n+1O8\r\n=BkeO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"4a3ca89fa269d961adb4e27a87aad135a592fb20","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.0.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"randexp":"0.4.9","dot-prop":"4.2.0","fs-extra":"6.0.0","node-gyp":"3.6.2","ip-address":"5.8.9","better-sqlite3":"4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"11.1.4","connect":"3.6.6","merge-deep":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.3_1525811425490_0.1010058505093645","host":"s3://npm-registry-packages"}},"1.3.4":{"name":"udger-nodejs","version":"1.3.4","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.4","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"65890b2f44c9a0bb3dc8e4064d127e8a4c054530","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.4.tgz","fileCount":56,"integrity":"sha512-w4wqhdcU+9vHjkPL9Ul1q64WPICb9ZYOMAf0KUtkxcx1DfV0bbzAvPljuywB/ez1qDjjyZyaAh9Mq49nvH7Nxg==","signatures":[{"sig":"MEUCIQCEOTThHdNF5ELqKrHV627p2RoIfaP8Cfdk7DHhmCnl9gIgaK/yS529Ebggfr7N/svzlU/4kNglb5mqdRbexZjj/GM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":227848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/8SFCRA9TVsSAnZWagAAQt0P/jhs5PFWxDCvmkbidhoE\ngNZMcpeKj85jq2GwdPjGBhOrVDMOrvHFBG4W/6IzfUhR6IFi9kS3vekRHiJ5\ncCO1W5swoeXrQyqkVHNHk77bDSNS+L5KCfXpquvYWo2AlQ7rtvecpVT/4rD1\nELFcjgT22Lt0ajherFA6Wr2XHY6RuIL4rPPLhHeUmbtGv5oKQZebmgTHU6VD\nls55byGx0mZvPorHQsayucnq0+sNCekKzBisfvWg7y5htG/LIMZ5rX5esmcm\nUNAmKxPoYRQyhmVEQIAA662Bnjk3KVzHOsqwAUZqi+1UuPYVORgac8w/Zmj4\n7ER6YscyIEBfmDGn/o1/sW8u2bg/g/O9HJlFqgGRhavMez6bmdzAtROeGtSD\niHZUDjYG4ihQqAnhNriGpm7WRh2sFmGIf18aw2UoWXI4im3ZZtckSZTSvVW2\n1bMH/LMn36l4DS28Fd0U7rZ4W97ozhCXp6i+fNLmMHHB5ZK3aHr6joIu/Ot+\n1CvzDqearRPUSU3jJcb4CDW0xwAvimKEsuG1U6vGxwHTVTs0d/mK3m24aOw1\nWZDKiktkriwl3uyaO4UEKSowQOBkKVCutOWjiluMIJQug4bLMIQwH0W4P31z\nHydiKqo1EymNetm4rA70zbh/rZUEdvug6UKub8XgKV+B1Hnr1djJwEvHSrSP\nzyZh\r\n=Sy8f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"cf857060c9349ac5bb918120256c0f2c44c73be0","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.0.1","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"8.11.1","dependencies":{"randexp":"0.4.9","dot-prop":"4.2.0","fs-extra":"6.0.1","node-gyp":"3.6.2","ip-address":"5.8.9","better-sqlite3":"4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"12.0.1","connect":"3.6.6","merge-deep":"3.0.1"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.4_1526711427387_0.02406751241622307","host":"s3://npm-registry-packages"}},"1.3.5":{"name":"udger-nodejs","version":"1.3.5","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.5","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"82cbe62562923303d718adde111250c91209f358","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.5.tgz","fileCount":56,"integrity":"sha512-e0KwEBKFAPNowuOOymaMAHicpQie2a1Y6mRUsRypROlZ83r2UDCxJIgcaxtHoHVOHH/2mfLHnQ10A9A2MPKgHQ==","signatures":[{"sig":"MEQCIE3rBsjwu8J+c6h3ijEZRwJSZEo5TpSybzy9ZzG9KRyrAiBvucpjFq2GJUmoptnHFyihIRfMRStwaEjLxRmd/yDz0w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":224677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmJwbCRA9TVsSAnZWagAATyMP/3qNlWZjMbR+Y8Dlc31G\nojbAvwgF96eOqowYtAvB1ipVYdZIOiGamMI27CX7W2oDbLmjUSQp5rDAqG0g\ne7sNmyytM9jG+W6eRS/hnqezwV4zdYXtHW8UAY2GY9J5dg4YA2BX8aSys/KE\niL+ZopxJtN78ZR8LQk5CcpfGkFhCGdFRsvtdCvgNMQhQVvn3VIjY1Uu/wHyv\nVl/Q9MbuP7nB7HYckKCUT3L42fBDo8Hrw9CG3yXrR680aSBKIPuVLKlYXRBh\nhSHMbJXyRvnERnBmXnQi+jZBCzYvsw7kyHm7TZMU7EFie5J4BhTNEhpu134o\nkDp0JpAJMlFUsd5fe9B55HTgerWydjoUSBqE3NSpR7v9+kbT6kG5j/LOI1s8\nfD4M0T0gxEDleA0p9eMKvZmgAnVO4KG0T56sZoLpbN7CDuxq15vOKk1iIVFc\nXlrgKjpbF1OhVH4N8nmdha3vO4HlLGK/bW28eYtTAXAhyj3J75cpDVeeuhbs\nSuG6D6t3RAOsCjc033yBLDb/ZgNOxDdnwgltt1aemFZVZLpj0sqwZuRTECCv\n2Hh7guYnMh8HXufEgA/FGGSyU1GZo91qqF/p4p2K/m4PE6NKahsjoi+fASJc\nnqghU94nO37XZfBmujJzupe6GkJtfhRY8rg7guM5qD5okfX3ozElUZFUdOEK\nVYS9\r\n=/nhI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"f88626dd6783b760cbf025de72bba1d2be28e497","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.8.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"11.10.0","dependencies":{"randexp":"0.5.3","dot-prop":"4.2.0","fs-extra":"7.0.1","node-gyp":"3.8.0","ip-address":"5.8.9","better-sqlite3":"5.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"12.6.1","connect":"3.6.6","merge-deep":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.5_1553505306955_0.27769368536039285","host":"s3://npm-registry-packages"}},"1.3.6":{"name":"udger-nodejs","version":"1.3.6","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.6","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"a3d00796e89af64eb3ffbab890be75c8c3405852","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.6.tgz","fileCount":56,"integrity":"sha512-wU+4v1ClAezWiPizp622bt2ABXx9GW7cYeB/IfnJgii/cTGD7xOJU1jcxEWPAP21QRqBo+btJ9KZ7Gm/Xca9Sw==","signatures":[{"sig":"MEQCIBNn35zecT5f7Pv0OWOrWkpi2FtHllO7p3pTMMuId9D5AiBSapo5zecB10lVe4LhhhBrnmYtfiw7FozPSIlPAWx45A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":224850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2XQsCRA9TVsSAnZWagAAd1UP/iDUDHw2co5B8CqPwkYW\nXm65fr+DwribJ8GQNnAIUecQJANTpCG7vSv8J6hkkzki66T6Cv+jU42Iucu6\nMY0pGWXuLGEuP+VbJilaS4HYcj6cMkhh3i19oXkQfIUiQ4qJduzqIusEUzHd\ndBMS0uWMDGGM4wkYri+XbBmyE4RqvwuO2JT9OnyiX9b6d5PLFWmjrrvAsHrm\nBb7RuKPcmI0UBslci3qb3vy3feXYteZw647Fx0kO6z5/7DPjoZQGX2DOE8WO\nJr/lLTNYhnQ+zeNAGHDYWJMcpao4xuERZI3MeA/yRyHiKQ5XbXwVGQ+YAJK+\nsIH0MvwaEKSD+0iKV+4NRyox7SjDlEyEbLvSdRy28lXDq1svWxr0a1n1lQ/N\ndm6HETjjhvuboSK/RYIzcH+/ZdK66wYmACDPKsBo9zOpnDeN4sBGR0dNM0B8\nlRF8T+kAboNWUi4AZadSw+dSipU6ANua0LbtPO1qVTUy0iDf8Ce38BPaE6JC\ncRXwv5DTr/zN7rxd+kSAd9z/tabHu+dvQ819LkyOi7/9nb4AW8lxo14c0E8G\n0ywkrb7shbBHixp/3cTsn08RHrBzuW/TpzYqchBgbPeJvXxQKfAOD+pUSk6b\nxnYgE5WbsreQY42qI7IGjKrORZSMk4PZHycB2n2bwty8KYQH0+h8/KLaoH5M\nD2gP\r\n=TKog\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"1c0329b4c6082e8c97969c27ec4f985a2b45abda","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.9.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"11.13.0","dependencies":{"randexp":"0.5.3","dot-prop":"5.0.0","fs-extra":"8.0.0","node-gyp":"4.0.0","ip-address":"5.9.0","better-sqlite3":"5.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"13.1.8","connect":"3.6.6","merge-deep":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.6_1557754923171_0.4116341702669135","host":"s3://npm-registry-packages"}},"1.3.7":{"name":"udger-nodejs","version":"1.3.7","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.3.7","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"4c48f10dedbe6d28e180579b5371ef6f6a4f2cd3","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.3.7.tgz","fileCount":57,"integrity":"sha512-UxzoucDoHJtM3ZiZAO3eTiMdFGsMj/8ncuIZtVz2BwWQ+0JN6hqZdMAoJbEz061WC2nBbE1KLudDueCBceIpzw==","signatures":[{"sig":"MEQCIDzKGSChdvjPEDUfLc/GeaLoGHvEcJg/RfggqlpPBHJSAiAJMr6lKzxidx9RnA+sixAp9p72CvgapXpk4vQMwYeyrg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":226525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/z6xCRA9TVsSAnZWagAAZXEP+gKeyuHoVbyHyfEHZwO2\nsnDcju/dgMFeDwMuZ9X1NmtN79HGdXHk+ELFvRvC0VBzq59dLNi1m8llQiHl\nIrfe3AG9xzynNZN+iVMt+VShuH4GLFPWrWl8r7RmdCIAXLkaeRMaHTEyAGoL\nGoPkVdAoKW4pF2Ho2QMtj2nVk1k3yRVDcc2PVg+us8Go6AIFiPfPBNHm2JDb\nv/v/Zy4b2pGQpfiQSM9pTPaBWS/TshjjPCEWoE7fbr/uXfscFfMZYanRFdlg\nWDQ9AhjSol3yddj9KTNo23ldEi4eIUZCbrbtqJZRN3fK+ucUlU/DLCYzurru\nWUmn2YSmztKN9munerUdxm9NIbVdH7t6lEY2LwRksNDL3xARkVyHdibmEQCk\ncH1yeQTNEk+AHiD5dOTPzeWRz30eZRSotUtGdrOmFek8ulJcHUl4nGoKSkV1\nbjghq7obhtfqb3gFIPxkvPXkIgHsCZqO8H9x2u9GYdKsZ9+yGu/9LJ/qXQyA\nkmssHCSmzRjfjlvGMbP4NxMce92GW15BCQgg60BJAYIKTrxc2pFUpur8AA9U\ntJg4/Xi/7EzUTg2mEkbL5NteGGW2dchlU2iPTAO87eLDrI+mz8EYSCQNm+Ef\nEk4J5Dm5L2F3f882GoKrA/HN2ijaj2H6B5Ewym5LsX19V7KP19EVQKdujJyi\naWGX\r\n=8gkT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"115205174e29ccd89342754e68ac2045ad80c75f","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"6.9.0","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"11.13.0","dependencies":{"randexp":"0.5.3","dot-prop":"5.0.1","fs-extra":"8.0.1","node-gyp":"4.0.0","ip-address":"5.9.2","better-sqlite3":"5.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"14.2.2","connect":"3.7.0","merge-deep":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.3.7_1560231600428_0.9552222226476235","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"udger-nodejs","version":"1.5.0","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.5.0","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"8fcf49d1b234e8a3f1ed048961d66a64153043e8","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.5.0.tgz","fileCount":56,"integrity":"sha512-l776ixwqOTIMsTSlQIqT+fGtA7qr3uxRgpn4i0oKllYBbF9KyTYqsJ/OesHylj8CUVY9m8+3/0A+VcFeJVx0Xg==","signatures":[{"sig":"MEQCIH43sSgddKFZxNIenRB4tG7BRj8okptxosiV3Lk8CYFaAiBMPurE/b52VQgbW6feWKQufeGNcMGaqmvfcD/carKtNg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":116122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwxebACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqvzQ//VCNeIi0VQPj+fjHLpzM2x3+yUQX0nlONCVRJ8z8FWu/8mhLO\r\noV4soaRkSgyRWO4mjt7f7mPPwtVN7QA14opXVby9kZ05euCe1dgNy6gMdFYF\r\nCYmM2ln3LDmD3AKuT7OAy0JmhptXmtO8fXMgezz5NLl1J7XRoN9S1ij/BlLV\r\nJo5Hih6JwxA49h1T5bhuyNvrOTQ2aPBQjlC72wjzszZAbIa5n/T/b8025nLQ\r\nhNJ+9sm3x7NCtinzFONwN3rrSMnkBkWDEUqmUSTSke61ZE6Ex/sQvrlVaDG9\r\nujLHwdyjIesstZ9mpwlMvOY08UZeiKsH5xnMCg//9dD5R7Oa+nrd8eyIIxs2\r\nTf9BzgkjOpWWr5TtpObl1WKbwUAIZzTGk7/YjjF00DJDyyrWYNh7w8FG6owU\r\nCXJc05wRulUtZhiXCFZKJvIWhS3oZHBqkxQGiK2rBBa4IJWAmZDoP6CzhRNu\r\nrtSv0uz8unLK+Rr391v3DCSzadCHFRh9iOynj+92jTWk7gPetPaVRiWazbBu\r\nsTpuQHWzjkwr/m/FEAExPJU1s9UX48B4VrolmCzZhibPL/z1C5CBJK5hQDf3\r\nQ/GI+iDbyEXKJ1EFLbViQawARtm5WQ3zBmzaYi6KEkeYqh6Z+7nBnGnzbePr\r\n/TSRDfLt9Ok6vDEzKnLVAyT3vNytfiPDtQg=\r\n=Ced7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","email":"info@udger.com","gitHead":"def04e2def73cdeecad7e33b6063bd7a3700518f","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"8.19.3","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"16.19.0","dependencies":{"randexp":"0.5.3","dot-prop":"5.3.0","fs-extra":"11.1.0","node-gyp":"9.3.1","ip-address":"8.1.0","better-sqlite3":"8.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tap":"16.3.3","connect":"3.7.0","merge-deep":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.5.0_1673729947591_0.6077076685187337","host":"s3://npm-registry-packages"}},"1.5.1":{"name":"udger-nodejs","version":"1.5.1","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"author":{"name":"The Udger.com Team"},"license":"MIT","_id":"udger-nodejs@1.5.1","maintainers":[{"name":"eviltik","email":"eviltik@gmail.com"}],"homepage":"https://github.com/udger/udger-nodejs#readme","bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"dist":{"shasum":"3a67be37670feac92228d21f28e20234a2cca98e","tarball":"https://registry.npmjs.org/udger-nodejs/-/udger-nodejs-1.5.1.tgz","fileCount":56,"integrity":"sha512-ol4KgGiV6uv1yhY8woMb9efTSF3/5EsVFekMKcjpA50Q/HKXLDKcJHQJnUee4s+nXs1dHFSHXh8Qeky/5IAPSg==","signatures":[{"sig":"MEYCIQCO5tg9N+nnMyQTireuPRiLp1ytFOOwwN6QgMRyypSIrQIhAMYSCexqQOBG6NC9cA9hn6LwoErjWcJekRlxSVxzbmAr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117107},"main":"index.js","email":"info@udger.com","gitHead":"18840c32a6635830731dcbea155a7d3439721198","scripts":{"test":"node node_modules/tap/bin/run.js test/*.js"},"_npmUser":{"name":"eviltik","email":"eviltik@gmail.com"},"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"_npmVersion":"11.6.1","description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","directories":{"test":"test"},"_nodeVersion":"24.11.0","dependencies":{"randexp":"0.5.3","dot-prop":"9.0.0","fs-extra":"11.3.1","ip-address":"10.0.1","better-sqlite3":"12.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tap":"16.3.3","connect":"3.7.0","merge-deep":"3.0.3"},"_npmOperationalInternal":{"tmp":"tmp/udger-nodejs_1.5.1_1763060724340_0.10462208835946996","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2017-11-28T11:17:07.113Z","modified":"2025-11-13T19:14:52.944Z","0.9.0":"2017-11-28T11:17:07.113Z","0.9.1":"2017-11-28T20:38:06.870Z","0.9.2":"2017-11-29T04:54:19.592Z","1.0.0":"2017-12-01T10:50:31.935Z","1.0.1":"2017-12-01T17:59:56.672Z","1.2.0":"2018-03-01T13:36:38.276Z","1.2.1":"2018-05-07T22:29:40.572Z","1.3.0":"2018-05-08T10:40:11.829Z","1.3.1":"2018-05-08T11:21:32.350Z","1.3.2":"2018-05-08T19:15:41.056Z","1.3.3":"2018-05-08T20:30:25.569Z","1.3.4":"2018-05-19T06:30:27.484Z","1.3.5":"2019-03-25T09:15:07.142Z","1.3.6":"2019-05-13T13:42:03.305Z","1.3.7":"2019-06-11T05:40:00.603Z","1.5.0":"2023-01-14T20:59:07.756Z","1.5.1":"2025-11-13T19:05:24.508Z"},"bugs":{"url":"https://github.com/udger/udger-nodejs/issues"},"author":{"name":"The Udger.com Team"},"license":"MIT","homepage":"https://github.com/udger/udger-nodejs#readme","keywords":["udger","user-agent","device-detector","bot-detection","mobile-detection","bot","bots","antibot","antibots","ipv4","ipv6","datacenter","crawler"],"repository":{"url":"git+https://github.com/udger/udger-nodejs.git"},"description":"NodeJS User-Agent String Parser based on Udger SQLite databases https://udger.com/products/local_parser","maintainers":[{"email":"eviltik@gmail.com","name":"eviltik"},{"email":"info@udger.com","name":"udger"}],"readme":"# udger-nodejs\n\n# Udger client for NodeJS (data ver. 3)\nLocal parser is very fast and accurate useragent string detection solution.\nEnables developers to locally install and integrate a highly-scalable product.\nWe provide the detection of the devices (personal computer, tablet, Smart TV, Game console etc.),\noperating system, client SW type (browser, e-mail client etc.) and devices market name\n(example: Sony Xperia Tablet S, Nokia Lumia 820 etc.). It also provides information about\nIP addresses (Public proxies, VPN services, Tor exit nodes, Fake crawlers, Web scrapers,\nDatacenter name .. etc.)\n\n- Tested with more the 50.000 unique user agents.\n- Up to date data provided by https://udger.com/\n\n## Requirements\n - nodejs >= 8.9.0\n - datafile v3 (udgerdb_v3.dat) from https://data.udger.com/\n\n## Features\n- Fast\n- LRU cache\n- Released under the MIT\n\n## Install\n    npm install udger-nodejs\n\n## Usage\nYou should review the included examples in `examples/` and `test/` directory.\n\nHere's a quick example:\n\n```js\nconst udgerParser = require('udger-nodejs')('./udgerdb_v3.dat');\n\nudgerParser.set({\n    ua:'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',\n    ip:'2A02:598:7000:116:0:0:0:101'\n});\n\nlet ret = udgerParser.parse();\n\n// beautify json output with 4 spaces indent\nconsole.log(JSON.stringify(ret, null, 4));\n```\n\nResult\n\n```\n{\n    \"user_agent\": {\n        \"ua_string\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\",\n        \"ua_class\": \"Browser\",\n        \"ua_class_code\": \"browser\",\n        \"ua\": \"Chrome 62.0.3202.94\",\n        \"ua_version\": \"62.0.3202.94\",\n        \"ua_version_major\": \"62\",\n        \"ua_uptodate_current_version\": \"62\",\n        \"ua_family\": \"Chrome\",\n        \"ua_family_code\": \"chrome\",\n        \"ua_family_homepage\": \"http://www.google.com/chrome/\",\n        \"ua_family_vendor\": \"Google Inc.\",\n        \"ua_family_vendor_code\": \"google_inc\",\n        \"ua_family_vendor_homepage\": \"https://www.google.com/about/company/\",\n        \"ua_family_icon\": \"chrome.png\",\n        \"ua_family_icon_big\": \"chrome_big.png\",\n        \"ua_family_info_url\": \"https://udger.com/resources/ua-list/browser-detail?browser=Chrome\",\n        \"ua_engine\": \"WebKit/Blink\",\n        \"os\": \"Windows 10\",\n        \"os_code\": \"windows_10\",\n        \"os_homepage\": \"https://en.wikipedia.org/wiki/Windows_10\",\n        \"os_icon\": \"windows10.png\",\n        \"os_icon_big\": \"windows10_big.png\",\n        \"os_info_url\": \"https://udger.com/resources/ua-list/os-detail?os=Windows 10\",\n        \"os_family\": \"Windows\",\n        \"os_family_code\": \"windows\",\n        \"os_family_vendor\": \"Microsoft Corporation.\",\n        \"os_family_vendor_code\": \"microsoft_corporation\",\n        \"os_family_vendor_homepage\": \"https://www.microsoft.com/about/\",\n        \"device_class\": \"Desktop\",\n        \"device_class_code\": \"desktop\",\n        \"device_class_icon\": \"desktop.png\",\n        \"device_class_icon_big\": \"desktop_big.png\",\n        \"device_class_info_url\": \"https://udger.com/resources/ua-list/device-detail?device=Desktop\",\n        \"device_marketname\": \"\",\n        \"device_brand\": \"\",\n        \"device_brand_code\": \"\",\n        \"device_brand_homepage\": \"\",\n        \"device_brand_icon\": \"\",\n        \"device_brand_icon_big\": \"\",\n        \"device_brand_info_url\": \"\",\n        \"crawler_last_seen\": \"\",\n        \"crawler_category\": \"\",\n        \"crawler_category_code\": \"\",\n        \"crawler_respect_robotstxt\": \"\"\n    },\n    \"ip_address\": {\n        \"ip\": \"2a02:598:7000:116:0:0:0:101\",\n        \"ip_ver\": 6,\n        \"ip_classification\": \"Crawler\",\n        \"ip_classification_code\": \"crawler\",\n        \"ip_hostname\": \"\",\n        \"ip_last_seen\": \"2016-02-12 04:28:56\",\n        \"ip_country\": \"Czech Republic\",\n        \"ip_country_code\": \"CZ\",\n        \"ip_city\": \"Prague\",\n        \"crawler_name\": \"SeznamBot/3.2-test1\",\n        \"crawler_ver\": \"3.2-test1\",\n        \"crawler_ver_major\": \"3\",\n        \"crawler_family\": \"SeznamBot\",\n        \"crawler_family_code\": \"seznambot\",\n        \"crawler_family_homepage\": \"http://napoveda.seznam.cz/en/seznambot-intro/\",\n        \"crawler_family_vendor\": \"Seznam.cz, a.s.\",\n        \"crawler_family_vendor_code\": \"seznam-cz_as\",\n        \"crawler_family_vendor_homepage\": \"http://onas.seznam.cz/\",\n        \"crawler_family_icon\": \"seznam.png\",\n        \"crawler_family_info_url\": \"https://udger.com/resources/ua-list/bot-detail?bot=SeznamBot#id12590\",\n        \"crawler_last_seen\": \"2016-08-31 15:19:38\",\n        \"crawler_category\": \"Search engine bot\",\n        \"crawler_category_code\": \"search_engine_bot\",\n        \"crawler_respect_robotstxt\": \"yes\",\n        \"datacenter_name\": \"Seznam.cz\",\n        \"datacenter_name_code\": \"seznam_cz\",\n        \"datacenter_homepage\": \"http://onas.seznam.cz/\"\n    },\n    \"from_cache\": false\n}\n```\n\n\n## Result formats\nBy default, JSON Udger format is used. The JSON Udger format is coming from the PHP Parser (compatibility)\nOthers JSON format are available, by passing options in `udger.parse()` function.\n\n### Native Udger JSON Format (default)\n\n#### Usage\n\n```js\nudgerParser.parse();\n```\n\n#### Result\n\n```\n{\n    \"ip_address\": {\n        \"ip\": \"66.249.64.73\",\n        \"ip_ver\": 4,\n        \"ip_classification\": \"Crawler\",\n        \"ip_classification_code\": \"crawler\",\n        \"ip_hostname\": \"crawl-66-249-64-73.googlebot.com\",\n        \"ip_last_seen\": \"2016-10-02 09:16:57\",\n        \"ip_country\": \"United States\",\n        \"ip_country_code\": \"US\",\n        \"ip_city\": \"Mountain View\",\n        \"crawler_name\": \"Googlebot/2.1\",\n        \"crawler_ver\": \"2.1\",\n        \"crawler_ver_major\": \"2\",\n        \"crawler_family\": \"Googlebot\",\n        \"crawler_family_code\": \"googlebot\",\n        \"crawler_family_homepage\": \"http://www.google.com/bot.html\",\n        \"crawler_family_vendor\": \"Google Inc.\",\n        \"crawler_family_vendor_code\": \"google_inc\",\n        \"crawler_family_vendor_homepage\": \"https://www.google.com/about/company/\",\n        \"crawler_family_icon\": \"bot_googlebot.png\",\n        \"crawler_family_info_url\": \"https://udger.com/resources/ua-list/bot-detail?bot=Googlebot#id31\",\n        \"crawler_last_seen\": \"2017-01-06 17:52:46\",\n        \"crawler_category\": \"Search engine bot\",\n        \"crawler_category_code\": \"search_engine_bot\",\n        \"crawler_respect_robotstxt\": \"yes\",\n        \"datacenter_name\": \"Google sites\",\n        \"datacenter_name_code\": \"googgle_sites\",\n        \"datacenter_homepage\": \"http://sites.google.com/\"\n    }\n}\n```\n\n### Compact JSON Format\n\n#### Usage\n\n```js\nudgerParser.parse({json:true});\n```\n\n#### Result\n\n```js\n{\n    \"ipAddress\": {\n        \"ip\": \"66.249.64.73\",\n        \"classification\": \"crawler\",\n        \"lastSeen\": \"2016-10-02 09:16:57\",\n        \"hostname\": \"crawl-66-249-64-73.googlebot.com\",\n        \"geo\": {\n            \"country\": {\n                \"name\": \"United States\",\n                \"code\": \"US\"\n            },\n            \"city\": \"Mountain View\"\n        },\n        \"crawler\": {\n            \"name\": \"Googlebot/2.1\",\n            \"family\": \"googlebot\",\n            \"category\": \"search_engine_bot\",\n            \"lastSeen\": \"2017-01-06 17:52:46\"\n        },\n        \"datacenter\": \"googgle_sites\"\n    }\n}\n```\n\n### Full JSON Format\n\n#### Usage\n\n```js\nudgerParser.parse({json:true, full:true});\n```\n\n#### Result\n\n```js\n{\n    \"ipAddress\": {\n        \"ip\": \"66.249.64.73\",\n        \"version\": 4,\n        \"classification\": {\n            \"name\": \"Crawler\",\n            \"code\": \"crawler\"\n        },\n        \"lastSeen\": \"2016-10-02 09:16:57\",\n        \"hostname\": \"crawl-66-249-64-73.googlebot.com\",\n        \"geo\": {\n            \"country\": {\n                \"name\": \"United States\",\n                \"code\": \"US\"\n            },\n            \"city\": \"Mountain View\"\n        },\n        \"crawler\": {\n            \"name\": \"Googlebot/2.1\",\n            \"version\": {\n                \"current\": \"2.1\",\n                \"major\": \"2\"\n            },\n            \"family\": {\n                \"name\": \"Googlebot\",\n                \"code\": \"googlebot\",\n                \"homepage\": \"http://www.google.com/bot.html\",\n                \"vendor\": {\n                    \"name\": \"Google Inc.\",\n                    \"code\": \"google_inc\",\n                    \"homepage\": \"https://www.google.com/about/company/\"\n                },\n                \"icon\": \"bot_googlebot.png\",\n                \"infoUrl\": \"https://udger.com/resources/ua-list/bot-detail?bot=Googlebot#id31\"\n            },\n            \"lastSeen\": \"2017-01-06 17:52:46\",\n            \"category\": {\n                \"name\": \"Search engine bot\",\n                \"code\": \"search_engine_bot\"\n            },\n            \"respectRobotsTxt\": \"search_engine_bot\"\n        },\n        \"datacenter\": {\n            \"name\": \"Google sites\",\n            \"code\": \"googgle_sites\",\n            \"homepage\": \"http://sites.google.com/\"\n        }\n    },\n    \"fromCache\": false\n}\n```\n\n## LRU Cache\nBy default, cache is disable. To enable cache, just add this line BEFORE using udgerParser.set():\n\n    // by default, cache size is 4000 keys (a key can be an UA, or UA+IP)\n    // you can modify this limit\n    udgerParser.setCacheSize(1000);\n    udgerParser.setCacheEnable(true)\n\nWhen a record is coming from the cache, the \"from_cache\" attribute in the response is \"true\"\n\n## Helpers\n\n### randomUACrawlers\n\n    // return callback with random ua_string from udger_crawler_list table\n    //  [\n    //      { ua_string: 'Googlebot/2.1 (+http://www.google.com/bot.html)' },\n    //      { ua_string: 'Mozilla/5.0 (compatible; SeznamBot/3.2-test1; +http://napoveda.seznam.cz/en/seznambot-intro/)' },\n    //      ......\n    //  ]\n\n    udgerParser.randomUACrawlers(10, (err, results) => {});\n\n### randomUAClientsRegex\n\n    // return callback with random regstring from udger_client_regex table\n    //  [\n    //      { regstring: '/^Microsoft Office\\\\/16.*Microsoft Outlook Mail 16/si' },\n    //      { regstring: '/Mozilla.*Linux.*Android.*WebKit.*Version\\\\/([0-9\\\\.]+)/si' },\n    //      ......\n    //  ]\n\n    udgerParser.randomUAClientsRegex(10, (err, results) => {});\n\n### randomUAClients\n\n    // return callback with random generated UA strings based in regstring (udger_client_regex)\n    //  [\n    //      {\n    //          regstring: '/^Mozilla.*MSIE.*Windows Phone.*IEMobile\\\\/([0-9\\\\.]+)/si',\n    //          randomUA: 'MozillaMSIEQSs-0Windows PhoneTD7Y9IEMobile/24304'\n    //      },\n    //      {\n    //          regstring: '/mozilla.*rv:[0-9\\\\.]+.*servo.*firefox\\\\/([0-9a-z\\\\+\\\\-\\\\.]+).*/si',\n    //          randomUA: 'mozillatWrv:90221.GeservoTKqzfirefox/y-l+h'\n    //      }\n    //      ......\n    //  ]\n\n    udgerParser.randomUAClients(10, (err, results) => {});\n\n### randomIPv4\n\n    // return callback with random ipv4 matching XXX.XXX.XXX.XXX from udger_ip_list (identified as \"bad\" IPs)\n    //  [\n    //      { ip: '108.61.199.93' },\n    //      { ip: '66.249.64.73' }\n    //      .....\n    //  ]\n\n    udgerParser.randomIPv4(10, (err, results) => {});\n\n### getUAClientsClassification\n\n    // return callback with data from udger_client_class table\n    //  [\n    //      { client_classification: 'Browser', client_classification_code: 'browser' },\n    //      { client_classification: 'Offline browser', client_classification_code: 'offline_browser' },\n    //      .....\n    // ]\n\n    udgerParser.getUAClientsClassification((err, results) => {});\n\n### getUACrawlersClassification\n\n    // return callback with data from udger_crawler_class table\n    //  [\n    //      { crawler_classification: 'Uncategorised', crawler_classification_code: 'uncategorised' },\n    //      { crawler_classification: 'Search engine bot', crawler_classification_code: 'search_engine_bot' },\n    //      .....\n    //  ]\n\n    udgerParser.getUACrawlersClassification((err, results) => {});\n\n### getUACrawlersFamilies\n\n    // return callback with data from mixed udger_crawler_class, udger_crawler_list tables\n    //  [\n    //      {\n    //          family_code: 'googlebot',\n    //          crawler_classification_code: 'search_engine_bot'\n    //      },\n    //      ....\n    //  ]\n\n    udgerParser.getUACrawlersFamilies((err, results) => {});\n\n### getIpsClassification\n\n    // return callback with data from udger_ip_class table\n    //  [\n    //      { ip_classification: 'Tor exit node', ip_classification_code: 'tor_exit_node' },\n    //      { ip_classification: 'Fake crawler', ip_classification_code: 'fake_crawler' },\n    //      .....\n    //  ]\n\n    udgerParser.getIpsClassification((err, results) => {});\n\n### getDatabaseInfo\n\n    // return callback with single record from udger_db_info table\n    //  {\n    //      version: '20170106-01',\n    //      information: 'Data v3 for Local parser - test data, no full database',\n    //      lastupdate: 1483690193\n    //  }\n\n    udgerParser.getDatabaseInfo((err, result) => {});\n\n## Running tests\n    npm test\n\n\n## Automatic updates download\n- for autoupdate data use Udger data updater (https://udger.com/support/documentation/?doc=62)\n\n\n## Documentation for programmers\n- https://udger.com/pub/documentation/parser/NodeJS/html/\n\n\n## Author\n- The Udger.com Team (info@udger.com)\n\n\n## old v2 format\nThis module does not support v2 format\n","readmeFilename":"README.md"}