{"_id":"unfurl.js","_rev":"48-17b9a31c03e93718c9f8bad555e5c066","name":"unfurl.js","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","dist-tags":{"latest":"6.4.0","beta":"5.1.1-1"},"versions":{"1.1.5":{"name":"unfurl.js","version":"1.1.5","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"index.js","standard":{"ignore":["/test/*.js","/bench/*.js"]},"dependencies":{"debug":"^2.6.3","htmlparser2":"^3.9.2","lodash":"^4.17.4","pify":"^2.3.0","request":"^2.81.0"},"devDependencies":{"chai":"^3.5.0","chai-as-promised":"^6.0.0","connect":"^3.6.1","http-server":"^0.9.0","mocha":"^2.5.3","nyc":"^10.2.0","open-graph-scraper":"^2.4.2","serve-static":"^1.12.2","standard":"^9.0.2","coveralls":"^2.11.9","istanbul":"^0.4.3","mocha-lcov-reporter":"^1.2.0"},"scripts":{"bench":"DEBUG=* node --harmony ./bench/index.js","test":"mocha ./test/**/*.js && nyc --reporter=html --reporter=text mocha && standard --fix","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","nodejs","fast"],"files":["README.md","index.js","lib/"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurled.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"5e56e8b2b181fd3b3f004aee22215ab1c4ca36d5","bugs":{"url":"https://github.com/jacktuck/unfurled/issues"},"homepage":"https://github.com/jacktuck/unfurled#readme","_id":"unfurl.js@1.1.5","_shasum":"1948dfdbce2f2c28a87b396eedd2d1dbadb60fa0","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.8.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"shasum":"1948dfdbce2f2c28a87b396eedd2d1dbadb60fa0","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-1.1.5.tgz","integrity":"sha512-p2HbKD1pu1YwjxcqXu8YNOEdEpgb3f6mYG0Bnp0j4iAyG6soq4bweInXJUNEvccM8rv/0lI1tANDlq8offAtVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxXWFdEGh8Eze1tv6i+eGb2aIMjieU9ZL2U5GNqokd5AIhAMEDmNJhKvHj7AIDbK/ld4fON0sW19P4YrKVABUSYF2M"}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/unfurl.js-1.1.5.tgz_1493401208449_0.9568270198069513"},"directories":{}},"1.1.6":{"name":"unfurl.js","version":"1.1.6","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"index.js","standard":{"ignore":["/test/*.js","/bench/*.js"]},"dependencies":{"debug":"^2.6.3","htmlparser2":"^3.9.2","lodash":"^4.17.4","pify":"^2.3.0","request":"^2.81.0"},"devDependencies":{"chai":"^3.5.0","chai-as-promised":"^6.0.0","connect":"^3.6.1","coveralls":"^2.11.9","http-server":"^0.9.0","istanbul":"^1.1.0-alpha.1","mocha":"^2.5.3","mocha-lcov-reporter":"^1.2.0","nyc":"^10.2.0","open-graph-scraper":"^2.4.2","serve-static":"^1.12.2","standard":"^9.0.2"},"scripts":{"bench":"DEBUG=bench node --harmony ./bench/index.js","test":"mocha ./test/**/*.js && nyc --reporter=html --reporter=text mocha && standard --fix","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","nodejs","fast"],"files":["README.md","index.js","lib/"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"9aa131ca79437e7f6c4738a50c99a640a231d9a6","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@1.1.6","_shasum":"2f661cbe8bf9d31b6f6ec22fe1e1a714a245c4df","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.8.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"shasum":"2f661cbe8bf9d31b6f6ec22fe1e1a714a245c4df","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-1.1.6.tgz","integrity":"sha512-rImuPiHcvHrDuZL2T0en7OI4XEmTnTxN5DZeY+kx3iQijQLV/OZc3bdjRuiQetN18RWtfOO4K0FMbFf2TZHFqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdtm60dFSdsezPvHVi1vbPuslauo9hbGlrkJJU2Nk8VQIhAPfN09s+GJKJ0OK2S5UiggwpmavZ22/Wi92RTyULmdlf"}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/unfurl.js-1.1.6.tgz_1493407531422_0.3785734842531383"},"directories":{}},"1.1.7":{"name":"unfurl.js","engines":{"node":">=7.0.0"},"version":"1.1.7","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"index.js","standard":{"ignore":["/test/*.js","/bench/*.js"]},"dependencies":{"content-type":"^1.0.4","debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.23","lodash.camelcase":"^4.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","node-fetch":"^1.7.3"},"devDependencies":{"chai":"^3.5.0","chai-as-promised":"^7.0.0","coveralls":"^3.0.0","delay":"^2.0.0","finalhandler":"^1.1.1","inliner":"^1.13.1","istanbul":"^1.1.0-alpha.1","microtime":"^2.1.7","mocha":"^4.0.0","mocha-lcov-reporter":"^1.2.0","nyc":"^11.0.1","open-graph-scraper":"^3.0.0","pify":"^2.3.0","serve":"^6.4.9","serve-static":"^1.13.2","standard":"^10.0.2"},"scripts":{"bench":"DEBUG=bench node --harmony ./bench/index.js","test":"mocha ./test/*.test.js","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha ./test/*.test.js --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"files":["index.js","lib/"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n[![pledge](https://img.shields.io/badge/community-pledge-ff69b4.svg?style=flat-square)](https://github.com/jacktuck/unfurl/blob/master/code-of-conduct.md)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_shield)\n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v7.0.0)\n\n## So, like, what does _unfurl_ even mean?\n>Spread out from a rolled or folded state\n\n## Anatomy of an unfurl\n>Unfurled previews in Slack are handy because they give everyone a glimpse of what someone linked to, letting you know if it’s helpful or not as you go about your day processing dozens of channels and reading hundreds of short messages. A preview saves lots of time throughout your day, letting you decide whether or not something is worth reading about, or better skipped over. They also help with search and your own recollection of what you’ve seen in Slack.\n\n<img width=\"400\" src=\"https://cdn-images-1.medium.com/max/1600/1*QOMaDLcO8rExD0ctBV3BWg.png\">\n\n[Image source](https://medium.com/slack-developer-blog/everything-you-ever-wanted-to-know-about-unfurling-but-were-afraid-to-ask-or-how-to-make-your-e64b4bb9254)\n\n## Install\n`npm install unfurl.js`\n\n## Usage\n\n### unfurl(url [,opts])\n\n#### url - `string` of url _or_ `object` of:\n- `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n- `baseUrl` - fully qualified uri string used as the base url\n- `headers` - http headers (default: `{ 'user-agent': 'facebookexternalhit' }`)\n\n---\n\n#### opts - `object` of:\n* `ogp` - get open graph protocol metadata (`true | false`) (default: `true`)\n* `twitter` - get twitter-card metadata (`true | false`)  (default: `true`)\n* `oembed` - get oembed metadata (`true | false`) (default: `true`)\n* `other` - get other metadata too (e.g. description and title) (`true | false`) (default: `true`)\n\n## Examples\n```js\nvar unfurl = require('unfurl.js')\n\nunfurl('https://github.com/zeit/micro')\n  .then(console.log)\n  .catch(console.error)\n```\n\n_Or if you're cool and use [ES7 async await](https://jakearchibald.com/2014/es7-async-functions/)_\n\n<img src=\"https://media.giphy.com/media/MqxZxTlvcY5BS/giphy.gif\" width=\"350\">\n\n```js\nvar unfurl = require('unfurl.js')\n\n;(async function () {\n  let result = await unfurl('https://github.com/zeit/micro')\n  console.log('result', result)\n})().catch(console.error)\n```\n\n## Try it out!\n\n```\ncurl https://unfurl.now.sh/?url=https://github.com/zeit/micro\n```\n\nCredit to [micro-unfurl](https://github.com/beeman/micro-unfurl) and [now](https://zeit.co/now)\n\n```\n{\n  \"other\": {\n    \"dnsPrefetch\": \"https://user-images.githubusercontent.com/\",\n    \"stylesheet\": \"https://assets-cdn.github.com/assets/site-92f236714908.css\",\n    \"viewport\": \"width=device-width\",\n    \"title\": \"GitHub - zeit/micro: Asynchronous HTTP microservices\\n  \",\n    \"search\": \"/opensearch.xml\",\n    \"fluidIcon\": \"https://github.com/fluidicon.png\",\n    \"fbAppId\": \"1401488693436528\",\n    \"assets\": \"https://assets-cdn.github.com/\",\n    \"pjaxTimeout\": \"1000\",\n    \"requestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"selectedLink\": \"repo_source\",\n    \"googleSiteVerification\": \"GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc\",\n    \"googleAnalytics\": \"UA-3769691-2\",\n    \"octolyticsHost\": \"collector.githubapp.com\",\n    \"octolyticsAppId\": \"github\",\n    \"octolyticsEventUrl\": \"https://collector.githubapp.com/github-external/browser_event\",\n    \"octolyticsDimensionRequestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"octolyticsDimensionRegionEdge\": \"sea\",\n    \"octolyticsDimensionRegionRender\": \"iad\",\n    \"hydroEventsUrl\": \"https://github.com/hydro_browser_events\",\n    \"analyticsLocation\": \"/<user-name>/<repo-name>\",\n    \"dimension1\": \"Logged Out\",\n    \"hostname\": \"github.com\",\n    \"expectedHostname\": \"github.com\",\n    \"jsProxySiteDetectionPayload\": \"NGEwNjkzNDk2NzRmZDQwYmM1MjEyY2FiOWNiMWNiMzJkOTRlMTQ2YTYyZTYyMTdiYjk4YTZjZWM4NmI1OTI4Nnx7InJlbW90ZV9hZGRyZXNzIjoiMTMuNTcuMTkzLjMyIiwicmVxdWVzdF9pZCI6IkEzNzg6MUUwMDozMzFBMTo0QzVGNTo1QTk3MzZFNCIsInRpbWVzdGFtcCI6MTUxOTg1OTQyOSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==\",\n    \"enabledFeatures\": \"UNIVERSE_BANNER,FREE_TRIALS,MARKETPLACE_INSIGHTS,MARKETPLACE_INSIGHTS_CONVERSION_PERCENTAGES\",\n    \"htmlSafeNonce\": \"8ce9f95a3b17cee0d064b33f1ecf193e7c1e17da\",\n    \"alternate\": \"https://github.com/zeit/micro/commits/master.atom\",\n    \"description\": \"Asynchronous HTTP microservices\",\n    \"goImport\": \"github.com/zeit/micro git https://github.com/zeit/micro.git\",\n    \"octolyticsDimensionUserId\": \"14985020\",\n    \"octolyticsDimensionUserLogin\": \"zeit\",\n    \"octolyticsDimensionRepositoryId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryPublic\": \"true\",\n    \"octolyticsDimensionRepositoryIsFork\": \"false\",\n    \"octolyticsDimensionRepositoryNetworkRootId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNetworkRootNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryExploreGithubMarketplaceCiCtaShown\": \"false\",\n    \"canonical\": \"https://github.com/zeit/micro\",\n    \"browserStatsUrl\": \"https://api.github.com/_private/browser/stats\",\n    \"browserErrorsUrl\": \"https://api.github.com/_private/browser/errors\",\n    \"maskIcon\": \"https://assets-cdn.github.com/pinned-octocat.svg\",\n    \"icon\": \"https://assets-cdn.github.com/favicon.ico\",\n    \"themeColor\": \"#1e2327\",\n    \"manifest\": \"/manifest.json\"\n  },\n  \"ogp\": {\n    \"ogImage\": [\n      {\n        \"url\": \"https://avatars3.githubusercontent.com/u/14985020?s=400&v=4\"\n      }\n    ],\n    \"ogSiteName\": \"GitHub\",\n    \"ogType\": \"object\",\n    \"ogTitle\": \"zeit/micro\",\n    \"ogUrl\": \"https://github.com/zeit/micro\",\n    \"ogDescription\": \"Asynchronous HTTP microservices\"\n  }\n}\n```\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_large)\n","readmeFilename":"README.md","gitHead":"28e1e6e77c62399074a86af8562df096554ab13e","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@1.1.7","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-u6ktyzPE6VpuXjOeJ1oGskt20X7h/FaSacHoBf+UiwHS82eAtZYKIztlbMhsuUjzFeFugyXYq34byr0oqzgaJw==","shasum":"0a9f14467ca334236bcb18ffcaf08190de36b8dc","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-1.1.7.tgz","fileCount":7,"unpackedSize":16900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbM3HOCRA9TVsSAnZWagAAEIQP/32F5IoUsJRBIIz+5Djc\nzpm8bavCJfKa0dclADQkPc5FlKINganGCmvC+P7J8Z2SXkyCyPpHMMUZm8hz\nuIvm7l9nM20dmFO00n3O1xqDbuAnroObZ5+qfqYT94ySs+qBQ2XmxkWEV4fc\nuP0Pt731Gnnw1Q56UR82qm+ke8z6/vQQoAQuYnoMqy4aFr3k/oH2NTbk2uUn\nGMVIlqgw+5KqLOPXrPwwOaxrB9tNHBY3bKNGT1J0AxRxOZh2iLQV8R5DJ8/6\neB1darxfIFe8RFrEvsWKuDmwsdM79+kio/zWrr/vgDv5rL1bSafV3gID8iUw\nxLX6O9UnmLb/HYL1GgpuSMxL0tQF4kqWcB6Sm81oLtju7hAOxEFkU0NY/wxC\nHahfy5bc9XmrSSl27rVT1LrUagMTBL0aaRR74lSZTUjcXl1IhlAXldHg3V+/\nHeXavhYakoCYlOyNolzWy1/nbemLbzzjS5z/TzmPv2pExpDpWX4jkuDHJc54\nc9HonxY5tjiu4qUTn+U7Fn7FJ/pshtVc9E31yoz9jULkZkE/C0GbKXF3wxvF\nImC8YtgznJr3GdLmo35ee77mGFyDeWQHDao9HusUVz1j3hn4uxJYAk+o6KC5\nb7zF0ifgxsqIhUD8w7VZvNcN/VWSpZhC24I5kd4VZL2TTYVlDTyxvw8dm6Yr\nmv4D\r\n=B4lq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgW9Yt2zKOwWXuRGcyAmi/wkgYRk8r+ZJ+Mr2+RdAawgIgY6X2BUvoKivU+dsdoLEhdl0w3b8/ZXeXVZ+Q/WLIjK0="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_1.1.7_1530098126818_0.8235581022269156"},"_hasShrinkwrap":false},"1.1.8-beta.2":{"name":"unfurl.js","engines":{"node":">=7.0.0"},"version":"1.1.8-beta.2","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"index.js","standard":{"ignore":["/test/*.js","/bench/*.js"]},"dependencies":{"content-type":"^1.0.4","debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.23","lodash.camelcase":"^4.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","node-fetch":"^1.7.3"},"devDependencies":{"chai":"^3.5.0","chai-as-promised":"^7.0.0","coveralls":"^3.0.0","delay":"^2.0.0","finalhandler":"^1.1.1","inliner":"^1.13.1","istanbul":"^1.1.0-alpha.1","microtime":"^2.1.7","mocha":"^4.0.0","mocha-lcov-reporter":"^1.2.0","nyc":"^11.0.1","open-graph-scraper":"^3.0.0","pify":"^2.3.0","qs":"^6.5.2","send":"^0.16.2","serve-static":"^1.13.2","standard":"^10.0.2"},"scripts":{"bench":"DEBUG=bench node --harmony ./bench/index.js","test":"mocha ./test/*.test.js","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha ./test/*.test.js --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"files":["index.js","lib/"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n[![pledge](https://img.shields.io/badge/community-pledge-ff69b4.svg?style=flat-square)](https://github.com/jacktuck/unfurl/blob/master/code-of-conduct.md)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_shield)\n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v7.0.0)\n\n## So, like, what does _unfurl_ even mean?\n>Spread out from a rolled or folded state\n\n## Anatomy of an unfurl\n>Unfurled previews in Slack are handy because they give everyone a glimpse of what someone linked to, letting you know if it’s helpful or not as you go about your day processing dozens of channels and reading hundreds of short messages. A preview saves lots of time throughout your day, letting you decide whether or not something is worth reading about, or better skipped over. They also help with search and your own recollection of what you’ve seen in Slack.\n\n<img width=\"400\" src=\"https://cdn-images-1.medium.com/max/1600/1*QOMaDLcO8rExD0ctBV3BWg.png\">\n\n[Image source](https://medium.com/slack-developer-blog/everything-you-ever-wanted-to-know-about-unfurling-but-were-afraid-to-ask-or-how-to-make-your-e64b4bb9254)\n\n## Install\n`npm install unfurl.js`\n\n## Usage\n\n### unfurl(url [,opts])\n\n#### url - `string` of url _or_ `object` of:\n- `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n- `baseUrl` - fully qualified uri string used as the base url\n- `headers` - http headers (default: `{ 'user-agent': 'facebookexternalhit' }`)\n\n---\n\n#### opts - `object` of:\n* `ogp` - get open graph protocol metadata (`true | false`) (default: `true`)\n* `twitter` - get twitter-card metadata (`true | false`)  (default: `true`)\n* `oembed` - get oembed metadata (`true | false`) (default: `true`)\n* `other` - get other metadata too (e.g. description and title) (`true | false`) (default: `true`)\n\n## Examples\n```js\nvar unfurl = require('unfurl.js')\n\nunfurl('https://github.com/zeit/micro')\n  .then(console.log)\n  .catch(console.error)\n```\n\n_Or if you're cool and use [ES7 async await](https://jakearchibald.com/2014/es7-async-functions/)_\n\n<img src=\"https://media.giphy.com/media/MqxZxTlvcY5BS/giphy.gif\" width=\"350\">\n\n```js\nvar unfurl = require('unfurl.js')\n\n;(async function () {\n  let result = await unfurl('https://github.com/zeit/micro')\n  console.log('result', result)\n})().catch(console.error)\n```\n\n## Try it out!\n\n```\ncurl https://unfurl.now.sh/?url=https://github.com/zeit/micro\n```\n\nCredit to [micro-unfurl](https://github.com/beeman/micro-unfurl) and [now](https://zeit.co/now)\n\n```\n{\n  \"other\": {\n    \"dnsPrefetch\": \"https://user-images.githubusercontent.com/\",\n    \"stylesheet\": \"https://assets-cdn.github.com/assets/site-92f236714908.css\",\n    \"viewport\": \"width=device-width\",\n    \"title\": \"GitHub - zeit/micro: Asynchronous HTTP microservices\\n  \",\n    \"search\": \"/opensearch.xml\",\n    \"fluidIcon\": \"https://github.com/fluidicon.png\",\n    \"fbAppId\": \"1401488693436528\",\n    \"assets\": \"https://assets-cdn.github.com/\",\n    \"pjaxTimeout\": \"1000\",\n    \"requestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"selectedLink\": \"repo_source\",\n    \"googleSiteVerification\": \"GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc\",\n    \"googleAnalytics\": \"UA-3769691-2\",\n    \"octolyticsHost\": \"collector.githubapp.com\",\n    \"octolyticsAppId\": \"github\",\n    \"octolyticsEventUrl\": \"https://collector.githubapp.com/github-external/browser_event\",\n    \"octolyticsDimensionRequestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"octolyticsDimensionRegionEdge\": \"sea\",\n    \"octolyticsDimensionRegionRender\": \"iad\",\n    \"hydroEventsUrl\": \"https://github.com/hydro_browser_events\",\n    \"analyticsLocation\": \"/<user-name>/<repo-name>\",\n    \"dimension1\": \"Logged Out\",\n    \"hostname\": \"github.com\",\n    \"expectedHostname\": \"github.com\",\n    \"jsProxySiteDetectionPayload\": \"NGEwNjkzNDk2NzRmZDQwYmM1MjEyY2FiOWNiMWNiMzJkOTRlMTQ2YTYyZTYyMTdiYjk4YTZjZWM4NmI1OTI4Nnx7InJlbW90ZV9hZGRyZXNzIjoiMTMuNTcuMTkzLjMyIiwicmVxdWVzdF9pZCI6IkEzNzg6MUUwMDozMzFBMTo0QzVGNTo1QTk3MzZFNCIsInRpbWVzdGFtcCI6MTUxOTg1OTQyOSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==\",\n    \"enabledFeatures\": \"UNIVERSE_BANNER,FREE_TRIALS,MARKETPLACE_INSIGHTS,MARKETPLACE_INSIGHTS_CONVERSION_PERCENTAGES\",\n    \"htmlSafeNonce\": \"8ce9f95a3b17cee0d064b33f1ecf193e7c1e17da\",\n    \"alternate\": \"https://github.com/zeit/micro/commits/master.atom\",\n    \"description\": \"Asynchronous HTTP microservices\",\n    \"goImport\": \"github.com/zeit/micro git https://github.com/zeit/micro.git\",\n    \"octolyticsDimensionUserId\": \"14985020\",\n    \"octolyticsDimensionUserLogin\": \"zeit\",\n    \"octolyticsDimensionRepositoryId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryPublic\": \"true\",\n    \"octolyticsDimensionRepositoryIsFork\": \"false\",\n    \"octolyticsDimensionRepositoryNetworkRootId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNetworkRootNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryExploreGithubMarketplaceCiCtaShown\": \"false\",\n    \"canonical\": \"https://github.com/zeit/micro\",\n    \"browserStatsUrl\": \"https://api.github.com/_private/browser/stats\",\n    \"browserErrorsUrl\": \"https://api.github.com/_private/browser/errors\",\n    \"maskIcon\": \"https://assets-cdn.github.com/pinned-octocat.svg\",\n    \"icon\": \"https://assets-cdn.github.com/favicon.ico\",\n    \"themeColor\": \"#1e2327\",\n    \"manifest\": \"/manifest.json\"\n  },\n  \"ogp\": {\n    \"ogImage\": [\n      {\n        \"url\": \"https://avatars3.githubusercontent.com/u/14985020?s=400&v=4\"\n      }\n    ],\n    \"ogSiteName\": \"GitHub\",\n    \"ogType\": \"object\",\n    \"ogTitle\": \"zeit/micro\",\n    \"ogUrl\": \"https://github.com/zeit/micro\",\n    \"ogDescription\": \"Asynchronous HTTP microservices\"\n  }\n}\n```\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_large)\n","readmeFilename":"README.md","gitHead":"b85a3e116c91d2272971eae97b18e72ae53652f3","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@1.1.8-beta.2","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-P1L963AvUA2ughK0NZ6T+kgTlPgMVyJzwxGPvlEqOs3mFJMZnyUfqPAEcWnv5uRC+7cLmRyHzIsCpzy34JC4RQ==","shasum":"52ffe48a5671adc280a4fbdedc59911fd056b315","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-1.1.8-beta.2.tgz","fileCount":7,"unpackedSize":17542,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRehBCRA9TVsSAnZWagAAbt8P/Akt0NQ3ud5n8pmfLEmx\nwzbRVu+mVSWswi8awDH25JwRttc2bsSkAKiksksRBLzUoGrhcR5Xit7X9eAz\nMTt4Zu7c8mAptw53l4LfJURQ9GEBbSrjqMS4JGkjS0f6wy+HnYczMqi62gAl\nMDdxG1uxy4kWekfIl2NNBZZcEkB/M9vdSri1aXSGvnjg0VNdiqQ7XGlPlrAs\nKElWXp7siJa7KP+Wtamg9evtdfZYiBegdoFtGAMtcjBab9f7QtdsCDmmUT6B\nrKgPrFfnBqY/C7+vpML5u3R6Yc/eNfPbNgJ2cZP2fwo4eEILC8o1YK7Md1Gz\n3JF5svzF/zkkl0wN4SZIPMuUzb3tAZgT8OS4Ne2Bg8Kb23myBWvWiTBx+GiI\nggvRHYjShx09nG6Wlu/dqhFFXDgG0FNyCcLoAFoxT+Ippu3r8d40dFCie7cz\n9wNLVZK5m2A71NHk69ucFUsjpe83T8nfpvjGi8w3VymNPK3BiM4NMp6UBNYj\nYk5P08MYYxVbMXqYPDHL9eB9tbhhH5ph78qPx14tXHUMwTC84vkdXk16fIik\nnI6Y4qr+hKzQUUqW1ALAfAwbjm2ngpvB1y5PjTvhkcLTL9yi+ZrxQXwYy1JK\nyezokCue14+r+ZZRRp7D3h79fFzyooXlX2gcFr4p9ukX491Xypn8/pcr6+Cp\nQQUl\r\n=6okU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB47swqkS58CtJfi3u63wTEvnRHgFzC4i0TyTx1w9JEBAiB5QENV0YdtbzD+peN+o4nMSR3FYWiF6guYQbP26ILX3w=="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_1.1.8-beta.2_1531308097309_0.9049874810812244"},"_hasShrinkwrap":false},"1.1.8-beta.3":{"name":"unfurl.js","engines":{"node":">=7.0.0"},"version":"1.1.8-beta.3","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"index.js","standard":{"ignore":["/test/*.js","/bench/*.js"]},"dependencies":{"content-type":"^1.0.4","debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.23","lodash.camelcase":"^4.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","node-fetch":"^1.7.3"},"devDependencies":{"chai":"^3.5.0","chai-as-promised":"^7.0.0","coveralls":"^3.0.0","delay":"^2.0.0","finalhandler":"^1.1.1","inliner":"^1.13.1","istanbul":"^1.1.0-alpha.1","microtime":"^2.1.7","mocha":"^4.0.0","mocha-lcov-reporter":"^1.2.0","nyc":"^11.0.1","open-graph-scraper":"^3.0.0","pify":"^2.3.0","qs":"^6.5.2","send":"^0.16.2","serve-static":"^1.13.2","standard":"^10.0.2"},"scripts":{"bench":"DEBUG=bench node --harmony ./bench/index.js","test":"mocha ./test/*.test.js","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha ./test/*.test.js --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"files":["index.js","lib/"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n[![pledge](https://img.shields.io/badge/community-pledge-ff69b4.svg?style=flat-square)](https://github.com/jacktuck/unfurl/blob/master/code-of-conduct.md)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_shield)\n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v7.0.0)\n\n## So, like, what does _unfurl_ even mean?\n>Spread out from a rolled or folded state\n\n## Anatomy of an unfurl\n>Unfurled previews in Slack are handy because they give everyone a glimpse of what someone linked to, letting you know if it’s helpful or not as you go about your day processing dozens of channels and reading hundreds of short messages. A preview saves lots of time throughout your day, letting you decide whether or not something is worth reading about, or better skipped over. They also help with search and your own recollection of what you’ve seen in Slack.\n\n<img width=\"400\" src=\"https://cdn-images-1.medium.com/max/1600/1*QOMaDLcO8rExD0ctBV3BWg.png\">\n\n[Image source](https://medium.com/slack-developer-blog/everything-you-ever-wanted-to-know-about-unfurling-but-were-afraid-to-ask-or-how-to-make-your-e64b4bb9254)\n\n## Install\n`npm install unfurl.js`\n\n## Usage\n\n### unfurl(url [,opts])\n\n#### url - `string` of url _or_ `object` of:\n- `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n- `baseUrl` - fully qualified uri string used as the base url\n- `headers` - http headers (default: `{ 'user-agent': 'facebookexternalhit' }`)\n\n---\n\n#### opts - `object` of:\n* `ogp` - get open graph protocol metadata (`true | false`) (default: `true`)\n* `twitter` - get twitter-card metadata (`true | false`)  (default: `true`)\n* `oembed` - get oembed metadata (`true | false`) (default: `true`)\n* `other` - get other metadata too (e.g. description and title) (`true | false`) (default: `true`)\n\n## Examples\n```js\nvar unfurl = require('unfurl.js')\n\nunfurl('https://github.com/zeit/micro')\n  .then(console.log)\n  .catch(console.error)\n```\n\n_Or if you're cool and use [ES7 async await](https://jakearchibald.com/2014/es7-async-functions/)_\n\n<img src=\"https://media.giphy.com/media/MqxZxTlvcY5BS/giphy.gif\" width=\"350\">\n\n```js\nvar unfurl = require('unfurl.js')\n\n;(async function () {\n  let result = await unfurl('https://github.com/zeit/micro')\n  console.log('result', result)\n})().catch(console.error)\n```\n\n## Try it out!\n\n```\ncurl https://unfurl.now.sh/?url=https://github.com/zeit/micro\n```\n\nCredit to [micro-unfurl](https://github.com/beeman/micro-unfurl) and [now](https://zeit.co/now)\n\n```\n{\n  \"other\": {\n    \"dnsPrefetch\": \"https://user-images.githubusercontent.com/\",\n    \"stylesheet\": \"https://assets-cdn.github.com/assets/site-92f236714908.css\",\n    \"viewport\": \"width=device-width\",\n    \"title\": \"GitHub - zeit/micro: Asynchronous HTTP microservices\\n  \",\n    \"search\": \"/opensearch.xml\",\n    \"fluidIcon\": \"https://github.com/fluidicon.png\",\n    \"fbAppId\": \"1401488693436528\",\n    \"assets\": \"https://assets-cdn.github.com/\",\n    \"pjaxTimeout\": \"1000\",\n    \"requestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"selectedLink\": \"repo_source\",\n    \"googleSiteVerification\": \"GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc\",\n    \"googleAnalytics\": \"UA-3769691-2\",\n    \"octolyticsHost\": \"collector.githubapp.com\",\n    \"octolyticsAppId\": \"github\",\n    \"octolyticsEventUrl\": \"https://collector.githubapp.com/github-external/browser_event\",\n    \"octolyticsDimensionRequestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"octolyticsDimensionRegionEdge\": \"sea\",\n    \"octolyticsDimensionRegionRender\": \"iad\",\n    \"hydroEventsUrl\": \"https://github.com/hydro_browser_events\",\n    \"analyticsLocation\": \"/<user-name>/<repo-name>\",\n    \"dimension1\": \"Logged Out\",\n    \"hostname\": \"github.com\",\n    \"expectedHostname\": \"github.com\",\n    \"jsProxySiteDetectionPayload\": \"NGEwNjkzNDk2NzRmZDQwYmM1MjEyY2FiOWNiMWNiMzJkOTRlMTQ2YTYyZTYyMTdiYjk4YTZjZWM4NmI1OTI4Nnx7InJlbW90ZV9hZGRyZXNzIjoiMTMuNTcuMTkzLjMyIiwicmVxdWVzdF9pZCI6IkEzNzg6MUUwMDozMzFBMTo0QzVGNTo1QTk3MzZFNCIsInRpbWVzdGFtcCI6MTUxOTg1OTQyOSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==\",\n    \"enabledFeatures\": \"UNIVERSE_BANNER,FREE_TRIALS,MARKETPLACE_INSIGHTS,MARKETPLACE_INSIGHTS_CONVERSION_PERCENTAGES\",\n    \"htmlSafeNonce\": \"8ce9f95a3b17cee0d064b33f1ecf193e7c1e17da\",\n    \"alternate\": \"https://github.com/zeit/micro/commits/master.atom\",\n    \"description\": \"Asynchronous HTTP microservices\",\n    \"goImport\": \"github.com/zeit/micro git https://github.com/zeit/micro.git\",\n    \"octolyticsDimensionUserId\": \"14985020\",\n    \"octolyticsDimensionUserLogin\": \"zeit\",\n    \"octolyticsDimensionRepositoryId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryPublic\": \"true\",\n    \"octolyticsDimensionRepositoryIsFork\": \"false\",\n    \"octolyticsDimensionRepositoryNetworkRootId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNetworkRootNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryExploreGithubMarketplaceCiCtaShown\": \"false\",\n    \"canonical\": \"https://github.com/zeit/micro\",\n    \"browserStatsUrl\": \"https://api.github.com/_private/browser/stats\",\n    \"browserErrorsUrl\": \"https://api.github.com/_private/browser/errors\",\n    \"maskIcon\": \"https://assets-cdn.github.com/pinned-octocat.svg\",\n    \"icon\": \"https://assets-cdn.github.com/favicon.ico\",\n    \"themeColor\": \"#1e2327\",\n    \"manifest\": \"/manifest.json\"\n  },\n  \"ogp\": {\n    \"ogImage\": [\n      {\n        \"url\": \"https://avatars3.githubusercontent.com/u/14985020?s=400&v=4\"\n      }\n    ],\n    \"ogSiteName\": \"GitHub\",\n    \"ogType\": \"object\",\n    \"ogTitle\": \"zeit/micro\",\n    \"ogUrl\": \"https://github.com/zeit/micro\",\n    \"ogDescription\": \"Asynchronous HTTP microservices\"\n  }\n}\n```\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_large)\n","readmeFilename":"README.md","gitHead":"3169532bb9ec07a813f0b727cef6cbc2be41a198","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@1.1.8-beta.3","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-AQGJ82JEWwCfioNvdSLbCSJkRMAyv5fufW+1G19xa3I7Il8iF7DTIypdpDi/Pla9xtSLI3YvnzVgn6sv3q1+vw==","shasum":"fb425ccffa3b7e3ce0f2a40239bdfbc85a5c7034","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-1.1.8-beta.3.tgz","fileCount":7,"unpackedSize":17606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbu9XCRA9TVsSAnZWagAApUMQAIpNOPDqPCkUI38GCzL9\nAZvlBQlqkAN4FroIcyYsMDbdzmLa/CE+28/QCQm3jEPWKc6ozvOxKG+cdQbo\nr4p2YaBYdXVKQr0XeC4kGC49l16CEGFZ0A2U6bNdL7CPyBihZY+CGfyTfpW2\nRW8nyreHrzB5hFB860csDkvHPFaf0TJ5kAtadd5t741CuaMh/vN2AM/Cu6Bk\n9Oneq0mOAt47HvMFtaLcYYe3PJ4Jt0NSYUBfBfXI+wMKSam1sutR17iqvnpZ\niO4nVToxkSddAMh4US49nrHH/RQ+7Abk08c/4zyEWQx7XtHBU7uG28J0rloF\nmXRrrKWNGiYKBCZ8W35dDfkczOyuIKwN81vFmqQDo+zmxFTaZv53mcQfFtqS\npvKux9r9D9OKCtVZSeuuS9RfC+MiKtsGxv/PI/tsJqz5vfq5eVE2NWcUzwXD\n+uwrGN9NtXAbUG6BCKsyDdz0YxhNBSmS+ZWRSNeMPMMa47GQ6xwaVYWjZQC8\nBDOFeoH7y1/GNa7RQ3VtbpUtCoQpJPYn+mx72+MwAsdLh6MKuioeAQ2qmqOC\nXvXnYaB+5GANDZlavec0kzAkrkkDBgp58Ml/3ar2VDiPPHrxN/JKQoWVXj7v\n16oHNWK/Tyvb+qKc2iF2HWKNrLX+LkcB6poEk2cIseJM9+70CtXZurewkMaC\nuDE/\r\n=v7T6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoe7VSWHZX72PRoyEF7MZWiU0DB4IAuCETvsI6JZkjxQIhAO5FAK//LccMAwmhAn0Es0zLiHwuhr8Zx1fpXxKgTzNu"}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_1.1.8-beta.3_1533996887060_0.1813053342192954"},"_hasShrinkwrap":false},"1.1.8-beta.4":{"name":"unfurl.js","engines":{"node":">=7.0.0"},"version":"1.1.8-beta.4","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"index.js","standard":{"ignore":["/test/*.js","/bench/*.js"]},"dependencies":{"content-type":"^1.0.4","debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.23","lodash.camelcase":"^4.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","node-fetch":"^1.7.3"},"devDependencies":{"chai":"^3.5.0","chai-as-promised":"^7.0.0","coveralls":"^3.0.0","delay":"^2.0.0","finalhandler":"^1.1.1","inliner":"^1.13.1","istanbul":"^1.1.0-alpha.1","microtime":"^2.1.7","mocha":"^4.0.0","mocha-lcov-reporter":"^1.2.0","nyc":"^11.0.1","open-graph-scraper":"^3.0.0","pify":"^2.3.0","qs":"^6.5.2","send":"^0.16.2","serve-static":"^1.13.2","standard":"^10.0.2"},"scripts":{"bench":"DEBUG=bench node --harmony ./bench/index.js","test":"mocha ./test/*.test.js","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha ./test/*.test.js --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n[![pledge](https://img.shields.io/badge/community-pledge-ff69b4.svg?style=flat-square)](https://github.com/jacktuck/unfurl/blob/master/code-of-conduct.md)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_shield)\n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v7.0.0)\n\n## So, like, what does _unfurl_ even mean?\n>Spread out from a rolled or folded state\n\n## Anatomy of an unfurl\n>Unfurled previews in Slack are handy because they give everyone a glimpse of what someone linked to, letting you know if it’s helpful or not as you go about your day processing dozens of channels and reading hundreds of short messages. A preview saves lots of time throughout your day, letting you decide whether or not something is worth reading about, or better skipped over. They also help with search and your own recollection of what you’ve seen in Slack.\n\n<img width=\"400\" src=\"https://cdn-images-1.medium.com/max/1600/1*QOMaDLcO8rExD0ctBV3BWg.png\">\n\n[Image source](https://medium.com/slack-developer-blog/everything-you-ever-wanted-to-know-about-unfurling-but-were-afraid-to-ask-or-how-to-make-your-e64b4bb9254)\n\n## Install\n`npm install unfurl.js`\n\n## Usage\n\n### unfurl(url [,opts])\n\n#### url - `string` of url _or_ `object` of:\n- `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n- `baseUrl` - fully qualified uri string used as the base url\n- `headers` - http headers (default: `{ 'user-agent': 'facebookexternalhit' }`)\n\n---\n\n#### opts - `object` of:\n* `ogp` - get open graph protocol metadata (`true | false`) (default: `true`)\n* `twitter` - get twitter-card metadata (`true | false`)  (default: `true`)\n* `oembed` - get oembed metadata (`true | false`) (default: `true`)\n* `other` - get other metadata too (e.g. description and title) (`true | false`) (default: `true`)\n\n## Examples\n```js\nvar unfurl = require('unfurl.js')\n\nunfurl('https://github.com/zeit/micro')\n  .then(console.log)\n  .catch(console.error)\n```\n\n_Or if you're cool and use [ES7 async await](https://jakearchibald.com/2014/es7-async-functions/)_\n\n<img src=\"https://media.giphy.com/media/MqxZxTlvcY5BS/giphy.gif\" width=\"350\">\n\n```js\nvar unfurl = require('unfurl.js')\n\n;(async function () {\n  let result = await unfurl('https://github.com/zeit/micro')\n  console.log('result', result)\n})().catch(console.error)\n```\n\n## Try it out!\n\n```\ncurl https://unfurl.now.sh/?url=https://github.com/zeit/micro\n```\n\nCredit to [micro-unfurl](https://github.com/beeman/micro-unfurl) and [now](https://zeit.co/now)\n\n```\n{\n  \"other\": {\n    \"dnsPrefetch\": \"https://user-images.githubusercontent.com/\",\n    \"stylesheet\": \"https://assets-cdn.github.com/assets/site-92f236714908.css\",\n    \"viewport\": \"width=device-width\",\n    \"title\": \"GitHub - zeit/micro: Asynchronous HTTP microservices\\n  \",\n    \"search\": \"/opensearch.xml\",\n    \"fluidIcon\": \"https://github.com/fluidicon.png\",\n    \"fbAppId\": \"1401488693436528\",\n    \"assets\": \"https://assets-cdn.github.com/\",\n    \"pjaxTimeout\": \"1000\",\n    \"requestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"selectedLink\": \"repo_source\",\n    \"googleSiteVerification\": \"GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc\",\n    \"googleAnalytics\": \"UA-3769691-2\",\n    \"octolyticsHost\": \"collector.githubapp.com\",\n    \"octolyticsAppId\": \"github\",\n    \"octolyticsEventUrl\": \"https://collector.githubapp.com/github-external/browser_event\",\n    \"octolyticsDimensionRequestId\": \"A378:1E00:331A1:4C5F5:5A9736E4\",\n    \"octolyticsDimensionRegionEdge\": \"sea\",\n    \"octolyticsDimensionRegionRender\": \"iad\",\n    \"hydroEventsUrl\": \"https://github.com/hydro_browser_events\",\n    \"analyticsLocation\": \"/<user-name>/<repo-name>\",\n    \"dimension1\": \"Logged Out\",\n    \"hostname\": \"github.com\",\n    \"expectedHostname\": \"github.com\",\n    \"jsProxySiteDetectionPayload\": \"NGEwNjkzNDk2NzRmZDQwYmM1MjEyY2FiOWNiMWNiMzJkOTRlMTQ2YTYyZTYyMTdiYjk4YTZjZWM4NmI1OTI4Nnx7InJlbW90ZV9hZGRyZXNzIjoiMTMuNTcuMTkzLjMyIiwicmVxdWVzdF9pZCI6IkEzNzg6MUUwMDozMzFBMTo0QzVGNTo1QTk3MzZFNCIsInRpbWVzdGFtcCI6MTUxOTg1OTQyOSwiaG9zdCI6ImdpdGh1Yi5jb20ifQ==\",\n    \"enabledFeatures\": \"UNIVERSE_BANNER,FREE_TRIALS,MARKETPLACE_INSIGHTS,MARKETPLACE_INSIGHTS_CONVERSION_PERCENTAGES\",\n    \"htmlSafeNonce\": \"8ce9f95a3b17cee0d064b33f1ecf193e7c1e17da\",\n    \"alternate\": \"https://github.com/zeit/micro/commits/master.atom\",\n    \"description\": \"Asynchronous HTTP microservices\",\n    \"goImport\": \"github.com/zeit/micro git https://github.com/zeit/micro.git\",\n    \"octolyticsDimensionUserId\": \"14985020\",\n    \"octolyticsDimensionUserLogin\": \"zeit\",\n    \"octolyticsDimensionRepositoryId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryPublic\": \"true\",\n    \"octolyticsDimensionRepositoryIsFork\": \"false\",\n    \"octolyticsDimensionRepositoryNetworkRootId\": \"50224698\",\n    \"octolyticsDimensionRepositoryNetworkRootNwo\": \"zeit/micro\",\n    \"octolyticsDimensionRepositoryExploreGithubMarketplaceCiCtaShown\": \"false\",\n    \"canonical\": \"https://github.com/zeit/micro\",\n    \"browserStatsUrl\": \"https://api.github.com/_private/browser/stats\",\n    \"browserErrorsUrl\": \"https://api.github.com/_private/browser/errors\",\n    \"maskIcon\": \"https://assets-cdn.github.com/pinned-octocat.svg\",\n    \"icon\": \"https://assets-cdn.github.com/favicon.ico\",\n    \"themeColor\": \"#1e2327\",\n    \"manifest\": \"/manifest.json\"\n  },\n  \"ogp\": {\n    \"ogImage\": [\n      {\n        \"url\": \"https://avatars3.githubusercontent.com/u/14985020?s=400&v=4\"\n      }\n    ],\n    \"ogSiteName\": \"GitHub\",\n    \"ogType\": \"object\",\n    \"ogTitle\": \"zeit/micro\",\n    \"ogUrl\": \"https://github.com/zeit/micro\",\n    \"ogDescription\": \"Asynchronous HTTP microservices\"\n  }\n}\n```\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjacktuck%2Funfurl?ref=badge_large)\n","readmeFilename":"README.md","gitHead":"eada3104e6003d30e455d142b70d59f1e3109696","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@1.1.8-beta.4","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-JjFWJLD4T3EQzATkz/y3s+kROfNrH5GiDs+eU0RFdaTgPV1m9U+LgsBz4kM0AiFlLz9F6o9CI1BhP7gYYmjfvw==","shasum":"05c1b7da313c81d2245d7d14ebea71e2dff90de2","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-1.1.8-beta.4.tgz","fileCount":7,"unpackedSize":17524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmiODCRA9TVsSAnZWagAAK50P/RFBx3/EYfiFwoh4vrDO\niYxivSxL1uPxstzVp7rRJhhkjvDYd/jQzSrJYAknJq0jbYd57blr6cnRaxVV\nE1nPg+QlQ/pxqAv1sCeR/UA9o4tFExwiAi7Cnpen4bC+4kqj706+VV+h7gY7\nHW9JFyN2LzqpKp7BVU7zJM0KR4qnVJwTXH8s3f80c1iqvCmxvo0N01skgjOA\n2xorYZ2gaRJW6GNNsWvUNvEJSbJKmMNjkAJx4IuulUpB4iNWGAQr5md2Y8J8\nxjdUfyseOh6rdPB/IWb6HV1bZcdQ1TghbP4dqpbqBy2ZcIpSNkhpbXiCwP6Z\ndcq7EKq/lOteFMn1gbLCX3b94tIHIpd7RXuXHYcH8sXqehRZH/kRm0nDwo6W\nXWnHMfXm+1aBJ0NkjTTxnKtX6d4n/ZSGEYZ2GUFyZo2tbyuSo4FdP57SrQMe\nK6uxINy/E2j+ucZjfG0hPMmgqXT9EzC4f7pcHlxR1TF3+HQsP/9A/7VInPKv\nd24BOK1+lUK8J0NbIw+/KTCJXMyN6OpeRtDfJDkFiTarADkeLK94m3XpEEVt\nsS7kMOmtFuDh7pZWGpN+McLgf2raTbC1P78Qx4Fe5eugRKUCZeEL1gZoJ2Qa\n9Q0Ajn7ofCCDoBQ4duDsEsXk5UxHxw6Oo12xRcvS8q1G+RYy/eLEghjzda+i\nnCw1\r\n=zmJQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+rTmQFZfOTHhjN9qbgE62Y1QeYHJNpbgdjgjCeFVR2AIgT61FVfos75m/WvtwMnj0zrxgNtTN3jeuS+8HapfG0HI="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_1.1.8-beta.4_1536828291349_0.7168432492512675"},"_hasShrinkwrap":false},"2.0.0-0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"2.0.0-0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","standard":{"ignore":["/test/*.js","/bench/*.js"]},"dependencies":{"debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.2.0","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.2","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","tape":"^4.9.1","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 disable_source_map=true jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 disable_source_map=true jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v6.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retreiving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `agent?: string | null` - http(s).Agent instance, allows custom proxy, certificate, lookup, family etc.\n---\n#\n```typescript\nconst unfurl = require('./unfurl.js')\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"8b19a02d9fa34e97025f3e4b27574d4b36a26d7d","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@2.0.0-0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-c7Z5Q5NaymI1V/Z8HGxLYc+7rjJvlaAOiMRR4mrOiYxLJw+vmYThE2jEe6UV3O2xY28t5ecuAAP7Vch2Vcf+oA==","shasum":"2b37ea9384d712bab7cc32d0eb904da86cf96ada","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-2.0.0-0.tgz","fileCount":50,"unpackedSize":111084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbotH/CRA9TVsSAnZWagAAWTQP+wfTqQuzJ1cbKnmAb3Ib\nVomjIvwd/uPJpqtDBi8yWlYmBWQiwOLpcqZ5dHMcD7nHWNbiVBo1/+Ip7k1a\n/+hXiHfHA44KybJR4eiwoj5K+rOSdgHBYPrQKHJE6OqG25hyT3pgxiCc1lcM\nagpLpVp1ecjYjH9OJe4vEc2XijueLa9KFW/heR89+xV5l5+yYFkh/GNBVw6w\n730rOYwU+L0+mTyQWMBpW1Sqb5HcwiLaRf5PLHeZdTpJvpjd87GpJZ2OCvIv\nEz4+LY+XocdBl0Nl+3axnp0eLbhCckGH4O9cKjDyz4toIEeEP/VERHU1jUpz\nFtGn1NFKqpTL9auUgDl0sviommD+L1C+ooKY2JWBT25tlK/04LSY1fI6ucSI\nRxTyKZs2H8QSJm8vzvKrewqslqBDu70o6hiBtZvagc3/DKVNyHhK1aAZdBJw\nwq1l/62Y01puTCtCw3GPFtoIeb/7J+qYVIF8axrKgfye6VuR7abN/KETN9Iu\nAvA1sGK7FdaYMAeNcHsTytcjH9GRuAx1MJ09suGGx5+1Zk6tpGUgk6DzPo0q\nAKYOYW4jULbjTfijFutcrowz8PWMY1Z+gyYHoVfO+LwJrIgGzKE+KIZ6imAq\nKEuy1qQ8Mo+IOymvlUzKHiCCL2DgKRTh+1akifsoj0q/UhYdwFld/IKBwWlv\n94zk\r\n=jqgC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQ3WnK5qLsc4/fe12aphVKd4djZm+1T5GKyictYHZopwIgA6GUIis0St6GIMZ/wJ420t5hYpTrsK7cf/fmyRNDDug="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_2.0.0-0_1537397246128_0.9839216355755949"},"_hasShrinkwrap":false},"2.0.1-0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"2.0.1-0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.2.0","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.2","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","tape":"^4.9.1","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 disable_source_map=true jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 disable_source_map=true jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v6.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retreiving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `agent?: string | null` - http(s).Agent instance, allows custom proxy, certificate, lookup, family etc.\n---\n#\n```typescript\nconst unfurl = require('./unfurl.js')\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"a3aea76838762a474dfb88e23378f4f8cd5bc606","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@2.0.1-0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-tazKy4fPINI/znPT3MANTRPEjjcavakQ3TLsLFp+ndqdFLB19OamKsMl3Oo0fQLHsvBzuP3ob9Tll1IlWi3HPg==","shasum":"5750231a26e3fc32c06b3f045eccde87f652a856","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-2.0.1-0.tgz","fileCount":50,"unpackedSize":108492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbotQgCRA9TVsSAnZWagAAwdQP/2hvHgy/sI12s3a0Jllz\n8Zc/CSbh8sk4F/SUD/JlQQCqAZSq101yZp3IsRDhrBgVl06YEGi+VFfxVKuI\n3ki+Al3rAhLCkNIOjsDwTLK20KXvCsP5MmjVPFNZLln2SZtHNgeREpbYBowM\nxojwNPQDmSJaehUMx2JQn/gfAfl6LPxmDB5KnrgxJGPygSPUkpAz/NLSd90L\nHV0XKxs+Wpk0/pBCTS6weR8cvFuVy1Qhh0hHaKnrp07M1ONddVF7hYykH2ss\n+jh8nRiiw8NBi7b3FE2SeE1w03DAtAGqgxjcDwlB0EzOs+oIeIxqS/xdHhL0\nj7CbQDXzA8PtRfMJz+4JBnieG9m6icJBx+VLcFX+PKwBo2WEgpmJxIJ+CBT3\ngz5XAIZkndv7BJl/a/rlcQAEHAlo7oGr3J4Mw+FHL+En5f2Q0fUGXjQ8HzcG\nw9otz7xMUCxv5JYDG/hFA7BNE6B1NlSFki4+Pa2LxRygEi5LLL7RQdM5R+uH\nHO7fvY++YfaA88hGDe19OD/GxPstZ36/XKYdmrpkWIi8j9ekXjCkXd+M5NaZ\nUXl1WMv7vsl0n5oRufrbz2y8mIwAG2mAlMLVS6q1+6R2xM3cHS/HDsgy9cWW\nT9A6WYKLXFNCyOBJvSHhO2oRYI5yoC0jvcG3nTh5IcPuImtVjsTXpdqVpJKA\nAQGn\r\n=bR3b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAc/N+pnnMqpVZD0zD30ip0FsdVlQM1mByi4+9unWAzTAiEApv8jVZXRnAbxd4s+ZUF4r0E86XlshqXsS8pAz9DJRB8="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_2.0.1-0_1537397791413_0.4430800681365057"},"_hasShrinkwrap":false},"2.0.2-0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"2.0.2-0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.2.0","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.2","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v6.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retreiving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `agent?: string | null` - http(s).Agent instance, allows custom proxy, certificate, lookup, family etc.\n---\n#\n```typescript\nconst unfurl = require('./unfurl.js')\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"b4cadde75810fd6bdb467269891d34e6de375a04","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@2.0.2-0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-tBYStyMuc0EBhh+tL52dDkSBRG+5x3UemvPJS17OnrKfc6yyRNoSCicAVpmqPUZlaCLjoLT8Eugh/nEIV3SqWw==","shasum":"3cbf79e6fb87743bcb60110b0ae6d3850590338c","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-2.0.2-0.tgz","fileCount":50,"unpackedSize":103732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbo3udCRA9TVsSAnZWagAAXxkP/RjhKkKkweQJXMOCt/YS\n/MoABbHJxdK5dNCDreRy2bxV0owfOORs8WkGY1UmwaciefF7HwzMLYwqdPMq\nxb7gAmRwa4OctWlVgDbMf73tsC6X4Gij++z3sf81JEj2XITlG5sAj9YmNcyp\n1D20w4goAifOl55qaM2vSGspcf3xPrmAW7O5/ZC+i0ziVcViYxPt9/fgE78w\nR9MvX4o5Ncspki6rWRdKgY9OB+5Zl6PDISUrPEAOG31bnn8uw9+SS95gC9UU\nRwrVpsDNn/DQwsp/XWspk36bmmIUJcX+oEjTqq7wgrO3UG0xiWm6IorQRGzz\nVzVR4bjogtDx+3spzCLGqu6qzBUchtvOkHF377JhxL2kIyHfz9ej92S7pRiP\nlIUil7G7f6c1sOtaX/uQosmsbGAjxxR2h58r6ZO7LhjBlVVRDJFNTwliUrg9\n5tcCwNvQGwELPnvjXNTN4gGZTEb9lUIMm3maYdrSki9ORN9VfLQ9TZG5D6oH\n/Tej1FOXwNHQYR1KAJqPH3nxgj1DQUo+ZmLAM51TgLqaorv0maqgoBjPeMFB\nupDSnBEXFtvaPHCpYoaOnw+v3z69ICQzRVjM6GuO2sePAt7URVH/V7bqxznh\noIke4vR2Ej+H9YgsyP2JB7VZhQN7BBgZWgH2cnqHyAC4Sykdn8+H433HhYl3\nobw8\r\n=4Dke\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFaQVNVXxarGl+zYA6wFiNodNoWyI9TS7/wJEL2fr9CwIgZ8w69ihmE9uEvTsnb9+kFxINVGCcwwHL2Bz9yH/HVVs="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_2.0.2-0_1537440668646_0.4055823943487624"},"_hasShrinkwrap":false},"2.0.3-0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"2.0.3-0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.2.0","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.2","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v6.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retreiving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `agent?: string | null` - http(s).Agent instance, allows custom proxy, certificate, lookup, family etc.\n---\n#\n```typescript\nconst unfurl = require('./unfurl.js')\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"f52547431f1fa2aa703bc98fbd46ea3f83592f49","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@2.0.3-0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-Ul0VzAepP1t+ctzTN0WLfVrZ8f8r+iJt1KaCTRxXCIRlNvqUSaU7/7fxqA6j6GWUxm8tIb9aUuazlT8CauFzTQ==","shasum":"2b2062c2f177db4c6a84946d33ec827bcfabe3bd","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-2.0.3-0.tgz","fileCount":61,"unpackedSize":112163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbo64aCRA9TVsSAnZWagAA2okP/3R57M24uzMJ6p3HcZl5\nHncEOXv6bUL4uBrpFCNp8SH1LXW3W8RvaU27NGcWMsGL/UzzFqJT7nU0EefD\nwDKsIehseG2KbXfHKeAachLY+u/WnEYBAsByrWH9SFo/nfzUD6ClU+XnIxha\n7RGPkgxVdpF4WZIWBIlbYW/oZeAGUUv8oT8h6T/srTmipE6yo4B3ZT8q1clx\n+Dee+h+yzOlvITPKn1KPySHuGYw+e/cJnBwYPaLPmH7jnKbt3EppW5wkNTzB\n7Xxm7gcZpvEdbVLzOK/IwXYYUfrfKOk7d0nwuzc82c0wZTMuACzdOi7mXGuZ\n3lbd+yvB91CvfydaVHE6raJ6YFD6Xsf8VrEgbnSwBIU3xC0mIn8cdXGvn7mW\nLzDqddy1Siuui9bAhRdi0bPkVCJ60adF1MlOZN4Lb3lD58i6pJBLMnrE+eD4\nrjS2qf8uFjo17eJ3l7DBV9A02yJ8/9qyfH0Y4W4czCos2OSZWMEg7TMUmGsb\ndxV02dLcCeQZRluFR5fLLGfPA/5FzChqtTNJCmmcXVKZTRyrf2vU0ohek9+/\ntQt/mNyPf9YDLPhUQoaGrLxwM4CnBGpdaOfww2O9ld+FkYBuxkKu8ShzQQxg\n24TmfF42kC+T8lv6jV/f5KGGhgCiQ4kBOv8GjU8YTFbD/3GjVDL5E1hx/V05\n1C/Z\r\n=vJco\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFyNno806QbVHyaBT9qgd3qzbWKPwCiPxcvZ2XWQkUyQIhAJdfX1bfWQ9KqOr8V5QEwsMOgvS9m6P/FjP+TWKFpZ1D"}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_2.0.3-0_1537453593399_0.4331438058155044"},"_hasShrinkwrap":false},"2.0.4-0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"2.0.4-0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.2.0","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.2","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v6.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retreiving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `agent?: string | null` - http(s).Agent instance, allows custom proxy, certificate, lookup, family etc.\n---\n#\n```typescript\nconst unfurl = require('./unfurl.js')\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"54d57d0daa532a0b513fd8c130311b9ca79305d2","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@2.0.4-0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-uip07Yl5s0Yi4kyHQBrJhHxbueKBfwxOneWOQdAmWv2+w5mLzIX2UulgoNj69ld8cEuMzor676VQzjtBHxgEgA==","shasum":"2f596fa3db8bd14318ebc26911dbad49181b6219","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-2.0.4-0.tgz","fileCount":62,"unpackedSize":116918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbo74ICRA9TVsSAnZWagAAEf4P/Aoz/NiPrdZbxbWZwBSX\nXHSWfzxKcBoiSfcSSOXrzgDcLGeJGyDgELphvvnoL14C7HspwaTo7ngHoRmw\nf1QNK160wmk2fihdxsZ4sa2150RcsH5X345aPHqk53O5mesJrsfUSCK1htUr\nnu26eqBaGQNDOR8STFvnQlOKnLHChMlu39eUzY/jsU+yebsBIqVaKpgO2a/+\nxciAp1DEmOLHq+V12Fd7GVmUQFoDF1AdsSuNRXUNMZ8XuAfuQhLsxGXrVYRy\nvde8kl2xjYBH3AcncAcJmdwJJAV148Z6JqmZvW58M72gbVvFnvCxDSwXCvhR\nzXrV3b6bEQsxySQlZikpHFhQqmJoOkHCu0JblTpZvXBhyj/mlMq/WRrMQkbD\no7c3pbV41iV2Ig108LlwswilKKP8gyrJkzv953/dt/BnkG6Uvq9w4rZaiuhR\nOgFp+tnopCvNBB/CtXPTxA7QNsG2Nm1SJW0cRaucD1DaDlRcZyEA0rrewIkA\ncs2reGRkvh6/j5YWtaxcZtTzLCrt6G32Osee4De/ABZgMdL3ytGP1hR70/MK\n1S3/VF8muNgmpjwUGzo9LOzbUZzYS58WeNtjgjVqzeK9SjYq+dWaUBSgil02\nz2J9ACL9J1iIvNSI1YzgG9AceS2Udzx16l0Jsodmt0RDjl2gcg6/JoPKfEcz\n/2zw\r\n=4B0m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDTDiRJmoVo73+D9Z1qAHhhiZ2sCQ9Evtd3Vrt97nEtqAiEA0vbMWUc7rQeMWjsS2Qc8ILcyUOhHiPhSu5GKbFLgZ54="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_2.0.4-0_1537457672055_0.35588817563611697"},"_hasShrinkwrap":false},"2.0.5-0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"2.0.5-0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"debug":"^3.1.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.2.0","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.2","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v6.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retreiving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `agent?: string | null` - http(s).Agent instance, allows custom proxy, certificate, lookup, family etc.\n---\n#\n```typescript\nconst unfurl = require('./unfurl.js')\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"7a96584c2cbe4071fc67b621b856b701fe001ac6","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@2.0.5-0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-nIRYGJgTWO+k+RkixNUbGLKv9Y+Ki48kU445UlrD9dr4mgyQj/v8+DLTNu0z0LGBiMJRk2cgNXzwWXrDs2ZanQ==","shasum":"e3c1363b69db9a658df0d42a4e0f17fa379206a9","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-2.0.5-0.tgz","fileCount":59,"unpackedSize":114172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbo8JZCRA9TVsSAnZWagAA5TQQAJr7N3NXZ80dkA8VxQfU\noObi1sOul02iqL7WfcO7IWoaF7RzCmWsGEbdThd/IaMbTLlO1buhQ66sJD8m\ntJqUkqzZ0TapLzWrd5vElexvMCTyKWq2ZuDcB1rKQISghv33ab+Q4IH+dg0x\nI9b1GWa8O35S4SReKUa7PhPjzkk7VMlVFs3KT8WBIbvTGhczhZXsGtHB8O2C\nHLwCuWmtughFennPXwkYnKuKc6wPKU4iGQCCviSqOQSRrSLTnI3xFue1aMLY\nbHXA+7DQVwdaDDzTkG4yelLGA/Pzcxh+N0keQlU6mS45CXFpJFz56A/pg40s\n70+dadX8JrnIkF18Db1IjWeBEC2uy3vQihHIGPljp4VmSZ/KzY7/3uxfgP9j\nBYGyyRF9LjQ8QR5kul0/l22jbwD6LzSBoAIuO7gIxSZBCW2o0Zm0kzYX0lPO\nRN7oMkCiMhHksbiEo4e46DfvAVMgvG8+WCT8BmWaThsKdls7jgM8bc1ZGYnU\nh75ZmdIEPJXVet9HL/1HTUBQI1MGX5FmoCE6NM7ufnxa5THk5NOjs8Jd3MvO\nr5QDkpcIQHexWHtZ5b8RNESEXI0KqKw/sWlQ9Sps73jglipEWgPRHvrr5axK\n+2HT3n1Co6M7h29Ep159VxPImqe6AyDYlTDvyQwl5dTzQi/ldoM5CVXicotc\nd7VN\r\n=G7BN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIECJMsAP/ZUVyiVqdozD3BFFa7tf327/D+pUOU/9EqeiAiAF68V5iJLeBOELxZguRxOGg14hZUlM5LFiwYvA4rP8pQ=="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_2.0.5-0_1537458776815_0.3768553091797413"},"_hasShrinkwrap":false},"3.0.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"3.0.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"@types/isomorphic-fetch":"0.0.35","cross-fetch":"^3.0.1","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"b7e3029a8092103273ab54a4f6f08c4fd3688c41","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@3.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-fkIyigpyY9wR2F+H3Qvy6Vk0YtDbNT0Y/BsNplI6vOKs/wCvBG5nhFW1J1SsfQp0BW8MsshPTa2KJcrGGx0CZw==","shasum":"9028d135a0685d0020441ad5e5a64a62dd8f5a49","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-3.0.0.tgz","fileCount":59,"unpackedSize":111096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcaHrcCRA9TVsSAnZWagAA63cP/RknfEmHQ2vTMswtF20F\ntQaYxAivvS5rm0324D1fYG4/4Tue4S4ncPbMdlxbxMiV+thVzpw4nKHF4cns\nDULl73M2ekJ+LFuoXUpuyem+I79ooLLY+j+T/ZUocopyepgTyEuuE7ITDNiV\nWUmfBD1Mltd2a4/9C3d+7Zaag2kJf2dU2KG+D2uHq2xFZ/Y5dFv4NSJLFcXY\nc7wiyHuB295Gwirkc6rz98R41Wx5FevcP4bXQ4Pn3X2Se3nsIEz1na5Nh8D4\njKBm/TkjEvUKo4KTKV/F02A2cC5yhyuLXJ7pSiI+h/+FZPe4AO1JNqByFCHg\n+A8foDd3pCL6Q9iLaU0sv0dxVn/ncKEGrQQ5oFgDwXRRgnoz246XY1ujRPG+\nsYYSAMp9cOm72y8PgPhoeMlSqOZYoMhxXBW6kx+XXJNjeySGLjkDkI4513Ig\nKatUQ0vnz/X1/9bESx6XUcbF3E/N3AhspUDV3GlsMWuxdGwc4W3MP3SjGGyV\nHEskq36P73Q8iR4BENxDgnXZ/usbO6dJZn6AXqG9jKf9ybnMNht9tinns4h1\n5WHEiAUrCE6r5+PTuX6jMtXbNDwjmAoRpyHAjerCW4OZb1zDmXNyCBbEWSHc\nUZq/UwSPZG2hY416uVcs8VIKZp1jBLdsPVx6V2bii1dsI21GO1/yGEsCf5It\nbl/c\r\n=5wjH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCUfq8RcdMpnaY16On0DboDWPsr1hPrYmwn0410WPHdgIhAK1ldkBC52YYmotTQma8mV1MyCvxVxWDuRn78sX6jj39"}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_3.0.0_1550351067797_0.04132561710179172"},"_hasShrinkwrap":false},"3.0.1":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"3.0.1","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.1","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.0.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"a4bda9600ad1755b724fa7936a8a5dda1ad37ec0","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@3.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-ugomYQurJTrS6vtZCE4qK0q8xno3LKS/YPqjqEAGpQ3z4+e90Mxig2wHq5xJuMOKwfWKqGc49VVa4TF2HQbnew==","shasum":"603f80387b3b480b9dcd536d4b3d7942dd2dac5d","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-3.0.1.tgz","fileCount":59,"unpackedSize":111055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcaWh5CRA9TVsSAnZWagAAuMAP/3OY+C/dWqcqznCFE7Bb\nkGMj05GGjN+FkxaQpfXCy7RNHVhRH5HxWqq1tw3zWMrfM+SW37Z5OZSN7WcO\nEVeY8nTQhvvp2VQliMU1QPwKOl8f/9qV51v6Km859mKcaSoJxH5Om6S+V+HF\nZEGL1mSqMtEb2CPqUM5cS2Y5d8rwdEi/dWlCP9XUOHs9d4D5jtG2utc15Ci9\nYmqNmwz35WfbjsqTsyzSfxNLDhCfbpkiO8S9uysPlRFzRi5rMo6ox8brtXuK\nJuOOkjDu0mvOrMER17E35EnV8yTXXY1OQc3xnTQ0SoLk7wQf6GGH/J+bVvRl\nDX2i0Ok+7IL9WZ2gPjNH9T4XOk9clr3ddZW713iWplMnf1Hp0bT9AmC3oUr9\nEQD0yA5IfqcDEjeMPUChVhdT5rUALhp67SIqlkXMlqF+VWDU7JVXL+HWhnJ3\n0cMTQSRY8wLjqvqQHysCWt5Po+tJbswir+1O4NF1yEDzi4bUi9Zw8QrPm0Ek\n8p+diilWVvg+yK/0CAt4SD1mwSaaSeyVQNyPwDS7aNimKfpuJ+F9lr8AEbsz\nWXD6zaJhRofCWjTo5MUck7z2MORsvLg6WPPBAbNUQ9/QbyYdKRUR3w1CFbUK\nEgAUlZnaX9pzro+oxwH50wGaZKDz1DAGDX+sWDoo6P0RlK/d8xNR0jMjwlgP\naQax\r\n=/Eux\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH5JG29InrS3/FvHxFnoY4qqovmS7PhgGugi1rrctwEJAiEAhOM89BOIovTOz7nv1ECu2u9wHHWIha5vL2N1eoe3Pp8="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_3.0.1_1550411897255_0.2595795404799044"},"_hasShrinkwrap":false},"4.0.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"4.0.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.5.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"cd102a3bffd74a13115d5bb63d11bf535fcd879c","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@4.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-uwG3MFTrFCKsyIcAXXK0T+Ofwdv9v8Ws3Q976W5MwukGh+I15JeV4lS4XJNLqRqub2wkXxQ5YvHun/PfM6dX4Q==","shasum":"9678c32daedcf0ae29b0a63bdf8f0ca69b7796d3","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-4.0.0.tgz","fileCount":52,"unpackedSize":105064,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSdYsCRA9TVsSAnZWagAAIFsQAJKLaKcUrEQCCSpzzU5U\ngda/t1jt5e33DqcZ1HJlb/JtGEO69czVYVYoD5cjN6q+4Ir1foGUga0mB0h8\nIpssyf+uLZKuRHv/CQDsunGORp8lcRZfIwdco5XDgWiz6/nadL+EqlJpslOa\n+bNLep4M31cO7/sWKiBjxSDTJg0kp7SSQ/raeplIsaKNgbjtDOnKIdp7igQa\n+9XXDIgV8PTzMVKgp2dc2phapU5KhfPzrxr8hOGhy/tHGgnie+XERjrgLM9N\nq94rFtX4m0oEJxLko/GpUya0yEFhKBVnicVa0e2Y4q1pl0Yeweps/xKa1wNQ\nv1xtUBOndlRkwr3ZmtSt2DTwZV+jEnUR6Ljq8O3eRobwHEibDB/i5NuF/Rty\n3vTaXVZ7aX2HNZ7awo6by4Yu8DWjVyLnDaFW7cus2M2xKJUnWRf4VFpoykuF\nhb1RyboW66soHl5szzM/hQIOVyFx3LSPftoojsurTMBXhg6FEg3SjhPKUiGv\ndqxztnq+G7gdJmQIDyDX/eWahlvE4ak8wah9bQhGNFmxgl/6YkHs6IzTLAt7\n0EH08E6k6VReh8+BNmLqPJZCTokpLvTrXo5JdfbdqlemTwloPkTdeLpNlHBZ\nLEW2/gH0qkonOtWSQZgSuMgmg7khtIoyVPXBro4eJLZOCy/uEZpPSgyXFFJV\nXult\r\n=72Dn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqTYBA4utg5R3tPDuFrUt4MNlPMgb9MG26vBd7Sbk/kgIhAOhaYXtDrSObbB0xTvJSVciZq4HJJGXsX1ADIINoGPGg"}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_4.0.0_1565120043318_0.27986393078105287"},"_hasShrinkwrap":false},"4.0.1":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"4.0.1","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.5.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"952c4031a9ae36a907349215a1b7fd82c91ab451","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@4.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-qQPwWEx6HgthwD751Ah/SnYEEhZh4G8nUmhOVFd6YpHa6A+qOs6NSe9nrxCjvUgseJeUda6IzJVoO06uvwLC6w==","shasum":"906f38511b74b6a8861bb5c136b1413dd4bfe3a6","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-4.0.1.tgz","fileCount":52,"unpackedSize":104549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaSvlCRA9TVsSAnZWagAAdXgQAIU3s8iX7VtHxDEIttIc\nV4hjLmOIK3W5LSDdpTehlmNQ3OjaFpWE2Q37tdFDLHywWGn7hEpVhTaZM0PX\n1Eh47YIQujLwwuucl+nXCOzgMVjYYdl+BPL89+3OOTIiPvFFHaTY7flpLoax\nKlpngw7d/LtnSt7aw7XKC3J0sa8yaEUXyxjkPWuVTmLKlk6sI4OpTDsacA1D\nux4cqLG0GFuUWwJPH/jXsTNKHePZL4exduwDqB9K2bANN5z+GdGyJ7pGO55i\n4gx/cG6gXwWCH9nnVqpXjaGak4FGvlujvD/956yCR0Txav5trVf2uPW3imY3\nNiYlh0Qf/Y2pU2k8jwk0nbuTbxxFevEZ3rjV2mCYXAqYAOH9Ge3RWSiBrIGr\nC1aHtfa76mEhiUKwC7o3Bg1e+r9L2mBVoDj151KHVwTd4GYm1kI9JPkacqYX\nGugK+jRJGAErIY45T56KnfXlTDMiIbDfwy1+oy1NByBCZ1++cvM8uOOwmmzP\np7FliQ//vZ10hMLHBSqmxZMZu5BNCizag5SP62bQAyZ6hcSn/VAoDZ9kIX0j\nLKHCmps7svd8yql2BwrKukJG/TUOQhpMghwFUL4wz90G51MM85RZ9T8oQF5F\nMfmqNmfJYLOmJOW5m7OLn+QZhzQ3nRA/FM9JIepbgQ1X63cDOvD78F8HeJcy\nHk6D\r\n=P1I7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoocG2/TzbtqCxCRJC5JTz9DtN+Vyf0UyaXvd8LOX7pAiBLE5bxGDwWIHJ+cffbtZMbwEaJGbANvmjK0VzIGBPelw=="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_4.0.1_1567173604715_0.18412939010033047"},"_hasShrinkwrap":false},"5.0.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.0.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.5.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"2a0a771a8c4f3a9c17200070f51bff26280c4fa9","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-tb4hDU9fm5RIXH43N1R10nvGi5ejsks77h2cAABCnWz+wYkGYEhw0DQvzebCoFibZ2udEVMQYJvtBNT0AB4AUw==","shasum":"5f3bd10629fdbbe37376082de33bf43091115d00","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.0.0.tgz","fileCount":53,"unpackedSize":105452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdt08tCRA9TVsSAnZWagAAXz0P/i4nxTw/H9m39ciUywC/\ngaGRolIgBfX3LQHtYIeqycEO1Ql/rEHCx2PZxFwbEShMKjzTJCZFma8kjKlr\npDMxgvhm+YHBOjypUm/wbjvmC86PC8huRNMkhFmWLmdm0TuD1xqLoezyi4AW\ngcGF9BUTV2NqSssV9LD/4EYaRDVsnAT90gcdaPOmPxo2vehPdceRa7pFcDlj\nlTmQEcbnHHvUBItYVTujLQKcZEg7oX4/A42T9TiF8xKZwomQr2RwjWCBqw2z\n57kU2bD8YM0CZYt8PMJa1LmT+mMuD2MJbI5xDczV2Uyp3f9UKMm38DCadlDP\nCo1ntBPhmQXTZ+sOvbbkHi1KvnniTXEchNhJxEMtmMXlbPYBvb3+HJC5eVji\no38MSZkziZMTcHNn8weCfT1DXYzASUJqvsb4x18sytVkqK1tbWUfZFcSlFEB\naSpd5O6X9DPkNA1lgaF5FDTSPqohGh0W+X8vHAL3axPRvvT1eBZNNmVATsT0\n93MW4raIOt3ojM3PRKpTKp7rmMpX5ZnWY9ug3szELPiUQGRcFtLRc9+hLHZq\nT43Odzjl3Cv+fGfeu/FsagfqdL4YxGwysA+HbAX9ch/x5rr+IcUWyZnazoL0\ntCAGtMqOKsarHpz9BO8ch7gFhxC+Jqok0G1Rp0VXe92QM6lx8BdBSfH7jl7P\nMh9o\r\n=7hS1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAJFgm93syUUFvSuYXltNw7XvYx7CY/ruFrFbtCzZB+2AiEA84AP/aFqZvovJDKDEjZHmjGDSrwXBIw2o4tOgl8KsVQ="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.0.0_1572294445102_0.8148693566266569"},"_hasShrinkwrap":false},"5.0.1":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.0.1","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.5.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"a08dc9ac016910dda1c2c330aac7f1182c016bf6","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-a7sCt5emZCuQ830ljmaYsVE6ZDjkEkSehunOsc29qgOzF3Oq9gzRKqgtDpnTpjE2+HWfyyOt2RolnusNVV07vA==","shasum":"ba0716a11324cb43d0553f3f8a4380e4f7540741","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.0.1.tgz","fileCount":53,"unpackedSize":105511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvYPeCRA9TVsSAnZWagAA9CUP/jQTALvNRfb9wqECx11G\nKLXyWJyVqtc3OVmIrB/MEDbiKc5IJWwqwjXk/ZR1VkQ+HCO68sqPsRlEPOaB\nE8MsLCpwsBrsELD8gTpoY07Pc7HrCezuZvnl3vymc3SzDsv7JN42dRSIDoNK\nRWrhRJG5Fx5s+fD12UeuawTz/N6b1Mikt5uzg1OTR8AfbQD5b6XmN/KOKQGD\n7S1okUIpRaVQN0oZ2qZJQKontwmcmJGUnKIaGG4A6DWywyGic/gOo32JkFti\nNJqUGf1UxvPFgYW5v6ZCvlBEzRH2cxmoAf2kKpit3kQPtu9eRo8BISEusE1P\nLTB/IjL6nyPkWIcjWAODo8+XbiJeLw6apkQuEXrVV7hNpMCASCbTRisZ7Nqb\nv00wL7Q2JWqX//OQD5Ddhd3aV+aiNYSrSXDs7Z1QfVI1HZGTamGwcP/IMx4h\npCAvp6IiUBsGArIzFyL0+FRP0TPGlB1eEYP9GVnktkC1Gm6D2FfR9TqnFQvv\nq9cXDY+RU7SAwK0S/QDOYgLAfVV6DksdWiSpLMqeAlnxlVoteS3ShAnPMkoY\nlEQ8yCNlrexuwcuQyr2fa8AjCJ0IBUBxB6DMCxMy9FkIXXClgx7QaW54aJGA\ngv2fbINR6k8nRH3lwSUITQCcSrle9sqbZzV3k3bJXSGzgP/MG/Oi4qGQhiOr\nfxF3\r\n=1WF1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxBNTHpi/rLs7XikOrNkvKtzVuGa398uKQXF0l+k03ewIgSjUHQlMqQ14QI21OpJ4q3mLRFNuLD+68XChIRerF4lY="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.0.1_1572701149778_0.8384305528778031"},"_hasShrinkwrap":false},"5.1.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.1.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","eslint":"^5.5.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-typescript":"^0.12.0","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tsc":"^1.20150623.0","tslint":"^5.11.0","tslint-config-standard":"^8.0.1","typescript":"^3.5.3","typescript-eslint-parser":"^18.0.0"},"scripts":{"test":"port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"162981cc433b31dfa7420eaf21dd9aee47f69908","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.1.0","_npmVersion":"6.2.0","_nodeVersion":"10.8.0","_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"dist":{"integrity":"sha512-ZCanhTharRygTySAR1wg+JiuyuBae338bE8umimaEX7B+l8/dxjCpZJEkrEYlekz/pBFD4NqiYUuEwiF6pwzVQ==","shasum":"0c8626029311491c5f4416139f3a84eaa1d1abd3","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.1.0.tgz","fileCount":53,"unpackedSize":105820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTQbDCRA9TVsSAnZWagAAXAcP/3Bt9s6xf47r0fw3synI\nSdifzaIv1AsCjjuUFqaNMaXfmwsXXtqFUbbLWnZJpP11/jfVz9otFFFLeUHJ\nFDTgKwKbvqfcgNjuBGcSq2Pg6XT1N+1E0kkLYrShfmzOHqckietfJF7CQKIw\nw1OfD3nhTq9G2c48Sq/YmeXIRFZUpMw5iCBO+FEVjGDDRHJzAfDKevd5Bclf\nqfuQKw8ifFXVrWH42Cl8epJgYKEKtKdZaaBDQGvQryF7xqXeda3fXqned9WY\nz8caVo0qvvAAcY11so3xJey0+JPF4+zJUVaqx3VBSU7lADOCz8K8yodLEfaL\nU1IUJYw0mEADRXp97qobAbrmL/DhfQTBPta9KhqO//zW9k7d62KakqktdDMY\nMZP4Db7XS94e18XGNk+fYxw8IpBsTJdSId4NgoYK0Yr6un/9pbuLbYQbN2+0\nHSJ9fp2ORfCBnQHfc2DTxtRa64jC4/CCMqEs1NitF3WFy/sPrWtmjaPi9eHn\n5Y/LMyZNvjkNtM7m5oXSOIfXGjDpB6Y36k6HJdJla85tgJJWlM5A/1Id4rVg\ntK+qDQUhry3AUzV67aUSkrKBjDCQbynoEoGQGSIh8KLtPb1TXCb3N/Gn8H2a\n9TBqZqIZs7Vs1KERPpn9U9Ns2Z9S6v1zz6htR5DPmv4SEnYCol+hFjdqEJGo\n9yh0\r\n=gyVc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnqIfKyTDfZK0b0w07fhjTBB1a3EqN9Wzsfz33iNp1KAiA26nxs/ia4eyWspI0z6LTSVro4J0wZILyIt0EgPs2cPg=="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.1.0_1582106307390_0.5071199291127799"},"_hasShrinkwrap":false},"5.1.1-0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.1.1-0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","browser":"dist/browser.js","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.4","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","ts-loader":"^6.2.2","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5","webpack":"^4.42.1","webpack-cli":"^3.3.11"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"webpack","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v8.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retrieving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `userAgent?: string` - User-Agent string is often used for content negotiation\n---\n#\n```typescript\nimport { unfurl } from 'unfurl.js'\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n- [vapid/vapid](https://github.com/vapid/vapid) - A template-driven content management system\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) - a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"22f3a0ee03c777914a1b57603317f8fa83ac5dda","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.1.1-0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-VqUrcX/g7KdXpVBQkbjNUvHGN9FZBi/Iwrc99BgDAs/GjLsNSc/q5ZxwO+Z1XszAyThF1AWWT8XvhYx61k4+3w==","shasum":"aa74944023aab10164d42bba5dbfc767ecb59037","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.1.1-0.tgz","fileCount":48,"unpackedSize":1049973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefUgUCRA9TVsSAnZWagAA/1sP+QBAHJYoxClOtKmwKKj+\nBEhi4Fg4cMoPrIkcNmuyckL532PJNnGAJmi5nWeyn5mqwEyo+cpd/A3Md+8q\nIAn4ks/oS5qAkOzP9JJE4ZUJG8SDFVaccPnvTruXY2kxOZAmZOAZ4NGOQOc8\n4cvl+HKQNiqo9EX8D2egC/T1DcZ0vfVbA/IKDw/zsKa4E8e/AJlx6wux+Eq9\nT4Yqfj1V6fuaruS1MQZE7a0PzE5mbS4zcFSi32aAFWNv8v38JahV9BqCs/3K\ndtZJFHOl1TckfTGCUIrh+cQVYRJ3SH2rbowNKPOZAT62+xPtumSL27K9A4XW\nZS3ENk29vt0XiX/NYVsBGP0QotgGoRn0meNDiOk7+Dx4QbdltC3n20a92bvm\nS8UkMlHRhPLOZ2QGkz97wSSxZC/6zV55FCQjMr2G93SVXSvwqcrL2kK+0wba\nWC/vxs+5I9KcA0/h+f/lEuf004wr3sCksNHAAG7EUQmktWt7afc0FyE/sLy5\nz8Lu6r92gqOjKInGyIF/XsHmSLOEfXmoHvOWZ1ywjqHZOY2Fk4Qogg05CKyS\n810S2h6YzMo7d2rFRQhn6TuMdCjd5mMVybATovCeeJMUXLEm/MuF6LzQhIhb\nNj5g+ooxzW04WRK/hKH+wmNcVmrTUkfYRXmEKjkfZ9t60cT97qB+nP7UkZPn\nmWpX\r\n=zNSx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvYM7Ktbtngdt57kMghP5rBxMN7y79nYVEknN1r4qEswIhAOHzqjm+zNC0S6zkacPAYMzDg2Z+Bxa8mrZwIbJikvaH"}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.1.1-0_1585268755997_0.8823421186984115"},"_hasShrinkwrap":false},"5.1.1-1":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.1.1-1","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","browser":"dist/browser.js","main":"dist/index.js","dependencies":{"cross-fetch":"^3.0.4","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","ts-loader":"^6.2.2","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5","webpack":"^4.42.1","webpack-cli":"^3.3.11"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"webpack","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","readme":"# Unfurl \n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v8.0.0)\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl.svg?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl.svg?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n![NPM](https://img.shields.io/npm/v/unfurl.js.svg?style=flat-square)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a saine way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retrieving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies) \n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding \n-  `size?: number` - maximum response body size in bytes. 0 to disable \n-  `userAgent?: string` - User-Agent string is often used for content negotiation\n---\n#\n```typescript\nimport { unfurl } from 'unfurl.js'\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  oEmbed?: {\n    type: 'photo' | 'video' | 'link' | 'rich'\n    version?: string\n    title?: string\n    author_name?: string\n    author_url?: string\n    provider_name?: string\n    provider_url?: string\n    cache_age?: number\n    thumbnails?: {\n      url?: string\n      width?: number\n      height?: number\n    }[]\n  }\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    },\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string \n    }[]\n    description?: string\n    determiner?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n  }\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n- [vapid/vapid](https://github.com/vapid/vapid) - A template-driven content management system\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) - a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","readmeFilename":"README.md","gitHead":"ec8f74dc15f9ab404ae88de524b0eb3fbc242de0","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.1.1-1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-bD/+4VGYqEZzQxBb5m7TEcUo/T/x1FXjL5cCr56ScEdCZebQqJRh1HpLIY1t3eiEjHTF70hYgF/+n+FkCd8v2g==","shasum":"fba1ff7534b28e06fadfee70533566d565b13f59","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.1.1-1.tgz","fileCount":48,"unpackedSize":1276314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefUqfCRA9TVsSAnZWagAA2PEP/2l6b6LMa0MefRvWHK0M\nIJ3b1u5mt6zDRdqldELIF20uFBcVYlJWdKm9qrcRFbf5pkcVRZzeuS98yXhl\nJ4RU6yvPLuIzdX4366zOSiYvS6+q86L4YQrcgVT0r39CeFarbPMX78PqKsX4\nJ2QuYQWKeYe6K6kLIVPLkiboDio1rsSAe8bzkyCd3lafwym/h+WMdvHTevZp\n3X0cyl1HfM5+wdXGuw7VlTt1D0kPn20TIpKwEcAbiXQPh7da/NHnVlIEjj9P\nxJNIaMBAwZPL7giqC3lbkCaWgbnKjR1Ju5MvXJFmvKxL9rQECSUhdBiKMGEu\nMCP9cardWAXAxpr6LwTp5toz0RCmYRdQH/NLW7Q5/K4ZSgnWP1X02xYAmA0R\njVts9A2KTnWolWkN8VAAG+j+OVCwmCuUgGdzuLrJdriBcjRjick72+DgYAkV\ng1kNccsDt7r9Dvv4fZhG56sUrw1dbSipHTSkMtutI9UCxv0EBtjgw6vdJUN/\nmrtMv83fqqHruAM4ZNoxgNwumO5vPmLT1qfDMTv3UJM9/b0cuZJhpd92bxPZ\ni3M2y5V8MIoNi6SX9Y6ztNf2ObhUlwY5Wa1RpCi7ubQwaLoEy87YsDNwdi9p\nf7k0V+YEaDc60HphvnoD3spbXCmdUK8dzRYKeB7PlBXWFJfVKy2bFrvFU7yF\nIPCl\r\n=hcok\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC/2OdAFJnT69rnjBJiJ1XPukveLDu/Wk/vL6W7kGspdAiEAurqAHjtCJ0YSJhig7NA2+dPhT8AOq0SXVT8tMVNwL38="}]},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.1.1-1_1585269406994_0.6218365471325995"},"_hasShrinkwrap":false},"1.0.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"1.0.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build","prepublishOnly":"npm test","preversion":"npm test"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"229e2f47beb7af13fdbb105d8ed8857a897eb65f","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@1.0.0","_nodeVersion":"10.23.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-St+9IRgMVkD6c8fZDW6IgPYkcQp9d3nRJbwtK9pHkSIMGBZAXUBNZm55dzwmPFK9TYIvJFD+OTNQ7yGyq+ECGg==","shasum":"2d4d9d579e1d668d084b9917768fff1d386ec46f","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-1.0.0.tgz","fileCount":58,"unpackedSize":110180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9FoGCRA9TVsSAnZWagAAXp4P/RiUwQizKqeIdbdbdAn1\nnXQ3mEjQoPD9TrWRBznvd75Z/T3Dlp99Pjdn+wp6AWJUY+0qVdvlSjsbVhP0\nsf6sUjs040e7aIQMQ7W8m++UXIbzaR9jKcu0Y5/YZhHuFVsRT7rUlnZSX8M3\nxqDS2NwEJCYFDusOmS1V0k2145OARksljV2lDljU37qj10RIwJ9y3IU8kCQN\n4fQ3fwkJvoTE+8/VWue++Rx0j35BWmtol8Nky9S6TUCBRUAb9wUZ+JVH4/Br\nrglM+HtK+USrNeaLkjGGq3hXw3JAPxDwBvcqYh8VuVH3H8Vqxymp4tED5pHg\nHBvDI1nlRD1vFvI8Joq1x6DHg1ymM+FRiQSJoic922XEw9SJzXHPwFWJnwz/\nc7JRpICDwdaGeSxgMWie0xkayrh/ouIDJod/NCEoXZLH9MqvURgEInusF/vP\nOElwm1PRz36VPXwTRx7EviR39su0/0EDaDg3//PJe1tjPACBTNrMYNl7YXCc\naxMPv6UgU+R49PBDLrU/WjJphZcOirs31iOFOlQYdReCvnGFpVTjICACYdag\ncBbAQmxZIiBLUeu7LVcvi6HHwx2Q4wrJnFXb5zshhGL3PcO+fa9YU/7XMv5H\nKV7UcwsTA8bc/5QLVDGHs0VipvKXiHMYmhEtXpAv6u5/adCubDFfgflCpwQu\nX+b7\r\n=mOBc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgmjVkIniyR8Q/dWiXjhrKXQFK0r/zfqD0ON8qpMmijAIgKWSEPtW+iyGqQZU+N/2O+2krs2buVXuMCGF5i+YWdsY="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_1.0.0_1609849350060_0.5248909898151073"},"_hasShrinkwrap":false,"deprecated":"This version was published by accident and is actually the same as v5.1.0"},"5.2.1":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.2.1","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"74e44ea2fe54816498f3aae6c713ccfc74a16e2a","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.2.1","_nodeVersion":"10.23.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-SPWP3JC4awjKLyhTWNY0g75WkjCxYb5m3+dUGp16atM/as0dXFDoAK47Bp7VuoCDxHALSXYOmnCkXEYKXHiWyQ==","shasum":"7284d06285c7555f12307e54a9d579d088d1c372","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.2.1.tgz","fileCount":59,"unpackedSize":111180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9GjLCRA9TVsSAnZWagAAMqsP/AzY28oN0FtBsNO3IF9N\nD5xSjJ0upLHyGX4ejnZjFNEekPj1H8js5oMgXlf7+SooU+FPAfmj4uitx8+5\npJGab4vjgoPazk/8to1Sew8DWU2Tw5bqxiHxV3eC8Ax0E9xbgNvmCwIZ23xU\nnoiw8shD6M8X94Z+NASCBgx2QjFIm+XhrXQfxtIXBJPpqM2aidOD6LBwIXA2\nJ4NnSTjmRXzOn9XttuWIHL7JEOF7uJkEAO2bsOzhfvHsi+ke6864snVCnnEE\noMbMdx30grxZYWOVleaUpZPVRXHpi8JU95bqGemweE2xncG8aDPBFOCf8Xdg\nUMcSh8WDczOPZV/gbNO2M067d5X4FazBWsmcupE1ZhPqV38lc9np+lPboZ4o\n0ziQQXSo6vSRi8BSuBHSw2V4UcLUuBaFRvRX2rtTkZFj2KlKMx5plMwzb7Gg\nSvnCgjmEkpP8plL8vMqEBhFZ7/NM27hF5Z+Vt06vfVIluEFfhc6XLTS+HZdB\nUMYzUR6YW84qql54dq8p0wEbezHFy/v6jt2TF9aIoNaEhj5D7F5Gj4rKcdzS\neegNj7DkSORba4mNo8Vtx4Mz9aXfvHgT1aXls1S097fyAZ1ni8GeJ1zo029g\nhLGXFMV6J+3ibmWz3ACAvirpn7tg/IujwOT91gf5/j5AjEwLTIk+xn+ZP+hu\nfWSy\r\n=cudh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeEABOO1ul60ZRdHMSrvBl+HDcEJ/1tcEfcY0OojPm7AIhAOuwXo8d3/qh68SDgxfILnBTw+GUH9+zO5MrkTgt4T8C"}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.2.1_1609853131058_0.18847431637540857"},"_hasShrinkwrap":false},"5.2.2":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.2.2","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"8ce5ca8e015d06d6bdee7e9525ef1519067f482a","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.2.2","_nodeVersion":"10.23.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-bi+Np1cL/j8E/3qB80ftIyxhsB3rgT6feL44KI5Ym/GhYhxxh/kJaTDzLkDXgCFTtRRac8u6VFuUh8/l/a7CFA==","shasum":"bdd215ce95ba171a83e4b2b13b7d1d7b0b55d149","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.2.2.tgz","fileCount":60,"unpackedSize":110457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9cCZCRA9TVsSAnZWagAAg78P/05q9lG2KiT2jO/DdBRg\nigSdoX+pFIqfRcMBW6oRiwOCQ/fmF8J4LY+8l5+b1UzARL18U0b8sXmN8oW5\nTc6Uz19cBqxeNpaTSeXXNUFaHSneV1Zb3V6nVCpibkRYj5InGek1gqN3SJXu\n613ooTUZpTLixI3LcDXpBF/4s5gnkeQhomUO1DsZ9W+FkvyLX4773fEyVKpP\npn8LgMUMKKRYRxl1kpDmb+NDvnyg45K2DoFtgxFPcIW+3MBTcwgYRxc0H14v\nLbkJ5QRFRZlWGVc+lN7lovKcbSJbIMbeEklDelA2+TTmA+nYHTZBB01Rvs+s\nSsMMcobICix1Rm3IWszuGLwxN208cQi6AcQRomx+Web6wd4NkmceYinhA8WJ\nKnamMwGzVPr1Df3knPeN4Qud/dCPbFutCrmokgEv7rAQ6nOfEvIFId6wUKZD\naQwCM2t5XaqRn7BpkmubF0Qk1zuIcHJQGoO5hGqYiQpLpzOoWByLaFpXj5Rm\nlOGbJNBcQ2K9xK3NECOSsxjCYiLii7MxU13D1/SP3nRS3udPQFEmdHA88q+Z\nkPlZWZof7oSdcSlFx+Zpk9jv4SKrPa0OlTRDTn0K8wn/y3+bPbBkQ+srJcCl\n0qRsvmML8r1UjalYYlz0rMebv9ARNhJmAl6DUCnY3TlzkCkNQGP16Bcqa3Ve\n38mz\r\n=2ILL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmtmV7yU9f4BPDNm7wsyLDqo1y+3q2F2uQ7s+fTcXx+wIhAOqA4sqiCKARfNGU7Q408OG5nrhRDOMSEfo15XPOYx/6"}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.2.2_1609941145507_0.4650618259675561"},"_hasShrinkwrap":false},"5.2.3":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.2.3","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"300627de02323065e14aa053ea491fb51c5a2915","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.2.3","_nodeVersion":"10.23.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-dJJ0vs1cV8U4RYjcCsLPOgqgmq4k0rTyK5I7jO/Lbxi8isNeegTgTKijye5MTdTNv0gvQVWG5oMwuc0YNo+g0A==","shasum":"20876bf291a31f96966587e7dd0059bb59e53eb4","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.2.3.tgz","fileCount":60,"unpackedSize":110496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgD0SOCRA9TVsSAnZWagAA2uUP/3I1L1SLWCva58UkpEKO\n2v1sdPznarfMwHM4EciX88f9Di5dmlc7H5d+KwHODSbpZ7WAs6cCvTYoXQze\n6/0mBDMMWiYZffk3LePnY+UhW8sMu4FTMdawJroo/oL++XZI4buLS5figTdq\n11atavF3hk9iZT21aLAEMT2kb4zKUqiIRZtTqcb9ZuNlUJRaszAy9VfFCAk6\nkbU4+D75YoIfNk45AIGmdVJ+p6+ezaLE6qeNznOlLK7e5g8zIO6ZRTZXtIAt\nNvF35k1/Ys0QLl8eLKuXOutVwVqmVguCEgM5IeQjkKy1BCbbZs9eyfNNw6G2\nmpLlXZnxPwfK+zUNwBEJOOX91YesIj/u8Tzwcvwa79a1mGVmTyZWXIG5hW9H\n9aGBjVJyexREkB5r3k7V8gBMbowYjkWIzrEWD/hBRK7ASjQI1yu3rvli13w1\nyqLxY2ESpXf9AQPvfDJtKpt3sUa/ciBosi0+vMAZM3n53g4Rc6OCB6LyAVbY\neCKuQ9Ka0BiEp1L4sKv4uGoK1RoVs/6BC0S4H76Z4m5u2rf761wcFYx37bel\nLnNAaUSkUl76yLFwELxSUQXWPVSHs7E22AzdEf+YODIgNHSy3vfQ7CmoRHvW\nDHUXjI4PnAQFfq670tXj0P1S5TtimgPjZZ8pO/gj7r0DlgIq6zJUDRT76hCE\nmlV9\r\n=H2fl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHUSQIn14+cLHmXC61ihvG3+8867an8TnNZOA50JHVn6AiA8U8ltAX330xaisqSgpKNHdZF3pcR2gAF063+NtPT8AQ=="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.2.3_1611613326225_0.5483654797213446"},"_hasShrinkwrap":false},"5.2.4":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.2.4","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"7482693bbcedb998def0c655ff1eb474b944a5b9","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.2.4","_nodeVersion":"10.23.2","_npmVersion":"6.14.10","dist":{"integrity":"sha512-lYC4o0VOACSLF3ZylYW/jeYr1gcSM5XstbLmTk7wWLBVV0G6M9b+Uxn9ZXFKLTV21pltZTkowqJsTdy5M3SJ9A==","shasum":"3b0e6e8679ef5bd1a86e302e50f7e061df13bcff","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.2.4.tgz","fileCount":60,"unpackedSize":110612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgI/epCRA9TVsSAnZWagAAm3UP/RrpyAvWhRE774vQlFXI\nzo3+XJ5o1Ady+wpI1Dzug0Hpin3BUzRakLbbji83eUDFamznm3CM5QQMYEw8\nAWKP9hCxbBrIRAzge4UjdrECND575Zn6h8t8qmsxc0RqvAxdWAkfEFPpQp0y\nZDxd04YwQ+KsBA89WbTIYOSYuPxJC+przscE7nhqV3Hj5ASDeSWc8NzOIE9r\neB/eL1bPfT7gdeHwUEdvxyBLD+izhwBCUX60bb227sAUU/8CPtAACka3vA4T\nIOLFOIg6QRSG2jEy0CltrO5UAdIbgxpp4qygvswikX+LpHkFq+5N1Li5i4rM\ndqikQKUdyyxwvQAEU005x9poBXSsuRBJw8tKmPQhN/M5/AvbFWJcVIcxuV/B\nHtPTnrKbLf+qr2wPyRFQHoKo27F1RU3I0op47sKpoBWGr6dLw7zPQHYI9Gqe\nKEjX3+93qedSXpCDATlMWt1BxCHPMsKvK4++2dlWt1LWs/MMGoGghjtoQYum\n6FTypOepvLXu+iy42xy8adHlJQFchWDaDkexeQRR2EStSPPwhniQk1KiIY2l\ntsKNpvapRxIcRFtzNIhGZIBc7gdrxp7OskutCK0r9jE5ZRc9IFFEBPCTLPgN\ndQy3VEq0ScxzvxDrfym+iY0C3Byuq5hfWAk2uuPUsreqoJQcewZgYY74yi9Y\nRxo2\r\n=g6Hv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxIkyD8knjv7ErJDMKxd031nOYbO3iHetDPG+asV4sUQIgQM+8CH9i42EX9M5RUL02JkYfOrmwjDpVkMwclwo8zB8="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.2.4_1612969896856_0.02205280318255798"},"_hasShrinkwrap":false},"5.2.5":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.2.5","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"915bf8ac60dca6940bb2270ef4c26bb4431bd96e","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.2.5","_nodeVersion":"10.23.3","_npmVersion":"6.14.11","dist":{"integrity":"sha512-EKyq7KRPq+yYJas0k6O6ozLR/BOlzcV1g+SsAEjwbcdQxTetq9B+zl/8+b0zJehrHPXOwMbyWwGSw6hqJDS0/A==","shasum":"a7381e96532dd36303ca9ddb9930c635a465eff0","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.2.5.tgz","fileCount":60,"unpackedSize":110691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgO3bhCRA9TVsSAnZWagAAqbAQAJaNGG3mq5VOlz65MuDD\n8Un1es55efdNyOrJPfnig6c2n/SbWzXnFZn1w56Qo9g3VMiQKoD9p7uDM0q7\nhsgkd9AndMCqWUH2RpjLHcoCpU9aWI6lU88X4FcyfrZSEmAe/lPEpjrzS6DF\nreHi61Shp5hVhLXOyS4GwaifCl4lGqFnGOBbTtohGOn1rOKlOcXYFQjYYu7G\nsLeny7oq5SSdziQe2TYMoIbLIFjZ2Eq2RPtueCY2DXatRIkOJKJ53FX4U8i/\nweMzE6H/kq6Z63WdA3vIYBg76uyUE8a9s9ZbFxbBwTf5/+clx3Prfwv0sV9w\n29nHN18VxxSkLP4LU5tpuOVz99APgfUvlp2tKCgtqNOfkJ6cwg9v6uRAHNBk\n6W2uBq2OrCMc9HyCTBYIwQg8gPhAoExdIo1dxas/Az63XobzL+UCrKv/1sNQ\nyA/XMSQB2Yf4m6Y9docMwZIjWhErNylVSWoOQhrctINE/P4oQVIInZSwIu9x\nKCqQkLDrS+JK5Vz6T8wldZWEc06N2TmrvqX6fxvwSiP0BVutYtney5Y4iC0j\ns8Xi2PGgCY9f7QKBxZdzuOBVp25mhu4023ohJA+Gj21A6gyhL2vMx05SQhsZ\nKqj6kpw9U0wbXxofuhdMkG7iUnb7gNSTexve8g15dSRBgpe5bWn5N8lEF+AY\nVckz\r\n=73eA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7AgJ9IpiegrkPPb5u7iCVXOxwdecuJ2WCxpLJFsxZPgIhAIG43fFFndZFYdZmrsRDdnwqksTcDUbWQZzYI/kyI3cL"}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.2.5_1614509793136_0.053934147110178854"},"_hasShrinkwrap":false},"5.2.6":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.2.6","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"08871379bb13f144217d0d35037b5acbf1957988","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.2.6","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-L6j52Pnzly/57tGdkvIVJCvA+P+pfBhsNYstw0Rx53hHE53ANxOys/if+nDFE8ZIOkripyBiUFnQSb6CLEpMIA==","shasum":"83673409f86790b7958a7cc373e608b15b0d1735","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.2.6.tgz","fileCount":60,"unpackedSize":111379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrpC7CRA9TVsSAnZWagAAOcoP/18JwoY79aqXXzu+wVek\nCtuHsQbP0wJJ5hQP1CbfQz5M1r/U1CpswPJVuRSW8HBw7sWrvcEEhKhh7YlI\nu25V8G532DvSzBTfrz3+6P1NGQS+X/ojOUnlkU0AeyLRKTRkkds7wWWkObpf\nbJE8G/IctlgJLgxkiQsdM+hMsmvoj4WCX5wORfZjVPcjV2EJdh7Qe72XVPTz\nppgj8Z58HsIi9upFywmCDDtaeTq7+xkEFoYdz+222nH5kxTu9aQIqxUNxSlL\nhZ7c3GMsGg4l1JX7L+kRpaF8S7cnOix2zyFW5nTSgaSwYkXwrZ6rx/NCwwKf\nJtTrDymwK0v17CnF3ZWYNvJgpH1yg9Ar4PjRLpbJGInSXUYP9gS45DJvrwjD\n1asDk8mzqhdALHs5hHmoae7ZlPLQqaURt0iTI9M7AGdW/vWnjF+lFaMWnyv2\nzEgCEoQaxl4oFjCv7pG630u++UCI27u0pFLb955ssrdJl13LpLA+F5irTVdM\nUHrojBvLVzbmTbyS9FuB7qGwFDeDWcRjivJ5XMq/YRtfkbR10e5oJAvn4dVV\nVzQhJKa9FF66LEFKeJT+kVk61PAefRfFFHAi9mg2QKqd/JygVkdudtlQ//dn\nIMPV+lMlksFi6mCkEDVnZM3r3crXSecko/XibPkQxN7vykqogd1WflwDyjRO\nUYnk\r\n=71FC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfJFD55+Y8Q4vY3aPzgDErGLemgOMRtNEISx3cnjzsMwIgST/6vdkg4fcAeYqE+pmZCJKn0M1WhxLGLep8OSD/EgE="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.2.6_1622053050520_0.9646793047434163"},"_hasShrinkwrap":false},"5.3.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.3.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"4b6e0320af3e441d25f4b4cdd12b468f0ed61647","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.3.0","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-S3vSDb+zOcrjSLhXryg6yiFc6FZoPLW+OIrCaBxXXMagM6lS1fWihn5SDCU67QkgJs1PF+Uql3xjhp2uDxfQsg==","shasum":"f7346ae04e664dc816484f7fe146960a1ae65235","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.3.0.tgz","fileCount":62,"unpackedSize":113807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtPNWCRA9TVsSAnZWagAAmYgP/2OA2gcdx0HjmShFzYqN\nEZq7ivwNqTemcW4A3t8Uafgln0TMvcx1bz1ZK5hHebx6bUYtAL0sNkOiTMxS\nsjRb64wgCup2wCsqyZ1n43+fJYNt4+kjXb+HWZ8xVZAkgf1YrW3FlNYE5Iuv\nBXleGZZ+maXrkoTKl7C0sRZWmwOQh4WN2KzdpboQnhPdQuKAM9lu0VG2Pds2\nTfakU8aIYWfaSeEXYMohm4UjVQG/6IaJVZfYBTTm/XTC9C2VGlJmT1pu136a\n6U0pZLWvBc0pVALRkJv6jj024Qa7ScqO+d7HqrnWKXASGtS59g5dd6wT3Syk\ns5cIzpS5UKjrgMzBNnJkarKd+yHNPKoL0yObxcrmL2iYF/nAitHGh1VQOMgB\n8mkvJzKEx68/0ymxHhX7Q45yNXcmFm9nDBmbL0hPr4Vtn3InwoCZ8JjLbxbk\n47++ZeHZ8yesekOw1gxYGUt/0wixqJMfYLH8OzNZCih2XFoHQBvYonCb06eO\nM28qwegGt8X294/81UK6YuQXcJR5z4n1Lj63uDH9s9zSeoiZuCoaHyfod7ay\nETxxjN3zwy75rfxG7kv2UVFafjwV1fa5tG9CXClIiFrTAp6ErU0ANfe+wn4w\nh5pt7Ymy5ZfjQWud+SkL2z3Q06YCYPHFSRRMfl5w7zOPogSUx2vnE72WjICd\nSRxF\r\n=gvtv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAq/jy0xB/9Iu9ozHrQJ3WQLeWCfmSKYPum68Mt0k/OWAiAZPZTOQ2cd36amK645GpTSUHOTnriNm9JCywKMJ+W3sw=="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.3.0_1622471509723_0.6681224703608095"},"_hasShrinkwrap":false},"5.4.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.4.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"9320aa110a19b1da8abdceed2ad075555fae9a4b","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.4.0","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-CGPkFxMjHa7tgAd6FUBN7ZXPzXmfYThFLja8HASeSEqQe8L1kCnbFYp9x3ZqB0atu7M3woHT0oT1fDp+eRYQgw==","shasum":"ebc45609f62df6d873e1a90a916b055a6d997a55","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.4.0.tgz","fileCount":62,"unpackedSize":114300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg99RpCRA9TVsSAnZWagAAEXwP/jcP7A9dpRR6r4eS912x\nzHJi9pRL2dWEVhwV64yWxyZLOGy0tW3f7odgRAebpIOgtaNPyk/PMSebfcNq\n4VUqO2PJUJh0uDA05gR5iueYhwYerSQ4SvO3EUUOO4rv4rGUYzFo3rV2LhYK\noido9drYzx63HhJuMXNGrYjLUNgm3+U5oMhUSjuCIDRsu0lrbZPvI41ucW3Y\nJUyE+gcsgsNqY49XI2kB3SglBKW/G4hpUtJGg4P/vEdNH4CeSM2WmMTrtYcS\nL5gIsKDVRx8n9mI5mhNEvHsFsNOFmP77RwhNDnKdYik+5ZtiK0cWaArFuI4K\n7OT3g+IMzEXbxdHnF7LlK0CX54Mp5nUvWJnrM3f0jmirtMps9NAHZgIWHR2x\namRT1AmFqFusnr0oJ9h5FRijnoQxmdj8ykndGOO26lgmWwEwTTAOD77YHH9d\nVIUxkE9N7huXE7Q8lu7p1B8QBventprwHFSZ+bNsqANp6LLAYnJWGuBsbZC6\nh+crmn+fkE3uBTx5Brm0CR32xHQ77BAg1creePx1tbKNpjSPKhhThLQwsG/+\nLosTQFhRY/T7OV9VUM/63G0ojlafEVuycWENec74RjhkHydw5Eg/WyCjl64v\nJJIk7oFkounsQIoce3T/YFx5+skaRMe/iD3InoYy0fNHuTtPWYLFE35ZLkx8\nbkWi\r\n=ruUc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDP7EuUP4WVa8ggiB9GEWi61tL6gy3TEWVdbJYS4fUL+AiB6ghh8mfrnbJBXJAaiTz9veNpx8LzimMMfdAsZsYZGTA=="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.4.0_1626854505032_0.8385994143159805"},"_hasShrinkwrap":false},"5.5.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.5.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"5d367d8b1d8622701b76451c282b7f7c895c1b8e","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.5.0","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-92GqJLUdQtqAEXqSuvER9hLuyJhHwyc+xJycF6+rLP2G8Iexgq/86Az9WyDl48jrkcZes9Q5P4cDAZM8f59CqQ==","shasum":"e39cc4aa319781bbc6095aacab9e0e031d3beda5","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.5.0.tgz","fileCount":62,"unpackedSize":114357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhACVPCRA9TVsSAnZWagAAiNgP/38Ln8v24aJRW5HeaoVH\nndUegHrldkTNSrk5Z5xT889GnwiniiA0ocLxOdYFgh3ubK4BqfmwiGyXnWBL\nKobG0EEoQG43u/JWhNO81nVvgvRrRvHjfhldcHrr9rtMtSwAKY58jCevSJpJ\np19YSde0LaW/iP6ZRiMY2qj89eJVT9rwRTn3AGHuby147uKCtLCvNcNSekGP\ndZDI7XSIRozM05zA4RZfvStSiTg9XKSCfzOoiB7Afq8tnpZdT7rp4yYOuLL/\num6tOaAL1MD7fKhobWz4BVQzYSOqQQS5Bm7gO4+MoyKYRyFGdcANGk36X7N0\n3OTI6ObvbtgkYpAZHeOBRWeYjERkNPwlBUucEb9bp3RzDLOl6ML0oCHSbHB3\noX5wPvpdQ/WRM5Gf4Db+TIkovs/wkLRcJNF5N5lOiDjV9e23viR3xEyF6nTG\ndmi1L/KF/RJux4KShMbGQ3VlAe/Yv/n0rVUkvhWroNUsHfpmRGBs5sWWVjPL\nG/0JNrhCsNyzUXLRg84xWL7FNA7qg9tM5HvxpgyJQdt6VfhIARbyBIGRy75w\nzgE28+/L1n7b8wF1Qrnle3X52/7X/oma11gQGVBHDuvnm46e9/5+OG6d6Epp\n4ZR5lw4RyrOIDKbhXUYRKIzvknpGPgtH6ijXiOgc5/qpCMmT/HRs+cB2NI4r\nVGO9\r\n=BhpX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxc9UGMvOyoTKy99CcQ6IbozkjDg/ygqozWZ/OFDhmpAIhAITEuFMCVId1L/eIzNICpnLDRBq+kyr/sELRCx7kyLEj"}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.5.0_1627399503055_0.03265676047309629"},"_hasShrinkwrap":false},"5.6.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.6.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"cross-fetch":"^3.0.4","debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node-fetch":"^2.1.6","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^10.0.0","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"8945de7b4e2b688e0dbbb980d48dfb58e028f6c5","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.6.0","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-7TXMjqEU5PcuubxmiXD7L5rfC/DKX34YHJUeN8pKQAT+S/Ke1eokrGfAkzjui3FH6b4pO5xeiTbnypB7fg7NuQ==","shasum":"22f2e7ef5de8c92b3d6b3f2168626f87599e39d7","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.6.0.tgz","fileCount":63,"unpackedSize":119323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBxmWCRA9TVsSAnZWagAAx64QAJ3nA3IRfh/SRIcSJKvw\nbhQqjNRcBardWqPFCpZudf6AN7/pcdGq9vEeZhKvePOWGxr2a4IVEzUX3vk1\n18JfBBxFiHU7TsbBxpKywHnLfbm5++CUcK0Ax+GoKNAL2Xuymovz/ZDrEjDP\ndhbWCmuSCYOlbkQYy7E7Sob2DRA2vl5LnMLjvHfwVBnTjvLu/jjCwjd3nxYd\nnOTjlAtPa1j/td/sjmQOvYPOd8dYP+tIKj8dgc3dPFCHCp50dC2jInWZXn/d\naH01XixNoWYVdcve6Q7AsNNUBxWLU1y2FBXEVRfr+kyzfu/03zbP+Y0qheH/\n0NZkAxVN1UGvmhrrPZoXyO0zasGLe41VnZuU02sbqmXGLY+p/Uj/hA5iy9oy\nA9fvieJURXcGXHGcSsNsL2yc/Wj48KaXALg9wC0kyOzlP9sfu+IU2XPwtFPN\nfkpyOCFZH02FuUBT2U5bWD8ygnHqxuMTTUyJoAVsaqBZYwyVqUGx2rDGYA5Z\n0GjP0oKLsOSIEWGHpi24QUbUlc2cSTFJg0FGppuIF3muTr9b01KSIfKlYQQ7\n6zRDL3xUG89lMB8fi0kU+s+tV8cpa6u1+nkil8pwgpuU5QyMYW7EY/2wXG2F\nkNELM+8mS5nVAGmqzCeF6cuzq+E8Nu2PqcL7+YDk0R7KGGbznGJRu5Wj3C48\nU2JS\r\n=Jwgr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvI06n9JcjIriQ78ttiztdiK3dr/esMk29sQoFHhwYCgIgSdcegdbmn44ntdPk3PKsTwwXir9v2d8bEBGGku93YSo="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.6.0_1627855253890_0.4704454057517853"},"_hasShrinkwrap":false},"5.6.1":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.6.1","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.6.0","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node":"^16.7.13","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^13.1.3","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"d1e3df696eae0c1e5b2c4f524ed875340ea8e898","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.6.1","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-avenJNmkjHRtHSADI2xMGVCHd/J5Ji2g7l+lB4TbR4EAlptpYU23lBcRus35Senbk/nFaFwO1hRr4ruViHrr9A==","shasum":"5f5098f49819969f19687def9d4758ec566e4081","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.6.1.tgz","fileCount":64,"unpackedSize":119557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPQ09CRA9TVsSAnZWagAAvt4P/jZSPkHsKpMmAUCnGKf4\nXfNBHajjznBXpe3OOFaDEJlmrKBlKe8Bzg3FL5a0PM9rKsLvBgjB74P/bzsD\nqupqpTZpJGNNq6TWmTkdlvu4I+EixH/XsZMeuJYbBomYCCL5ATF8YNhQxczz\njJQ4CqKkg0UQTLenkMhCV/G+Bpn4APlPtHE4p9Ar/vsJ2+SUMn2+d8TcOLrz\n/mYb+LGLYdsytKs+deJf6yFE9geX88YpptdPX3zzLD0cTN2k/qldN1TwYiZF\nF5OlvP4d4WRw2g7O0QVQDIiVxlDyTlVkv1a+MGPkQu1olnVtkGgzxJ0MJXGK\n+CI8ZexjdH+C54NlmPTe6tGWOVgSztqgmSKOBZzkQTFubzV6SWG+eA0Yquao\nqTWkIAd6nUqf5Qeq2txhZUIeB8u9kGJonRGMCt9nJKEva43KvgSmMX/YvgjH\nw9heZmeI/ad9LZbVlupEMlL2Vp2IKp92fhfLG18BJHb/qE67pqy51MXjkfaz\ndDyagyS95pwaC5PDAFMVYgAKLg7IpQ4eb+/c78kLHyST/mINh3vNbVKElezs\ntnWGC118Qkl5o4WngMZM2Qf7/eeODGpTbZ6xSzTfKFBmNs02Ej9VIJb/Fbc6\nWQbvFB0w2IP2lf9W+6p1XMBFbX7XTLsBjIqEdC1YsOkrMpxqgbKLpfigHHMr\nZixp\r\n=Cmh1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFrRDTYzMYaM0K10CH4bMdLfdqwh75b2ir8g3FnQ8sD5AiEApfhdfyCh7E6htAVVA+UJ9VQ9xTtds5Ah8eCxBuYMc+k="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.6.1_1631391036813_0.39513599023985124"},"_hasShrinkwrap":false},"5.6.2":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.6.2","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.6.1","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node":"^16.7.13","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^13.1.3","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"890ccc29c281e191974684f05c0dbc7f7716f696","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.6.2","_nodeVersion":"10.24.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-tXtrFFIOWCkWBCHlDb/IZSo6Fc3Ul+tKvTW+uGhyJP2Jpn0WToUXAekErTiFfTuil/qMHS3KTcuSprX2TmBGJg==","shasum":"207f5fa8d45fed376c76a6c70e16ad11015b0c69","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.6.2.tgz","fileCount":64,"unpackedSize":119557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPQ3BCRA9TVsSAnZWagAA6IcP/A6r3PhSzO4JgOQyVR8C\n2Iamt37vyvwHq7mkp0zme6qgqpSaglKbe5Vmijv8kN1+oBmR2dFmDqSabhUO\nY14N0aE7yMtCw2WU88f/VOWyFnLagnPBWDFfhVRUPm81V+qNOe9rTWkBcRp3\n+bBRikOO/4d5PmHNfMYoYy1aJRm6qdB5E763CHbYfziNErK7RBJEUXMvpNG8\nFXU6KR4I8pa8nkSifT03tkeFsEFK2cEYU+ZN+zIFOK4BnRhcnPUPn/gZ4nRU\nwVug+KamFCWuJVk5LttyuZDxwmUI2paSJcIbBLnhiTdfiY87Khhh7F956dhV\nyh4nARgV6eKTvHT1myklP7Pj7vrcuTOYkQoct5aI2FmV6lH+GSoN2ozXx/yq\n9G+4zR2607BudOvCzNBMJveZpcgCMADiBOvXPXVP3J/LbEFDgrYwMX6UhXpE\nClzBmfVArjSvft8apjIX9mCU2v0Yv5QoT4ZfUrJe6R7KowC3P5d5O7k56BHm\nJ4V94GQYEzMNNjRosnd9NuBvdfTDk3ZUb73iwNQxFwcXuHQA3I2/1ezaR77S\na47aJhhSCqC/EZBIjlC7cNOWF0BNXniV/kzZtQMgK25/8MO6XV/msAfMtWU6\nZCvgLwfQZHHZKx/TEdbP9S8wJQEXGu46/D4Jku4A5HCoA5xszRWyHlk7qAl8\nG45A\r\n=Q5y9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFRpG7ILW5sJ1M+E5QqbbRkkvOGnvbjDueBLuVSYpyH+AiEA/LbgUAShYPAl2tzJjZYoFj6im851EVGkskg5p4oWNzM="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.6.2_1631391169180_0.40427426382443765"},"_hasShrinkwrap":false},"5.6.3":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.6.3","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.6.7","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node":"^16.7.13","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^13.1.3","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"fbc26f0026f9e360123d4cf2426426a5ebc2f789","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.6.3","_nodeVersion":"17.4.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-UO0iYgN0Iwn3D6AovfX7A1X7c2bqZHX5VdkENiGIi2mY+dth93RbHFh7Vs/lldoVKQFleLiZv/0W73sp6wvoQQ==","shasum":"65e8841a1ef4373510e37b3dc646aa9f2eaf744c","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.6.3.tgz","fileCount":64,"unpackedSize":119558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6FYWCRA9TVsSAnZWagAAqfoP/0tCiNI3jTj/+g0D1cnz\nKO4JvuhuiyOy1bgcMJB3YsGpjsphTHaVKoiY89tWVDJkArrPdW0GgAt7y8u+\nbwlcjOz+L2N0qmwkHzCrp7WLlkFm8RJxkDCbPZvdUl7HCIrV8hmn+WTIfSWH\nJOCxXzKVZKR2NfZVPl7fWNO09fVs9BfMeUEBaRgWaI4drPvJ8eTe656FzfUb\nZTjdbdEQzhNLO2jh/3okHKgq+ocI0qmoZhGEW4X3nqNBR8X62SSTn+SR/9q4\nJjmhpkK+m0BZ9pPtvc9+DRWtH5SomPnI0Ast6EkzRgbZxt9VMv+UMlVaVpLd\nsRbkoWsEXytEGZvu/HYUbyM36MrqIO7TWQBAQHWZg3zysTU5zlJo8TRidh8L\nT5rMHE69y3hVqt7uV3L+xueBMzrJBJbsOd/4u1lGDHn82paAtvxlYeQODdqS\n5gWsdpArOQPn0gq2JapY1vkiDvlkSSNShf/oMqFyjs5JJ0Cp69Ho6o+gLgI/\neaAo4+zRYswaTeVqJjtc8P061xYFacEEU0Hw1hlX55+AAx9gRrC8iyygODoZ\ndgh4ARC7zSwn7RGxLeiawWnXtY14spkJjvGKYQxB+T+I+OuNrJobnCejBm9h\nz4jnYGa1s36EGBS5hpW+TjU/Go18z+jcJDPflVMwdM0IX2yXPNYoMHLU8diD\naaQo\r\n=p5yo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGTHLK5jYzgh/J5Mw4Wk43cGVenqySr3/xJi01SGJHkTAiB3fh75SAoVmh0oqIE4Juuh1XZZ5LOHSlcJWdt2Lryk/g=="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.6.3_1642616342727_0.6345200129757869"},"_hasShrinkwrap":false},"5.6.4":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.6.4","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.6.7","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node":"^16.7.13","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^13.1.3","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"2223e35ec8a786ffd95515d4537e03a009368d97","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.6.4","_nodeVersion":"17.6.0","_npmVersion":"8.5.1","dist":{"integrity":"sha512-kuPgWu8e9HqYr+hkPrEqWFdJIYxZ6nowC+H4XomN48dhyvMUDibBJkIn9IxcEAUb777L3VudifyhFOxTmMQaFg==","shasum":"ac5cc64ce1ecf0164549d617143c7d131965bd23","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.6.4.tgz","fileCount":64,"unpackedSize":119912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiImIzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoenQ/9Fyc7CeALhWcNcNuKeHuJ2rdCR8GNElDfIP5PbbZW19EuPn0b\r\n4oaT0Oe0ASyry+5mS+XbxmxR/UZK1VzwdQs5KXZA5JW9lZjK2VyChoH8flIq\r\nGsrEir0jMSbuLvEvJk2GIEPAgiwmckI1XXTNvLzzhTdWcgtW2prAJvd5ZE+G\r\n57eG5ay4xAV7rCTcv0yzmloXp3HLv5L9A81W/NXwDMXb6ZUzT59nAUsoc0A/\r\nCnNRrmDH4O56kwxNMl0ZQNn/aArOhaK/+IFAmf/mzLYH+fMa9ETbqcVjmxv0\r\nwJY+umm3LahHW8g/YKGlc+OQPlS4nXsrDXJTrruf6slZ/SZyahA9eK4SGawr\r\nL/kvkXT+bqbByzeTnBOk1kXNj2jFxT4wqFZT2tDEG7NkYFkoQUAdAmwhM8Yi\r\n6Hiwz90yT4V7FJg3Sx0yQWJPsr8YT38QQzyijBwHjr5dT3EKam3/CKfRRJwV\r\nBAlmKfbHoPxx2EPhnvk+TSgcASeAWMAwSbPain2pCl6yH9+04o55Kwc4ItoJ\r\nv22igGH/vKkNw/N8z429/MY38wq2I1OWi/AMiDNywfVk50w9/W6gY4kwZP0m\r\nBfGStZkK2eJBBECfjn879SjYDC+/aK6TVx1YTy37+YtNn1wcTdgTUNf6+jOX\r\nzdl8roD06BAklyK3WMEimU9U6nlsrn8b3D4=\r\n=WiTx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs7vot5eud4sutCG9wiGAy5Y73WL2WMtmIkgUYsbs1UQIgKy/n0HrBvWE+ltHF4oBhJaLzWbvnP9YT2IF3NI0dbtM="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.6.4_1646420531155_0.34996018679624985"},"_hasShrinkwrap":false},"5.7.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"5.7.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^3.9.2","iconv-lite":"^0.4.24","node-fetch":"^2.6.7","source-map-support":"^0.5.9"},"devDependencies":{"@types/jest":"^23.3.2","@types/node":"^16.7.13","coveralls":"^3.0.2","jest":"^23.6.0","nock":"^13.1.3","ts-jest":"^23.1.4","tslint":"^6.0.0","tslint-config-standard":"^8.0.1","typescript":"^3.7.5"},"scripts":{"lint":"tslint -p tsconfig.json","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"4386c5e973859d2df90bf1ac10eaf3a0993dd8ec","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@5.7.0","_nodeVersion":"17.9.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-r6jvA/I6bDFMaSCGLVv3KznzbsNr+pQGcanH8ezYH1bjEJEDVdZr2jcPrgdrnTlFRCDGy+sns2jG/kVwm/kMzg==","shasum":"b6328b01e6dfd5afc9598ba9d44da8a2c56ff55c","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-5.7.0.tgz","fileCount":64,"unpackedSize":120659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0YUvhWzuvQ8pb+pQLjgnxlJGHdoM9b2JXnZzYhjGhrwIhANBFCyQ/CIXfoGFXxnZcNaa7n5GH0Em2I7ypS2FVuGtu"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJih7R5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9xA/+OBTBUdioVT+6f9TZItBRdg5c26px2E9KNlWnjTiRFOCKQHar\r\n8rdKd235jxC2zI+S9M4ft+zvW3d9rFUPALOlfYDAfRTunWMwc83swi59OEUB\r\njACD5j1Dbf+tqftIxNHbR3ixIayJEj05P8Wvx/NN7uaJqM394T4/BXddoVFV\r\np+H0JV4Af23I2rPa3YrIzG1cGJhX44ZJCbwAUIptf0NiA0DUEIjMcKOC5VHS\r\n/C5OHCvrKXn5d+lkrjPWA7XvP1ZItDhV/Md8UDi1/z6B/cENO0MKzCcQlfwc\r\nPMBYWi7R0PBvLiCAJ74DyTpUNk8SMuUGlaW7t20XnraCbYqfXhGM68ODxrjs\r\nDawkGpMG0Z3NaFNIbWk/gSw18/wwgaerkR+1Mv8K6B2KManAfBq6hzBp/S7u\r\nDPHlFTdVTjTBgd3U3p4eEyfKBA7op1B6GEl+tPyzOudoi/d7h4009euCl2xN\r\nCgaMFkkhdKk9N9KeKzwzpI22NQtUlkTPQYjH5qQzguIse3UVG49ZifMUruOR\r\nSFCPdrtVPGgNC0TShT5/dEw2vO+VdstjFeDBFrhtZDgBqRAwKLvGsEV+b4yj\r\ncu2n4kjxfEPzpQdn92HEj9TUVTkeYXABBa9f+X9p6SGu9x29HqI6CojEnubz\r\nnXy/fCHwBR/lyN30XvYU1bYPZjsqv8p6NM8=\r\n=ta2f\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_5.7.0_1653060729680_0.7419099788105765"},"_hasShrinkwrap":false},"6.0.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"6.0.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^8.0.1","iconv-lite":"^0.4.24","node-fetch":"^2.6.7"},"devDependencies":{"@types/htmlparser2":"^3.10.3","@types/jest":"^23.3.2","@types/node":"^16.7.13","@types/node-fetch":"^2.6.2","@typescript-eslint/eslint-plugin":"^5.40.1","@typescript-eslint/parser":"^5.40.1","coveralls":"^3.0.2","eslint":"^8.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-unused-imports":"^2.0.0","jest":"^23.6.0","nock":"^13.1.3","prettier":"^2.7.1","ts-jest":"^23.1.4","typescript":"^4.8.4"},"scripts":{"lint":"eslint . --ext .ts","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"c4d9a3104a6c7f003511c867143e930b20dc413c","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@6.0.0","_nodeVersion":"17.9.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-gBu3HEBf+TOKDxKx3ajARyzYZ70iJDiLOU25KrSuF93oO8ORtOW6Ae4yKrN3DXaE0GIYn9QqsXKjvNn7gWQ0Hg==","shasum":"a451e41232d43143a1296c59b30717cab5682765","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-6.0.0.tgz","fileCount":69,"unpackedSize":131283,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAtwck8h1SJHlEKt8CeMMkdIk1xcGyFaGwJ0PR19+eLKAiARnXGRJlp5IxZbHZlND3OWrqxr5EpLtE/Vbo0TkfzRiQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVLbJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpA3g/7BqEKrxnAH9KO3mezwmsA4BoWQXvHAn6XCIAHeaJ5Wsd4+tnR\r\n4SIfk/8HFw73p5Af9ECKegRGDt8z1kjXbKDFvxUhtztWoOEBaQ/gDV7C/bW/\r\nCDmhd2lwA9PxKmExI87sIBMhoXls8b15JkQd9KsCqm0i8FQ8exJw6Ss0StGQ\r\nsKgaQhchTwXmN8R7aWIwR6/7c21Q1d0R8ZPftKlU2ABRuLgb5dl72sdWd9oL\r\nj3w2udrhD7wyuJiCpuhwVXnljkDeb1IAmkndv/Kdx93uDKrCrJ9wIpg8AwWI\r\nLf7uMr+2zp2pTqAaLiZ587rO6qBza/Nd1NLk/Dsp0ycYceTgNavQNZITcacS\r\nUoROGGC1g0EEjsajS5OVqkH27T1cejJ1XeeU4tSe93Gvj+qA/6rF2ESVuI24\r\nc0QyCS38F1NA5199MFjUNvFrulMErOmX4uMGshrbz43T7+lnA21n9EKcIRkZ\r\nr1vbIUC5JSwa/eR3Yrkx+7dvKNdOpZDseKmY6IGiva7wVq3dS/jXMV3xJKaC\r\n6GBOL5cbqhUs7BSJItR7lxPQwi6rLchwcFiRGLuRtVQHrFot/TqiAf1gp3gz\r\n0WqOt7v6S7n/gi98t2sLlkCdmIaNsgNibS7TuPscpqnXCLxlr7/30LtqbFMp\r\nvWD0UaQB2lBwjkr/F4dQurNVknOFigWPYCc=\r\n=2NUC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_6.0.0_1666496200939_0.9309486028541716"},"_hasShrinkwrap":false},"6.1.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"6.1.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^8.0.1","iconv-lite":"^0.4.24","node-fetch":"^2.6.7"},"devDependencies":{"@types/htmlparser2":"^3.10.3","@types/jest":"^23.3.2","@types/node":"^16.7.13","@types/node-fetch":"^2.6.2","@typescript-eslint/eslint-plugin":"^5.40.1","@typescript-eslint/parser":"^5.40.1","coveralls":"^3.0.2","eslint":"^8.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-unused-imports":"^2.0.0","jest":"^23.6.0","nock":"^13.1.3","prettier":"^2.7.1","ts-jest":"^23.1.4","typescript":"^4.8.4"},"scripts":{"lint":"eslint . --ext .ts","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"23211f29208466112d30947cce1c016d8c955018","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@6.1.0","_nodeVersion":"17.9.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-EhTVlhMkQWaDnsY5aRTyLSPa6CRdjLg70fRpisHgEusjJWGK6u9Qc1tlYuVO51l/po3h2jkO6MuTVcShFLztCA==","shasum":"53b2f45586cede407745e42d8d2f2a273fefd95d","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-6.1.0.tgz","fileCount":69,"unpackedSize":131960,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChNME+LtrOdM/xlYioeWwdYSq+xVRKrp343qVQtxx1IAiAD7Ieimusf+FE1gIAhSNKfh8CvOuA0tu13+AzRDi6KaA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjlU7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrG4w/9HGdWqdNPMjNyd4OnMikuzFbPPOERlB1tT9tewnRIRkhiQ71f\r\ngcMGSg+pGRQZ38NdqqiS4lu0ubg76LdCHToLtWZWDuT0f0Jbv4dwIBSImy+P\r\ngpc1HV/1t4URW0ftXLLm4apO6fgQeMyf5qxLYHKmyWLLq9C47ITPe/OFKQO8\r\n9VyJBllqHoXZLJHpdu7w/e2icBqG485UthQqLt/v+1HY0aPCmMd06F7G5WKS\r\nETm48BGX63QI78f92wvtxsI9/gBCfxkzeonXl56X3z5IXQhPw+8p6DFbXGoK\r\nKufR5VQrwqZ9KuilsCz1WuOsg7UeSsG5SET8YVoUa63TrsU36Ojl3O2Pn24x\r\ntVOGb3+NGdYmEjvYge3Md+XeLnDdzVwtn4NgtarwIHxcCE1pOUV1o5GA9AMq\r\ndfmbM4+fSu0LMc+YZ0IG3gX7v3giNHDI1aPcSP/Y320+jl/nX3uK2IewtMjl\r\nuQkOdcZeyfI8jlUtF9X7QKfgNHRRIPbSk4IJqNQL8QJ43PiDYRMrHfQY9MDF\r\nBiWT/MmywnHJ0+1/lhX6nAh22E4hwsGMVxqqgQin+cJyMIf72al9ZNwGqZ7J\r\nposIx+ehAjMzr5CbKxrEH90PF4ebIumcpFrc4c0lCxbQMgiRyzC7ZbxaiyUs\r\n1/06eQJHtGiAAoK4mOJd2bBp0l0WVDApI8U=\r\n=MuBO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_6.1.0_1670272315329_0.7152434023524441"},"_hasShrinkwrap":false},"6.2.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"6.2.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^8.0.1","iconv-lite":"^0.4.24","node-fetch":"^2.6.7"},"devDependencies":{"@types/htmlparser2":"^3.10.3","@types/jest":"^23.3.2","@types/node":"^16.7.13","@types/node-fetch":"^2.6.2","@typescript-eslint/eslint-plugin":"^5.40.1","@typescript-eslint/parser":"^5.40.1","coveralls":"^3.0.2","eslint":"^8.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-unused-imports":"^2.0.0","jest":"^23.6.0","nock":"^13.1.3","prettier":"^2.7.1","semantic-release":"^20.1.0","ts-jest":"^23.1.4","typescript":"^4.8.4"},"scripts":{"lint":"eslint . --ext .ts","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"608b61dc10d86ae1a098f47e4838588915757021","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@6.2.0","_nodeVersion":"18.14.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-zo448qaysLfffQ7PdfTexpDiA+qXrdkPJgGtyA6sBF8+27DaLZcSinZBBPD/ZOCcuyDTTE1cVjsjQwVN/Nro9w==","shasum":"60621c9d44fdca047a65fad993e329187fa3eb3a","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-6.2.0.tgz","fileCount":69,"unpackedSize":132097,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGVD8dBKc/ZQ4aCz3EO5+z6xoVZ2aZsgyPA9ELISGZHAAiAwsK6OjJ46fUNQ4rvk9dTZ4ydM0/IgTS7jImOM4W0vIw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8BCQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4Kw/+Kao0HSdBo0KCwZLG7arhxs6kyaiLpkm3SPvb5ErbF/CVl8gz\r\nAGOcTe2gkLJ1SzGyB30lQyxXy9MaPDDICKGCu/iQimjbTdYYdUnVUdAmWtYp\r\nH+b2T0BGzwQiMs1/ELpp2d0O8r2MxtVsWJCos4I9l53qAskoNDTv4MJiECDu\r\nJv3D1drsTCYctUaUGt+cWk+ksEy96Px5YF/rnmsMT7eY8H6dcpc25qPkAx0D\r\nqisWZZwvKglquI9WbaLt96Qh8KOVd9Qa/oMJXtpb7QeOqeyCJsTc/gGXeZ1R\r\nTpw3y6xqhyb8DOA7PplL4avP2W47ZTZr2iTAxvmvOWU8h9m+kDpMfOKFPPOt\r\ndluvJDLhjUvq+NUP7zK/q+IXaqE0Ct/7JH7LfxxmXLouK7y+b1JZLBnwaTql\r\nmBFdQ4J0svpB+zKOecbRIW5w2pcqylPFXfKPQH5+6JXFnrAG8Lt7bjDRmF62\r\nw2YY1U+JGmZhAiap6VF5tXcRHdpVBEP5PdQvvOrj2+nMHH56rYurDfGg8Ps4\r\n5e1KZjN+HjJtQWvk81cJEKspWVGoZt7ZPJmuUT9jzo/rUFfzv2NT0K/x2ffh\r\nWU8zX/FhUfcarl6SEOLI5Yjy0tVIIgAH3p2R0WTELnzZBFZ2lAutj+rFgvfO\r\nNe2XTw3OC4aCWLs1D/MBIKT6fhPGg5A4UA0=\r\n=mj7j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_6.2.0_1676677264557_0.36604231787358055"},"_hasShrinkwrap":false},"6.3.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"6.3.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^8.0.1","iconv-lite":"^0.4.24","node-fetch":"^2.6.7"},"devDependencies":{"@types/htmlparser2":"^3.10.3","@types/jest":"^23.3.2","@types/node":"^16.7.13","@types/node-fetch":"^2.6.2","@typescript-eslint/eslint-plugin":"^5.40.1","@typescript-eslint/parser":"^5.40.1","coveralls":"^3.0.2","eslint":"^8.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-unused-imports":"^2.0.0","jest":"^23.6.0","nock":"^13.1.3","prettier":"^2.7.1","semantic-release":"^20.1.0","ts-jest":"^23.1.4","typescript":"^4.8.4"},"scripts":{"lint":"eslint . --ext .ts","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"47d2baa1ed762716fb6016d69698cfb158e2ab54","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@6.3.0","_nodeVersion":"18.15.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-f9B9jubrrbzkpciehcGVEha1d7emAYdCAxrYRwOv+U3b+vWOsk/Ou5R2FncPArVBzvMID3LFSSgS08BV4KFijQ==","shasum":"91c40b3bb5dd0e81866e4ba6f8083a1f28c6b49c","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-6.3.0.tgz","fileCount":69,"unpackedSize":133589,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMFhyqbyqg66cKNAp9NfOwW3tJMUGQ0/g4qXbaTqhZ9QIhAKoGlEaujaOJaNNy1zm4PwZVdgYY+pRCQxHJAyzF3OV1"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkI0TFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0eA//Zt8OewJbk14jBv72l2YTM9b+47qmTNwt7N9DIq9I4/WPVxco\r\nS0aQTe+ZynQP268V+XkZAXV+8B3vabJ0K/hS8IWsxjPT5h9hMy/bYMgb8zA0\r\nnDb0BK20Kge1585aKt8WtlmprCX+X0b60wvYQ/zyEPSHiNadWpX75+LfNDdK\r\ndsgDICWUUEEJcWCrzFTfUb7NWr+T5VKdGHgbv3ZxK6UWgKb27OlhyaWzxnx/\r\nAuOOew0eWwh4cv0m9faDto6AEpdD+f52POSDVJwQQdxlsYfPvUmRPiwMOOIi\r\nwm66ujwuPsUVFSqee9yGHpTWQLtzp69tnm/Cxe/1GTnVLWX1lAFXxjq7QCCH\r\nt5wFjkoklYWD5pXnNO43WCVLoiIvz4IdA/TWxp+1WmNl4x9Uuo+sr06cGk8r\r\nipnvmq3bGgtzwisZSv/YL45DHlM0dBX2gEqY1XJ7S9Smh+PfUMfzln8qoyk+\r\nji+y+x0T4u7gICzf8r5PgE3c+hXJwTQbPYWXk6mmjvX06V+6J7ScvS/3aSrL\r\nCreAvq97tg0p4a0wsT6ig5O4c6+rjfh3nRvkQNWkzF0KBbQwLvilYCGfA1e/\r\n6JeZvXn//DNmpQRMicTU9J3yn7IeLdK3zzf8slsLXFkXeruN/wIw17+DwTq2\r\nN2u2/sBn3blERPYg4vCW7EgCFcJ6KTcnC6M=\r\n=vDhO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_6.3.0_1680032964793_0.17381557098935274"},"_hasShrinkwrap":false},"6.3.1":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"6.3.1","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^8.0.1","iconv-lite":"^0.4.24","node-fetch":"^2.6.7"},"devDependencies":{"@types/htmlparser2":"^3.10.3","@types/jest":"^23.3.2","@types/node":"^16.7.13","@types/node-fetch":"^2.6.2","@typescript-eslint/eslint-plugin":"^5.40.1","@typescript-eslint/parser":"^5.40.1","coveralls":"^3.0.2","eslint":"^8.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-unused-imports":"^2.0.0","jest":"^23.6.0","nock":"^13.1.3","prettier":"^2.7.1","semantic-release":"^20.1.0","ts-jest":"^23.1.4","typescript":"^4.8.4"},"scripts":{"lint":"eslint . --ext .ts","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"0b5197dc03e199af45564a4cf084c17e7be4b36a","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@6.3.1","_nodeVersion":"18.15.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-hPSc4CifebcfCTHF+jGz0Qo67P/OPyQm/zC46tgVXvDhBEYVnoZlJ3e1WOmlmpoHx8KkmikbbeLlIMYDdRFM9w==","shasum":"ca86878b2b425743977acbf980e0b3785ae9d2a9","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-6.3.1.tgz","fileCount":69,"unpackedSize":133643,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3oM9pV9TR1FvzebYJQNB1RDC8sPou0topU/vdpzdPlAIhANJTPKth72HRQKlJqqkmNxqEGPsrMM2AvicFlOKES37I"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLwOrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJdg//bJY56PT1g1jTZ0Eibv570ensYrOijOJ+7T9Jx0EyWfiekNAo\r\nqHVYtwrdXAtkrtw6TLUGkv3jatvrm+7/Lu/jQV/7NZwkqwpea+dt6/J5gRVN\r\ngNu6AS0CL1chVGfDyhN0GDQvGNCcztGnpnzRSs5vhpw7kLTUT1s+YmSz850G\r\ndZS9MrWt7dqgAEljIKL9TCBWtd1GR/XghOHFMTUeAXhXFZoXvKcf6QKtFc+i\r\n1tWoXzVnJ3HgxC4HkgLirRNOTyuCM/j/HNbQa/TqMphp/pfeVkZtHIpflIDR\r\nIzzf9tTFs5f3rNvT6Rmnerz4FhkIrAd/cEQge2UrVlLxDwy8UZSK4dIbz/a5\r\nxN9JAa5Ru+mUolraWvL2mo85k+elCdxTIo5Cl8K6hgc5Ym2lkFhbHsqlMeRi\r\nTAk2Vx4wNhFuDT9AUC2zEFXJ3GBZwzEDeiNZQVgekInt7wKaR8uKqd6OO9IR\r\ndG9Nt+dVZ/5WPOpJurRfr9etJMBIFdehY0sgDTEDM3+miqsrp9oPtgjBchX/\r\noBJZektDy7/HGsLN7+5g201LcU/ONMbpoQZrMnmo9Z1MSKZVhxiLTzT+Zlfj\r\n005U6ilKZWV7PTRLYpT8uGj0xZiQPzr5lQ2Cgo5F10KNUUqGUpWM2gGcsVBG\r\nj3ISjNKMm3HkDISJBKVxHCyom+52CDmddu4=\r\n=4P7r\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_6.3.1_1680802731473_0.8528834938321679"},"_hasShrinkwrap":false},"6.3.2":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"6.3.2","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.1.0","he":"^1.2.0","htmlparser2":"^8.0.1","iconv-lite":"^0.4.24","node-fetch":"^2.6.7"},"devDependencies":{"@types/htmlparser2":"^3.10.3","@types/jest":"^23.3.2","@types/node":"^16.7.13","@types/node-fetch":"^2.6.2","@typescript-eslint/eslint-plugin":"^5.40.1","@typescript-eslint/parser":"^5.40.1","coveralls":"^3.0.2","eslint":"^8.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-unused-imports":"^2.0.0","jest":"^23.6.0","nock":"^13.1.3","prettier":"^2.7.1","semantic-release":"^20.1.0","ts-jest":"^23.1.4","typescript":"^4.8.4"},"scripts":{"lint":"eslint . --ext .ts","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"607f295e9f4f63555688d9981c0ff1753e011d69","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@6.3.2","_nodeVersion":"18.16.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-F2oC3nc/p/ARgAghuScaPQMds95S/hLZwjdhZiYhQDGvwc67V4rkiLuLyatlb14I3scO40rVMGzRiC8OTEKPkQ==","shasum":"6abed60d7d981ea3e5447d052c6a27a6476153b0","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-6.3.2.tgz","fileCount":69,"unpackedSize":133715,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNzT8vyTR+BgXVNy31IW2oCFRkuy4/rT23ojaR1Q6/IAIgJViAznn50RtOxaE2RlVU8rK/IquX/e7Pn4yqhbikiwo="}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_6.3.2_1683913538826_0.13055778906725535"},"_hasShrinkwrap":false},"6.4.0":{"name":"unfurl.js","engines":{"node":">=6.0.0"},"version":"6.4.0","description":"Scraper for oEmbed, Twitter Cards and Open Graph metadata - fast and Promise-based","main":"dist/index.js","types":"./dist/index.d.ts","dependencies":{"debug":"^3.2.7","he":"^1.2.0","htmlparser2":"^8.0.1","iconv-lite":"^0.4.24","node-fetch":"^2.6.7"},"devDependencies":{"@types/htmlparser2":"^3.10.3","@types/jest":"^23.3.2","@types/node":"^16.7.13","@types/node-fetch":"^2.6.2","@typescript-eslint/eslint-plugin":"^5.40.1","@typescript-eslint/parser":"^5.40.1","coveralls":"^3.0.2","eslint":"^8.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-unused-imports":"^2.0.0","jest":"^23.6.0","nock":"^13.1.3","prettier":"^2.7.1","semantic-release":"^20.1.0","ts-jest":"^23.1.4","typescript":"^4.8.4"},"scripts":{"lint":"eslint . --ext .ts","test":"npm run lint && port=9000 jest --verbose --runInBand --coverage --coveragePathIgnorePatterns '/test/'","travis":"port=9000 jest --verbose --runInBand --coverage --coverageReporters=text-lcov --coveragePathIgnorePatterns '/test/' | coveralls","start":"node dist/index.js","watch":"tsc -w --outDir dist","build":"tsc --outDir dist","prepare":"npm run build"},"keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"license":"ISC","gitHead":"a1b5a97fe85f1e9fcbd2c741e3c9688a3d6cd0eb","bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"homepage":"https://github.com/jacktuck/unfurl#readme","_id":"unfurl.js@6.4.0","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-DogJFWPkOWMcu2xPdpmbcsL+diOOJInD3/jXOv6saX1upnWmMK8ndAtDWUfJkuInqNI9yzADud4ID9T+9UeWCw==","shasum":"222cfc95b71d26529b5baa5dde9813019fa87c67","tarball":"https://registry.npmjs.org/unfurl.js/-/unfurl.js-6.4.0.tgz","fileCount":69,"unpackedSize":135171,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8ypdmxgoIq3TvVHboM0gPQHvnn9PX2f5sb9T3iH8b+QIhAKVu9Bc4ZgjHcSwiJoSRLaE8DBzMePznfNvq/ba7N+YZ"}]},"_npmUser":{"name":"jacktuck","email":"jack-tuck@hotmail.com"},"directories":{},"maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unfurl.js_6.4.0_1707861627666_0.9833512075440491"},"_hasShrinkwrap":false}},"readme":"# Unfurl\n\nA metadata scraper with support for oEmbed, Twitter Cards and Open Graph Protocol for Node.js (>=v8.0.0). \n\nNote: Will not work in the Browser\n\n[![Travis CI](https://img.shields.io/travis/jacktuck/unfurl?style=flat-square)](https://travis-ci.org/jacktuck/unfurl)\n[![Coverage Status](https://img.shields.io/coveralls/jacktuck/unfurl?style=flat-square)](https://coveralls.io/github/jacktuck/unfurl?branch=master)\n[![Known Vulnerabilities](https://snyk.io/test/github/jacktuck/unfurl/badge.svg?style=flat-square)](https://snyk.io/test/github/jacktuck/unfurl)\n[![npm](https://img.shields.io/npm/v/unfurl.js?style=flat-square)](https://www.npmjs.com/package/unfurl.js)\n\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/jacktuck)\n\n## The what\nUnfurl _(spread out from a furled state)_ will take a `url` and some `options`, fetch the `url`, extract the metadata we care about and format the result in a sane way. It supports all major metadata providers and expanding it to work for any others should be trivial.\n\n## The why\nSo you know when you link to something on Slack, or Facebook, or Twitter - they typically show a preview of the link. To do so they have crawled the linked website for metadata and enriched the link by providing more context about it. Which usually entails grabbing its title, description and image/player embed.\n\n## The how\n```bash\nnpm install unfurl.js\n```\n\n### `unfurl(url [, opts])`\n#### url - `string`\n---\n#### opts - `object` of:\n-  `oembed?: boolean` - support retrieving oembed metadata\n-  `timeout?  number` - req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies)\n-  `follow?: number` - maximum redirect count. 0 to not follow redirect\n-  `compress?: boolean` - support gzip/deflate content encoding\n-  `size?: number` - maximum response body size in bytes. 0 to disable\n-  `headers?: Headers | Record<string, string> | Iterable<readonly [string, string]> | Iterable<Iterable<string>>` - map of request headers, overrides the defaults\n\nDefault headers:\n```\n{\n  'Accept': 'text/html, application/xhtml+xml',\n  'User-Agent': 'facebookexternalhit'\n}\n```\n---\n#\n```typescript\nimport { unfurl } from 'unfurl.js'\nconst result = unfurl('https://github.com/trending')\n```\n---\n#### result is `<Promise<Metadata>>`\n```typescript\ntype Metadata = {\n  title?: string\n  description?: string\n  keywords?: string[]\n  favicon?: string\n  author?: string\n  theme_color?: string\n  canonical_url?: string\n  oEmbed?: OEmbedPhoto | OEmbedVideo | OEmbedLink | OEmbedRich\n  twitter_card: {\n    card: string\n    site?: string\n    creator?: string\n    creator_id?: string\n    title?: string\n    description?: string\n    players?: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n    }[]\n    apps: {\n      iphone: {\n        id: string\n        name: string\n        url: string\n      }\n      ipad: {\n        id: string\n        name: string\n        url: string\n      }\n      googleplay: {\n        id: string\n        name: string\n        url: string\n      }\n    }\n    images: {\n      url: string\n      alt: string\n    }[]\n  }\n  open_graph: {\n    title: string\n    type: string\n    images?: {\n      url: string\n      secure_url?: string\n      type: string\n      width: number\n      height: number\n      alt?: string\n    }[]\n    url?: string\n    audio?: {\n      url: string\n      secure_url?: string\n      type: string\n    }[]\n    description?: string\n    determiner?: string\n    site_name?: string\n    locale: string\n    locale_alt: string\n    videos: {\n      url: string\n      stream?: string\n      height?: number\n      width?: number\n      tags?: string[]\n    }[]\n    article: {\n      published_time?: string\n      modified_time?: string\n      expiration_time?: string\n      author?: string\n      section?: string\n      tags?: string[]\n    }\n  }\n}\n\ntype OEmbedBase = {\n  type: \"photo\" | \"video\" | \"link\" | \"rich\"\n  version: string\n  title?: string\n  author_name?: string\n  author_url?: string\n  provider_name?: string\n  provider_url?: string\n  cache_age?: number\n  thumbnails?: [\n    {\n      url?: string\n      width?: number\n      height?: number\n    }\n  ]\n}\n\ntype OEmbedPhoto = OEmbedBase & {\n  type: \"photo\"\n  url: string\n  width: number\n  height: number\n}\n\ntype OEmbedVideo = OEmbedBase & {\n  type: \"video\"\n  html: string\n  width: number\n  height: number\n}\n\ntype OEmbedLink = OEmbedBase & {\n  type: \"link\"\n}\n\ntype OEmbedRich = OEmbedBase & {\n  type: \"rich\"\n  html: string\n  width: number\n  height: number\n}\n```\n\n## The who 💖\n_(If you use unfurl.js too feel free to [add your project](https://github.com/jacktuck/unfurl/edit/master/README.md))_\n- [vapid/vapid](https://github.com/vapid/vapid) - A template-driven content management system\n- [beeman/micro-unfurl](https://github.com/beeman/micro-unfurl) - small microservice that unfurls a URL and returns the OpenGraph meta data.\n- [probot/unfurl](https://github.com/probot/unfurl) - a GitHub App built with probot that unfurls links on Issues and Pull Request discussions\n\n\n","maintainers":[{"name":"jacktuck","email":"jack-tuck@hotmail.com"}],"time":{"modified":"2024-02-13T22:00:28.075Z","created":"2017-04-28T17:40:09.156Z","1.1.5":"2017-04-28T17:40:09.156Z","1.1.6":"2017-04-28T19:25:32.081Z","1.1.7":"2018-06-27T11:15:26.920Z","1.1.8-beta.2":"2018-07-11T11:21:37.392Z","1.1.8-beta.3":"2018-08-11T14:14:47.141Z","1.1.8-beta.4":"2018-09-13T08:44:51.487Z","2.0.0-0":"2018-09-19T22:47:26.288Z","2.0.1-0":"2018-09-19T22:56:31.543Z","2.0.2-0":"2018-09-20T10:51:08.818Z","2.0.3-0":"2018-09-20T14:26:33.653Z","2.0.4-0":"2018-09-20T15:34:32.153Z","2.0.5-0":"2018-09-20T15:52:56.984Z","3.0.0":"2019-02-16T21:04:28.013Z","3.0.1":"2019-02-17T13:58:17.409Z","4.0.0":"2019-08-06T19:34:03.460Z","4.0.1":"2019-08-30T14:00:04.862Z","5.0.0":"2019-10-28T20:27:25.298Z","5.0.1":"2019-11-02T13:25:49.939Z","5.1.0":"2020-02-19T09:58:27.500Z","5.1.1-0":"2020-03-27T00:25:56.231Z","5.1.1-1":"2020-03-27T00:36:47.198Z","1.0.0":"2021-01-05T12:22:30.209Z","5.2.1":"2021-01-05T13:25:31.203Z","5.2.2":"2021-01-06T13:52:25.610Z","5.2.3":"2021-01-25T22:22:06.381Z","5.2.4":"2021-02-10T15:11:36.977Z","5.2.5":"2021-02-28T10:56:33.307Z","5.2.6":"2021-05-26T18:17:30.630Z","5.3.0":"2021-05-31T14:31:49.920Z","5.4.0":"2021-07-21T08:01:45.183Z","5.5.0":"2021-07-27T15:25:03.237Z","5.6.0":"2021-08-01T22:00:54.048Z","5.6.1":"2021-09-11T20:10:37.277Z","5.6.2":"2021-09-11T20:12:49.315Z","5.6.3":"2022-01-19T18:19:02.889Z","5.6.4":"2022-03-04T19:02:11.386Z","5.7.0":"2022-05-20T15:32:09.818Z","6.0.0":"2022-10-23T03:36:41.129Z","6.1.0":"2022-12-05T20:31:55.464Z","6.2.0":"2023-02-17T23:41:04.735Z","6.3.0":"2023-03-28T19:49:24.971Z","6.3.1":"2023-04-06T17:38:51.673Z","6.3.2":"2023-05-12T17:45:39.029Z","6.4.0":"2024-02-13T22:00:27.931Z"},"homepage":"https://github.com/jacktuck/unfurl#readme","keywords":["oembed","twitter-cards","open-graph-protocol","open-graph","ogp","scraper","scraping","embedding","embed","iframe","metadata","node.js","fast"],"repository":{"type":"git","url":"git://github.com/jacktuck/unfurl.git"},"author":{"name":"Jack Tuck"},"bugs":{"url":"https://github.com/jacktuck/unfurl/issues"},"license":"ISC","readmeFilename":"README.md","users":{"nelix":true}}