diff --git a/CHANGELOG.md b/CHANGELOG.md index fbdf08e5d..6429e559d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +### Bug Fixes + +* load dependency ([6344788](https://github.com/microlinkhq/metascraper/commit/6344788ddbfc27a03f3ce12b2a842cd438574cc5)) + +### Features + +* add profiling support ([9370e3c](https://github.com/microlinkhq/metascraper/commit/9370e3cdde056e86dcc2d189b3b22dd01a310372)) + ## [5.45.29](https://github.com/microlinkhq/metascraper/compare/v5.45.28...v5.45.29) (2025-01-07) ### Bug Fixes diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e010315c..f047c651f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,7 +42,7 @@ A set of rules under the same namespace runs in series and only the value return You can associate a `test` function with your rule bundle: ```js -rules.test = ({ url }) => getVideoInfo(url).service === 'youtube')) +rules.test = ({ url }) => getVideoInfo(url).service === 'youtube' ``` The `test` function will receive the same arguments as a rule. This is useful for skipping all rules that doesn't target a specific URL. @@ -52,12 +52,31 @@ A good practice is to use a memoize function to prevent unnecessary CPU cycles f ```js const { memoizeOne } = require('@metascraper/helpers') -const test = memoizeOne(url => getVideoInfo(url).service === 'youtube')) +const test = memoizeOne(url => getVideoInfo(url).service === 'youtube') const rules = [] -rules.test ({ url }) => test(url) +rules.test = ({ url }) => test(url) ``` +### Defining `pkgName` property + +Additionally you can define `pkgName` property associated with your rules: + +```js +const { memoizeOne } = require('@metascraper/helpers') + +const rules = [] +rules.pkgName = 'metascraper-module' +``` + +This is using for printing debug logs, see debugging section to know how to use it. + +## Debugging your Rules + +In case you need to see what's happening under the hood, you can set `DEBUG='metascraper*'. + +This is useful for verifying rule precedence and detecting slow rules. + ## Testing your Rules Since the order of the rules is important, testing it is also an important thing in order to be sure more popular rules are executed first over less popular rules. @@ -74,7 +93,6 @@ const metascraper = require('metascraper')([ require('metascraper-logo')() ]) - describe('metascraper-logo', () => { it('creates an absolute favicon url if the logo is not present', async () => { const html = ` @@ -92,8 +110,8 @@ describe('metascraper-logo', () => { ` - const meta = await metascraper({ html, url })) - should(meta.log).be.equal("open graph value") + const meta = await metascraper({ html, url }) + should(meta.log).be.equal('open graph value') }) }) ``` @@ -129,8 +147,8 @@ const metascraper = require('metascraper')([ describe('metascraper-logo', () => { it('it resolves logo value', async () => { const html = fs.readFileSync('index.html', 'utf-8') - const meta = await metascraper({ html, url })) - should(meta.logo).be.equal("https://metascraper.js.org/static/logo.png") + const meta = await metascraper({ html, url }) + should(meta.logo).be.equal('https://metascraper.js.org/static/logo.png') }) }) ``` diff --git a/lerna.json b/lerna.json index 79bbd6232..fb2c21756 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "packages": [ "packages/*" ], - "version": "5.45.29", + "version": "5.46.0-beta.2", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/metascraper-amazon/CHANGELOG.md b/packages/metascraper-amazon/CHANGELOG.md index 0e865b064..81e8bdb11 100644 --- a/packages/metascraper-amazon/CHANGELOG.md +++ b/packages/metascraper-amazon/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-amazon + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-amazon diff --git a/packages/metascraper-amazon/package.json b/packages/metascraper-amazon/package.json index 18e3e6614..a34d27a2b 100644 --- a/packages/metascraper-amazon/package.json +++ b/packages/metascraper-amazon/package.json @@ -2,7 +2,7 @@ "name": "metascraper-amazon", "description": "Metascraper integration with Amazon", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-amazon", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-amazon/src/index.js b/packages/metascraper-amazon/src/index.js index 6a5bac6d4..40c96d7a4 100644 --- a/packages/metascraper-amazon/src/index.js +++ b/packages/metascraper-amazon/src/index.js @@ -60,5 +60,7 @@ module.exports = () => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-amazon' + return rules } diff --git a/packages/metascraper-audio/CHANGELOG.md b/packages/metascraper-audio/CHANGELOG.md index e5e5b735e..ea97e4500 100644 --- a/packages/metascraper-audio/CHANGELOG.md +++ b/packages/metascraper-audio/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-audio + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-audio diff --git a/packages/metascraper-audio/package.json b/packages/metascraper-audio/package.json index 7df27feff..a840708d6 100644 --- a/packages/metascraper-audio/package.json +++ b/packages/metascraper-audio/package.json @@ -2,7 +2,7 @@ "name": "metascraper-audio", "description": "Get audio property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-audio", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-audio/src/index.js b/packages/metascraper-audio/src/index.js index 9ffd9b0c7..451e54e5e 100644 --- a/packages/metascraper-audio/src/index.js +++ b/packages/metascraper-audio/src/index.js @@ -78,7 +78,7 @@ const _getIframe = (url, $, { src }) => loadIframe(url, $.load(``)) module.exports = ({ getIframe = _getIframe } = {}) => { - return { + const rules = { audio: audioRules.concat( async ({ htmlDom: $, url }) => { const srcs = [ @@ -110,4 +110,8 @@ module.exports = ({ getIframe = _getIframe } = {}) => { } ) } + + rules.pkgName = 'metascraper-audio' + + return rules } diff --git a/packages/metascraper-author/CHANGELOG.md b/packages/metascraper-author/CHANGELOG.md index 2e66d2514..dc53a3dfe 100644 --- a/packages/metascraper-author/CHANGELOG.md +++ b/packages/metascraper-author/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/packages/metascraper-author/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-author + ## [5.45.28](https://github.com/microlinkhq/metascraper/packages/metascraper-author/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-author diff --git a/packages/metascraper-author/package.json b/packages/metascraper-author/package.json index aa24fac49..111fc977a 100644 --- a/packages/metascraper-author/package.json +++ b/packages/metascraper-author/package.json @@ -2,7 +2,7 @@ "name": "metascraper-author", "description": "Get author property from HTML markup", "homepage": "https://metascraper.js.org", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-author/src/index.js b/packages/metascraper-author/src/index.js index 59471d34f..00563893a 100644 --- a/packages/metascraper-author/src/index.js +++ b/packages/metascraper-author/src/index.js @@ -24,27 +24,33 @@ const strict = rule => $ => { return REGEX_STRICT.test(value) && value } -module.exports = () => ({ - author: [ - toAuthor($jsonld('author.name')), - toAuthor($jsonld('brand.name')), - toAuthor($ => $('meta[name="author"]').attr('content')), - toAuthor($ => $('meta[property="article:author"]').attr('content')), - toAuthor($ => $filter($, $('[itemprop*="author" i] [itemprop="name"]'))), - toAuthor($ => $filter($, $('[itemprop*="author" i]'))), - toAuthor($ => $filter($, $('[rel="author"]'))), - strict(toAuthor($ => $filter($, $('a[class*="author" i]')))), - strict(toAuthor($ => $filter($, $('[class*="author" i] a')))), - strict(toAuthor($ => $filter($, $('a[href*="/author/" i]')))), - toAuthor($ => $filter($, $('a[class*="screenname" i]'))), - strict(toAuthor($ => $filter($, $('[class*="author" i]')))), - strict( - toAuthor($ => - $filter($, $('[class*="byline" i]'), el => { - const value = $filter.fn(el) - return !date(value) && value - }) +module.exports = () => { + const rules = { + author: [ + toAuthor($jsonld('author.name')), + toAuthor($jsonld('brand.name')), + toAuthor($ => $('meta[name="author"]').attr('content')), + toAuthor($ => $('meta[property="article:author"]').attr('content')), + toAuthor($ => $filter($, $('[itemprop*="author" i] [itemprop="name"]'))), + toAuthor($ => $filter($, $('[itemprop*="author" i]'))), + toAuthor($ => $filter($, $('[rel="author"]'))), + strict(toAuthor($ => $filter($, $('a[class*="author" i]')))), + strict(toAuthor($ => $filter($, $('[class*="author" i] a')))), + strict(toAuthor($ => $filter($, $('a[href*="/author/" i]')))), + toAuthor($ => $filter($, $('a[class*="screenname" i]'))), + strict(toAuthor($ => $filter($, $('[class*="author" i]')))), + strict( + toAuthor($ => + $filter($, $('[class*="byline" i]'), el => { + const value = $filter.fn(el) + return !date(value) && value + }) + ) ) - ) - ] -}) + ] + } + + rules.pkgName = 'metascraper-author' + + return rules +} diff --git a/packages/metascraper-clearbit/CHANGELOG.md b/packages/metascraper-clearbit/CHANGELOG.md index a0aefc612..3ccb0da55 100644 --- a/packages/metascraper-clearbit/CHANGELOG.md +++ b/packages/metascraper-clearbit/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-clearbit + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-clearbit diff --git a/packages/metascraper-clearbit/package.json b/packages/metascraper-clearbit/package.json index 44a46b5df..459aba093 100644 --- a/packages/metascraper-clearbit/package.json +++ b/packages/metascraper-clearbit/package.json @@ -2,7 +2,7 @@ "name": "metascraper-clearbit", "description": "Metascraper integration with Clearbit Logo API", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-clearbit", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-clearbit/src/index.js b/packages/metascraper-clearbit/src/index.js index bdd262cff..69a368e68 100644 --- a/packages/metascraper-clearbit/src/index.js +++ b/packages/metascraper-clearbit/src/index.js @@ -43,8 +43,12 @@ module.exports = opts => { const clearbit = createClearbit(opts) const getClearbit = composeRule(($, url) => clearbit(parseUrl(url).domain)) - return { + const rules = { logo: getClearbit({ from: 'logo' }), publisher: getClearbit({ from: 'name', to: 'publisher' }) } + + rules.pkgName = 'metascraper-clearbit' + + return rules } diff --git a/packages/metascraper-date/CHANGELOG.md b/packages/metascraper-date/CHANGELOG.md index dc57f9084..583f580df 100644 --- a/packages/metascraper-date/CHANGELOG.md +++ b/packages/metascraper-date/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-date + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-date diff --git a/packages/metascraper-date/package.json b/packages/metascraper-date/package.json index 4f71dc7b8..3628b2d6c 100644 --- a/packages/metascraper-date/package.json +++ b/packages/metascraper-date/package.json @@ -2,7 +2,7 @@ "name": "metascraper-date", "description": "Get date property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-date", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-date/src/index.js b/packages/metascraper-date/src/index.js index d79788af3..ac6b878d6 100644 --- a/packages/metascraper-date/src/index.js +++ b/packages/metascraper-date/src/index.js @@ -43,17 +43,19 @@ module.exports = ( dateModified: false } ) => { - const result = { + const rules = { date: dateModifiedRules().concat(datePublishedRules(), dateRules()) } if (datePublished) { - result.datePublished = datePublishedRules() + rules.datePublished = datePublishedRules() } if (dateModified) { - result.dateModified = dateModifiedRules() + rules.dateModified = dateModifiedRules() } - return result + rules.pkgName = 'metascraper-date' + + return rules } diff --git a/packages/metascraper-description/CHANGELOG.md b/packages/metascraper-description/CHANGELOG.md index 734f5297a..01460ac17 100644 --- a/packages/metascraper-description/CHANGELOG.md +++ b/packages/metascraper-description/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-description + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-description diff --git a/packages/metascraper-description/package.json b/packages/metascraper-description/package.json index 9ff7c1082..a66b82f0f 100644 --- a/packages/metascraper-description/package.json +++ b/packages/metascraper-description/package.json @@ -2,7 +2,7 @@ "name": "metascraper-description", "description": "Get description property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-description", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-description/src/index.js b/packages/metascraper-description/src/index.js index ef9f7fad2..6b1679ec2 100644 --- a/packages/metascraper-description/src/index.js +++ b/packages/metascraper-description/src/index.js @@ -5,7 +5,7 @@ const { $jsonld, toRule, description } = require('@metascraper/helpers') module.exports = opts => { const toDescription = toRule(description, opts) - return { + const rules = { description: [ toDescription($ => $('meta[property="og:description"]').attr('content')), toDescription($ => $('meta[name="twitter:description"]').attr('content')), @@ -18,4 +18,8 @@ module.exports = opts => { toDescription($jsonld('description')) ] } + + rules.pkgName = 'metascraper-description' + + return rules } diff --git a/packages/metascraper-feed/CHANGELOG.md b/packages/metascraper-feed/CHANGELOG.md index 00f2dfede..81a7c07c2 100644 --- a/packages/metascraper-feed/CHANGELOG.md +++ b/packages/metascraper-feed/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-feed + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-feed diff --git a/packages/metascraper-feed/package.json b/packages/metascraper-feed/package.json index 212f0cb6a..fa46677ba 100644 --- a/packages/metascraper-feed/package.json +++ b/packages/metascraper-feed/package.json @@ -2,7 +2,7 @@ "name": "metascraper-feed", "description": "Get RSS/Atom feed URL from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-description", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-feed/src/index.js b/packages/metascraper-feed/src/index.js index c60fcbf87..a6afc3c49 100644 --- a/packages/metascraper-feed/src/index.js +++ b/packages/metascraper-feed/src/index.js @@ -5,11 +5,15 @@ const { toRule, url } = require('@metascraper/helpers') const toUrl = toRule(url) module.exports = () => { - return { + const rules = { feed: [ toUrl($ => $('link[type="application/rss+xml"]').attr('href')), toUrl($ => $('link[type="application/feed+json"]').attr('href')), toUrl($ => $('link[type="application/atom+xml"]').attr('href')) ] } + + rules.pkgName = 'metascraper-feed' + + return rules } diff --git a/packages/metascraper-helpers/CHANGELOG.md b/packages/metascraper-helpers/CHANGELOG.md index 5c3b28e40..ad956841f 100644 --- a/packages/metascraper-helpers/CHANGELOG.md +++ b/packages/metascraper-helpers/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +### Features + +* add profiling support ([9370e3c](https://github.com/microlinkhq/metascraper/commit/9370e3cdde056e86dcc2d189b3b22dd01a310372)) + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package @metascraper/helpers diff --git a/packages/metascraper-helpers/package.json b/packages/metascraper-helpers/package.json index 30e0d95b6..f5cd9517f 100644 --- a/packages/metascraper-helpers/package.json +++ b/packages/metascraper-helpers/package.json @@ -2,7 +2,7 @@ "name": "@metascraper/helpers", "description": "Collection of helper functions used by metascraper", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-helpers", - "version": "5.45.28", + "version": "5.46.0-beta.2", "main": "index.js", "author": { "email": "hello@microlink.io", diff --git a/packages/metascraper-iframe/CHANGELOG.md b/packages/metascraper-iframe/CHANGELOG.md index 5855c3b02..f90ab2406 100644 --- a/packages/metascraper-iframe/CHANGELOG.md +++ b/packages/metascraper-iframe/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-iframe + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-iframe diff --git a/packages/metascraper-iframe/package.json b/packages/metascraper-iframe/package.json index 3d94064b3..e4e891bd2 100644 --- a/packages/metascraper-iframe/package.json +++ b/packages/metascraper-iframe/package.json @@ -2,7 +2,7 @@ "name": "metascraper-iframe", "description": "Embed a representation of an URL on third party sites", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-iframe", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-iframe/src/index.js b/packages/metascraper-iframe/src/index.js index 2f813408c..aa964b75a 100644 --- a/packages/metascraper-iframe/src/index.js +++ b/packages/metascraper-iframe/src/index.js @@ -25,6 +25,8 @@ module.exports = ({ gotOpts } = {}) => { rules.test = ({ url, htmlDom }) => test(url, htmlDom) + rules.pkgName = 'metascraper-iframe' + return rules } diff --git a/packages/metascraper-image/CHANGELOG.md b/packages/metascraper-image/CHANGELOG.md index 062920af3..d2cbaefd2 100644 --- a/packages/metascraper-image/CHANGELOG.md +++ b/packages/metascraper-image/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-image + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-image diff --git a/packages/metascraper-image/package.json b/packages/metascraper-image/package.json index 2f7eef63f..1471fd23f 100644 --- a/packages/metascraper-image/package.json +++ b/packages/metascraper-image/package.json @@ -2,7 +2,7 @@ "name": "metascraper-image", "description": "Get image property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-image", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-image/src/index.js b/packages/metascraper-image/src/index.js index 0c4e51996..23c4f61db 100644 --- a/packages/metascraper-image/src/index.js +++ b/packages/metascraper-image/src/index.js @@ -6,22 +6,28 @@ const toImage = toRule(image) const getSrc = el => el.attr('src') -module.exports = () => ({ - image: [ - toImage($ => $('meta[property="og:image:secure_url"]').attr('content')), - toImage($ => $('meta[property="og:image:url"]').attr('content')), - toImage($ => $('meta[property="og:image"]').attr('content')), - toImage($ => $('meta[name="twitter:image:src"]').attr('content')), - toImage($ => $('meta[property="twitter:image:src"]').attr('content')), - toImage($ => $('meta[name="twitter:image"]').attr('content')), - toImage($ => $('meta[property="twitter:image"]').attr('content')), - toImage($ => $('meta[itemprop="image"]').attr('content')), - toImage($jsonld('image.0.url')), - toImage($jsonld('image.url')), - toImage($jsonld('image')), - toImage($ => $filter($, $('article img[src]'), getSrc)), - toImage($ => $filter($, $('#content img[src]'), getSrc)), - toImage($ => $('img[alt*="author" i]').attr('src')), - toImage($ => $('img[src]:not([aria-hidden="true"])').attr('src')) - ] -}) +module.exports = () => { + const rules = { + image: [ + toImage($ => $('meta[property="og:image:secure_url"]').attr('content')), + toImage($ => $('meta[property="og:image:url"]').attr('content')), + toImage($ => $('meta[property="og:image"]').attr('content')), + toImage($ => $('meta[name="twitter:image:src"]').attr('content')), + toImage($ => $('meta[property="twitter:image:src"]').attr('content')), + toImage($ => $('meta[name="twitter:image"]').attr('content')), + toImage($ => $('meta[property="twitter:image"]').attr('content')), + toImage($ => $('meta[itemprop="image"]').attr('content')), + toImage($jsonld('image.0.url')), + toImage($jsonld('image.url')), + toImage($jsonld('image')), + toImage($ => $filter($, $('article img[src]'), getSrc)), + toImage($ => $filter($, $('#content img[src]'), getSrc)), + toImage($ => $('img[alt*="author" i]').attr('src')), + toImage($ => $('img[src]:not([aria-hidden="true"])').attr('src')) + ] + } + + rules.pkgName = 'metascraper-image' + + return rules +} diff --git a/packages/metascraper-instagram/CHANGELOG.md b/packages/metascraper-instagram/CHANGELOG.md index 14f0a79ee..19fd51278 100644 --- a/packages/metascraper-instagram/CHANGELOG.md +++ b/packages/metascraper-instagram/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-instagram + ## [5.45.29](https://github.com/microlinkhq/metascraper/compare/v5.45.28...v5.45.29) (2025-01-07) ### Bug Fixes diff --git a/packages/metascraper-instagram/package.json b/packages/metascraper-instagram/package.json index bd1310d9c..2636f4d32 100644 --- a/packages/metascraper-instagram/package.json +++ b/packages/metascraper-instagram/package.json @@ -2,7 +2,7 @@ "name": "metascraper-instagram", "description": "Metascraper integration for Instagram", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-instagram", - "version": "5.45.29", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-instagram/src/index.js b/packages/metascraper-instagram/src/index.js index e91f35414..0d5644202 100644 --- a/packages/metascraper-instagram/src/index.js +++ b/packages/metascraper-instagram/src/index.js @@ -48,5 +48,7 @@ module.exports = () => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-instagram' + return rules } diff --git a/packages/metascraper-instagram/test/snapshots/index.js.md b/packages/metascraper-instagram/test/snapshots/index.js.md index e6f2ac9f6..988c4eb62 100644 --- a/packages/metascraper-instagram/test/snapshots/index.js.md +++ b/packages/metascraper-instagram/test/snapshots/index.js.md @@ -4,6 +4,22 @@ The actual snapshot is saved in `index.js.snap`. Generated by [AVA](https://avajs.dev). +## code is resilient + +> Snapshot 1 + + { + author: null, + date: null, + description: null, + image: null, + lang: null, + logo: 'https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://www.instagram.com/p/CPeC-Eenc8l/&size=128', + publisher: null, + title: null, + url: 'https://www.instagram.com/p/CPeC-Eenc8l/', + } + ## from photo post > Snapshot 1 diff --git a/packages/metascraper-instagram/test/snapshots/index.js.snap b/packages/metascraper-instagram/test/snapshots/index.js.snap index 7ae011299..a1326573f 100644 Binary files a/packages/metascraper-instagram/test/snapshots/index.js.snap and b/packages/metascraper-instagram/test/snapshots/index.js.snap differ diff --git a/packages/metascraper-lang/CHANGELOG.md b/packages/metascraper-lang/CHANGELOG.md index 885eaebd7..d658f1198 100644 --- a/packages/metascraper-lang/CHANGELOG.md +++ b/packages/metascraper-lang/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-lang + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-lang diff --git a/packages/metascraper-lang/package.json b/packages/metascraper-lang/package.json index 47bfc17e5..3cc44dddd 100644 --- a/packages/metascraper-lang/package.json +++ b/packages/metascraper-lang/package.json @@ -2,7 +2,7 @@ "name": "metascraper-lang", "description": "Get lang property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-lang", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-lang/src/index.js b/packages/metascraper-lang/src/index.js index d8d6e43be..b65e5c410 100644 --- a/packages/metascraper-lang/src/index.js +++ b/packages/metascraper-lang/src/index.js @@ -4,10 +4,16 @@ const { lang, toRule } = require('@metascraper/helpers') const toLang = toRule(lang) -module.exports = () => ({ - lang: [ - toLang($ => $('meta[property="og:locale"]').attr('content')), - toLang($ => $('meta[itemprop="inLanguage"]').attr('content')), - toLang($ => $('html').attr('lang')) - ] -}) +module.exports = () => { + const rules = { + lang: [ + toLang($ => $('meta[property="og:locale"]').attr('content')), + toLang($ => $('meta[itemprop="inLanguage"]').attr('content')), + toLang($ => $('html').attr('lang')) + ] + } + + rules.pkgName = 'metascraper-lang' + + return rules +} diff --git a/packages/metascraper-logo-favicon/CHANGELOG.md b/packages/metascraper-logo-favicon/CHANGELOG.md index 92e7f3bc9..ed382bc5b 100644 --- a/packages/metascraper-logo-favicon/CHANGELOG.md +++ b/packages/metascraper-logo-favicon/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-logo-favicon + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-logo-favicon diff --git a/packages/metascraper-logo-favicon/package.json b/packages/metascraper-logo-favicon/package.json index d37e9cbbd..fceadcb5a 100644 --- a/packages/metascraper-logo-favicon/package.json +++ b/packages/metascraper-logo-favicon/package.json @@ -2,7 +2,7 @@ "name": "metascraper-logo-favicon", "description": "metascraper logo favicon fallback", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-logo-favicon", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-logo-favicon/src/index.js b/packages/metascraper-logo-favicon/src/index.js index 6b2ed8661..a13d39e32 100644 --- a/packages/metascraper-logo-favicon/src/index.js +++ b/packages/metascraper-logo-favicon/src/index.js @@ -237,7 +237,7 @@ module.exports = ({ withGoogle }) const rootFavicon = createRootFavicon({ getLogo, withRootFavicon }) - return { + const rules = { logo: [ toLogo(async ($, url) => { const sizes = getSizes($, sizeSelectors, url) @@ -251,6 +251,10 @@ module.exports = ({ rootFavicon ].filter(Boolean) } + + rules.pkgName = 'metascraper-logo-favicon' + + return rules } module.exports.google = google diff --git a/packages/metascraper-logo/CHANGELOG.md b/packages/metascraper-logo/CHANGELOG.md index a9413eedc..b4ac942ed 100644 --- a/packages/metascraper-logo/CHANGELOG.md +++ b/packages/metascraper-logo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-logo + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-logo diff --git a/packages/metascraper-logo/package.json b/packages/metascraper-logo/package.json index 267213094..cb3b39c61 100644 --- a/packages/metascraper-logo/package.json +++ b/packages/metascraper-logo/package.json @@ -2,7 +2,7 @@ "name": "metascraper-logo", "description": "Get logo property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-logo", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-logo/src/index.js b/packages/metascraper-logo/src/index.js index 3f66bc9b1..ae88b70c9 100644 --- a/packages/metascraper-logo/src/index.js +++ b/packages/metascraper-logo/src/index.js @@ -20,7 +20,7 @@ module.exports = ({ filter } = {}) => { const toLogo = toRule(mapper) - return { + const rules = { logo: [ toLogo($ => $('meta[property="og:logo"]').attr('content')), toLogo($ => $('meta[itemprop="logo"]').attr('content')), @@ -35,4 +35,8 @@ module.exports = ({ filter } = {}) => { toLogo($ => toLogoUrl($, 'logo')) ] } + + rules.pkgName = 'metascraper-logo' + + return rules } diff --git a/packages/metascraper-manifest/CHANGELOG.md b/packages/metascraper-manifest/CHANGELOG.md index 105731e61..8c87f9a82 100644 --- a/packages/metascraper-manifest/CHANGELOG.md +++ b/packages/metascraper-manifest/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-manifest + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-manifest diff --git a/packages/metascraper-manifest/package.json b/packages/metascraper-manifest/package.json index a0d5dd016..d044700bd 100644 --- a/packages/metascraper-manifest/package.json +++ b/packages/metascraper-manifest/package.json @@ -2,7 +2,7 @@ "name": "metascraper-manifest", "description": "Metascraper integration for detecting PWA Web app manifest", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-manifest", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-manifest/src/index.js b/packages/metascraper-manifest/src/index.js index 524b5af10..b9a2e129b 100644 --- a/packages/metascraper-manifest/src/index.js +++ b/packages/metascraper-manifest/src/index.js @@ -52,7 +52,7 @@ module.exports = opts => { const manifest = composeRule(toManifest) - return { + const rules = { lang: manifest({ from: 'lang' }), description: manifest({ from: 'description' }), publisher: manifest({ from: 'short_name', to: 'publisher' }), @@ -72,6 +72,10 @@ module.exports = opts => { return logo(iconSrc, { url }) } } + + rules.pkgName = 'metascraper-manifest' + + return rules } module.exports.parseSize = parseSize diff --git a/packages/metascraper-media-provider/CHANGELOG.md b/packages/metascraper-media-provider/CHANGELOG.md index c976edbbe..5f5878957 100644 --- a/packages/metascraper-media-provider/CHANGELOG.md +++ b/packages/metascraper-media-provider/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-media-provider + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-media-provider diff --git a/packages/metascraper-media-provider/package.json b/packages/metascraper-media-provider/package.json index f9d0c16ee..59478bf7d 100644 --- a/packages/metascraper-media-provider/package.json +++ b/packages/metascraper-media-provider/package.json @@ -2,7 +2,7 @@ "name": "metascraper-media-provider", "description": "Get video property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-media-provider", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { @@ -49,7 +49,7 @@ "src" ], "scripts": { - "test": "NODE_PATH=.. TZ=UTC DEBUG=metascraper*,-metascraper-media-provider:provider* NODE_ENV=test ava --timeout 30s" + "test": "NODE_PATH=.. TZ=UTC DEBUG='metascraper-media-provider*,-metascraper-media-provider:provider*' NODE_ENV=test ava --timeout 30s" }, "license": "MIT", "ava": { diff --git a/packages/metascraper-media-provider/src/index.js b/packages/metascraper-media-provider/src/index.js index 223810540..96e9ba1a6 100644 --- a/packages/metascraper-media-provider/src/index.js +++ b/packages/metascraper-media-provider/src/index.js @@ -136,7 +136,7 @@ const getDescription = ({ description }) => descriptionFn(description) module.exports = (opts = {}) => { const getMedia = createGetMedia(opts) - return { + const rules = { audio: async ({ url }) => getAudio(await getMedia(url)), author: async ({ url }) => getAuthor(await getMedia(url)), date: async ({ url }) => getDate(await getMedia(url)), @@ -147,6 +147,10 @@ module.exports = (opts = {}) => { title: async ({ url }) => getTitle(await getMedia(url)), video: async ({ url }) => getVideo(await getMedia(url)) } + + rules.pkgName = 'metascraper-media-provider' + + return rules } module.exports.getAudio = getAudio diff --git a/packages/metascraper-publisher/CHANGELOG.md b/packages/metascraper-publisher/CHANGELOG.md index ef4c6f591..dc0884559 100644 --- a/packages/metascraper-publisher/CHANGELOG.md +++ b/packages/metascraper-publisher/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-publisher + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-publisher diff --git a/packages/metascraper-publisher/package.json b/packages/metascraper-publisher/package.json index 272684f26..27510ae00 100644 --- a/packages/metascraper-publisher/package.json +++ b/packages/metascraper-publisher/package.json @@ -2,7 +2,7 @@ "name": "metascraper-publisher", "description": "Get publisher property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-publisher", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-publisher/src/index.js b/packages/metascraper-publisher/src/index.js index 8764b47ec..5aa88c6a0 100644 --- a/packages/metascraper-publisher/src/index.js +++ b/packages/metascraper-publisher/src/index.js @@ -14,35 +14,45 @@ const getFromTitle = (text, regex = REGEX_TITLE) => { return result } -module.exports = () => ({ - publisher: [ - toPublisher($jsonld('publisher.name')), - toPublisher($ => $('meta[property="og:site_name"]').attr('content')), - toPublisher($ => $('meta[name*="application-name" i]').attr('content')), - toPublisher($ => $('meta[name*="app-title" i]').attr('content')), - toPublisher($ => $('meta[property*="app_name" i]').attr('content')), - toPublisher($ => $('meta[name="publisher" i]').attr('content')), - toPublisher($ => $('meta[name="twitter:app:name:iphone"]').attr('content')), - toPublisher($ => - $('meta[property="twitter:app:name:iphone"]').attr('content') - ), - toPublisher($ => $('meta[name="twitter:app:name:ipad"]').attr('content')), - toPublisher($ => - $('meta[property="twitter:app:name:ipad"]').attr('content') - ), - toPublisher($ => - $('meta[name="twitter:app:name:googleplay"]').attr('content') - ), - toPublisher($ => - $('meta[property="twitter:app:name:googleplay"]').attr('content') - ), - toPublisher($ => $filter($, $('#logo'))), - toPublisher($ => $filter($, $('.logo'))), - toPublisher($ => $filter($, $('a[class*="brand" i]'))), - toPublisher($ => $('[class*="logo" i] a img[alt]').attr('alt')), - toPublisher($ => $('[class*="logo" i] img[alt]').attr('alt')), - toPublisher($ => $filter($, $('title'), el => getFromTitle($filter.fn(el)))) - ] -}) +module.exports = () => { + const rules = { + publisher: [ + toPublisher($jsonld('publisher.name')), + toPublisher($ => $('meta[property="og:site_name"]').attr('content')), + toPublisher($ => $('meta[name*="application-name" i]').attr('content')), + toPublisher($ => $('meta[name*="app-title" i]').attr('content')), + toPublisher($ => $('meta[property*="app_name" i]').attr('content')), + toPublisher($ => $('meta[name="publisher" i]').attr('content')), + toPublisher($ => + $('meta[name="twitter:app:name:iphone"]').attr('content') + ), + toPublisher($ => + $('meta[property="twitter:app:name:iphone"]').attr('content') + ), + toPublisher($ => $('meta[name="twitter:app:name:ipad"]').attr('content')), + toPublisher($ => + $('meta[property="twitter:app:name:ipad"]').attr('content') + ), + toPublisher($ => + $('meta[name="twitter:app:name:googleplay"]').attr('content') + ), + toPublisher($ => + $('meta[property="twitter:app:name:googleplay"]').attr('content') + ), + toPublisher($ => $filter($, $('#logo'))), + toPublisher($ => $filter($, $('.logo'))), + toPublisher($ => $filter($, $('a[class*="brand" i]'))), + toPublisher($ => $('[class*="logo" i] a img[alt]').attr('alt')), + toPublisher($ => $('[class*="logo" i] img[alt]').attr('alt')), + toPublisher($ => + $filter($, $('title'), el => getFromTitle($filter.fn(el))) + ) + ] + } + + rules.pkgName = 'metascraper-publisher' + + return rules +} module.exports.getFromTitle = getFromTitle diff --git a/packages/metascraper-readability/CHANGELOG.md b/packages/metascraper-readability/CHANGELOG.md index 5edde17c2..e697705ff 100644 --- a/packages/metascraper-readability/CHANGELOG.md +++ b/packages/metascraper-readability/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +### Bug Fixes + +* load dependency ([6344788](https://github.com/microlinkhq/metascraper/commit/6344788ddbfc27a03f3ce12b2a842cd438574cc5)) + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) ### Bug Fixes diff --git a/packages/metascraper-readability/package.json b/packages/metascraper-readability/package.json index 9c1f29bc9..bf769b80e 100644 --- a/packages/metascraper-readability/package.json +++ b/packages/metascraper-readability/package.json @@ -2,7 +2,7 @@ "name": "metascraper-readability", "description": "A Readability connector for metascraper", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-readability", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { @@ -28,8 +28,7 @@ "happy-dom": "~16.5.3" }, "devDependencies": { - "ava": "5", - "metascraper": "latest" + "ava": "5" }, "engines": { "node": ">= 16" diff --git a/packages/metascraper-readability/src/index.js b/packages/metascraper-readability/src/index.js index 599c3b020..9af042586 100644 --- a/packages/metascraper-readability/src/index.js +++ b/packages/metascraper-readability/src/index.js @@ -30,11 +30,15 @@ module.exports = ({ getDocument = defaultGetDocument } = {}) => { readability(url, $.html(), getDocument) ) - return { + const rules = { author: getReadbility({ from: 'byline', to: 'author' }), description: getReadbility({ from: 'excerpt', to: 'description' }), lang: getReadbility({ from: 'lang' }), publisher: getReadbility({ from: 'siteName', to: 'publisher' }), title: getReadbility({ from: 'title' }) } + + rules.pkgName = 'metascraper-readability' + + return rules } diff --git a/packages/metascraper-soundcloud/CHANGELOG.md b/packages/metascraper-soundcloud/CHANGELOG.md index 50f4765c0..cec1f7bed 100644 --- a/packages/metascraper-soundcloud/CHANGELOG.md +++ b/packages/metascraper-soundcloud/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-soundcloud + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-soundcloud diff --git a/packages/metascraper-soundcloud/package.json b/packages/metascraper-soundcloud/package.json index cb07b7b90..65b101136 100644 --- a/packages/metascraper-soundcloud/package.json +++ b/packages/metascraper-soundcloud/package.json @@ -2,7 +2,7 @@ "name": "metascraper-soundcloud", "description": "Metascraper integration with SoundCloud", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-soundcloud", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-soundcloud/src/index.js b/packages/metascraper-soundcloud/src/index.js index 44ff0ba59..7dee4b6c4 100644 --- a/packages/metascraper-soundcloud/src/index.js +++ b/packages/metascraper-soundcloud/src/index.js @@ -24,5 +24,7 @@ module.exports = () => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-soundcloud' + return rules } diff --git a/packages/metascraper-spotify/CHANGELOG.md b/packages/metascraper-spotify/CHANGELOG.md index 953fd3ed6..2241e9321 100644 --- a/packages/metascraper-spotify/CHANGELOG.md +++ b/packages/metascraper-spotify/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-spotify + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-spotify diff --git a/packages/metascraper-spotify/package.json b/packages/metascraper-spotify/package.json index 23e734b9c..7139607d0 100644 --- a/packages/metascraper-spotify/package.json +++ b/packages/metascraper-spotify/package.json @@ -2,7 +2,7 @@ "name": "metascraper-spotify", "description": "Metascraper integration with Spotify", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-spotify", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-spotify/src/index.js b/packages/metascraper-spotify/src/index.js index b2d5cdc8f..f717c2323 100644 --- a/packages/metascraper-spotify/src/index.js +++ b/packages/metascraper-spotify/src/index.js @@ -72,6 +72,8 @@ module.exports = ({ gotOpts, keyvOpts } = {}) => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-spotify' + return rules } diff --git a/packages/metascraper-telegram/CHANGELOG.md b/packages/metascraper-telegram/CHANGELOG.md index ae3f5ccf8..2e097bd21 100644 --- a/packages/metascraper-telegram/CHANGELOG.md +++ b/packages/metascraper-telegram/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-telegram + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-telegram diff --git a/packages/metascraper-telegram/package.json b/packages/metascraper-telegram/package.json index 24ec02165..0c9cf8494 100644 --- a/packages/metascraper-telegram/package.json +++ b/packages/metascraper-telegram/package.json @@ -2,7 +2,7 @@ "name": "metascraper-telegram", "description": "Metascraper integration with Telegram", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-telegram", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-telegram/src/index.js b/packages/metascraper-telegram/src/index.js index be14c5130..c55db498f 100644 --- a/packages/metascraper-telegram/src/index.js +++ b/packages/metascraper-telegram/src/index.js @@ -73,6 +73,8 @@ module.exports = ({ gotOpts, keyvOpts } = {}) => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-telegram' + return rules } diff --git a/packages/metascraper-title/CHANGELOG.md b/packages/metascraper-title/CHANGELOG.md index c5764ce8c..e9e9ebdcc 100644 --- a/packages/metascraper-title/CHANGELOG.md +++ b/packages/metascraper-title/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/packages/metascraper-title/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-title + ## [5.45.28](https://github.com/microlinkhq/metascraper/packages/metascraper-title/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-title diff --git a/packages/metascraper-title/package.json b/packages/metascraper-title/package.json index 856605963..0b18a60e7 100644 --- a/packages/metascraper-title/package.json +++ b/packages/metascraper-title/package.json @@ -2,7 +2,7 @@ "name": "metascraper-title", "description": "Get title property from HTML markup", "homepage": "https://metascraper.js.org", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-title/src/index.js b/packages/metascraper-title/src/index.js index 4111a19c6..7a3e6226b 100644 --- a/packages/metascraper-title/src/index.js +++ b/packages/metascraper-title/src/index.js @@ -4,16 +4,22 @@ const { $jsonld, $filter, title, toRule } = require('@metascraper/helpers') const toTitle = toRule(title) -module.exports = () => ({ - title: [ - toTitle($ => $('meta[property="og:title"]').attr('content')), - toTitle($ => $('meta[name="twitter:title"]').attr('content')), - toTitle($ => $('meta[property="twitter:title"]').attr('content')), - toTitle($ => $filter($, $('title'))), - toTitle($jsonld('headline')), - toTitle($ => $filter($, $('.post-title'))), - toTitle($ => $filter($, $('.entry-title'))), - toTitle($ => $filter($, $('h1[class*="title" i] a'))), - toTitle($ => $filter($, $('h1[class*="title" i]'))) - ] -}) +module.exports = () => { + const rules = { + title: [ + toTitle($ => $('meta[property="og:title"]').attr('content')), + toTitle($ => $('meta[name="twitter:title"]').attr('content')), + toTitle($ => $('meta[property="twitter:title"]').attr('content')), + toTitle($ => $filter($, $('title'))), + toTitle($jsonld('headline')), + toTitle($ => $filter($, $('.post-title'))), + toTitle($ => $filter($, $('.entry-title'))), + toTitle($ => $filter($, $('h1[class*="title" i] a'))), + toTitle($ => $filter($, $('h1[class*="title" i]'))) + ] + } + + rules.pkgName = 'metascraper-title' + + return rules +} diff --git a/packages/metascraper-uol/CHANGELOG.md b/packages/metascraper-uol/CHANGELOG.md index f0892d5dd..9648a28a1 100644 --- a/packages/metascraper-uol/CHANGELOG.md +++ b/packages/metascraper-uol/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-uol + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-uol diff --git a/packages/metascraper-uol/package.json b/packages/metascraper-uol/package.json index 2963546d1..a40ffa12c 100644 --- a/packages/metascraper-uol/package.json +++ b/packages/metascraper-uol/package.json @@ -2,7 +2,7 @@ "name": "metascraper-uol", "description": "metascraper integration for website under Universo Online group", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-uol", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-uol/src/index.js b/packages/metascraper-uol/src/index.js index bab0e3ae1..fab870858 100644 --- a/packages/metascraper-uol/src/index.js +++ b/packages/metascraper-uol/src/index.js @@ -31,6 +31,8 @@ module.exports = () => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-uol' + return rules } diff --git a/packages/metascraper-url/CHANGELOG.md b/packages/metascraper-url/CHANGELOG.md index 27aff3542..8de11b9c4 100644 --- a/packages/metascraper-url/CHANGELOG.md +++ b/packages/metascraper-url/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/packages/metascraper-url/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-url + ## [5.45.28](https://github.com/microlinkhq/metascraper/packages/metascraper-url/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-url diff --git a/packages/metascraper-url/package.json b/packages/metascraper-url/package.json index f754c328f..634c0204c 100644 --- a/packages/metascraper-url/package.json +++ b/packages/metascraper-url/package.json @@ -2,7 +2,7 @@ "name": "metascraper-url", "description": "Get url property from HTML markup", "homepage": "https://metascraper.js.org", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-url/src/index.js b/packages/metascraper-url/src/index.js index 4b37c132f..68295beca 100644 --- a/packages/metascraper-url/src/index.js +++ b/packages/metascraper-url/src/index.js @@ -4,13 +4,19 @@ const { toRule, url: urlFn } = require('@metascraper/helpers') const toUrl = toRule(urlFn) -module.exports = () => ({ - url: [ - toUrl($ => $('meta[property="og:url"]').attr('content')), - toUrl($ => $('meta[name="twitter:url"]').attr('content')), - toUrl($ => $('meta[property="twitter:url"]').attr('content')), - toUrl($ => $('link[rel="canonical"]').attr('href')), - toUrl($ => $('link[rel="alternate"][hreflang="x-default"]').attr('href')), - ({ url }) => url - ] -}) +module.exports = () => { + const rules = { + url: [ + toUrl($ => $('meta[property="og:url"]').attr('content')), + toUrl($ => $('meta[name="twitter:url"]').attr('content')), + toUrl($ => $('meta[property="twitter:url"]').attr('content')), + toUrl($ => $('link[rel="canonical"]').attr('href')), + toUrl($ => $('link[rel="alternate"][hreflang="x-default"]').attr('href')), + ({ url }) => url + ] + } + + rules.pkgName = 'metascraper-url' + + return rules +} diff --git a/packages/metascraper-video/CHANGELOG.md b/packages/metascraper-video/CHANGELOG.md index 5bcec0fe0..f147f3b76 100644 --- a/packages/metascraper-video/CHANGELOG.md +++ b/packages/metascraper-video/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-video + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-video diff --git a/packages/metascraper-video/package.json b/packages/metascraper-video/package.json index 15950c28c..061e2468e 100644 --- a/packages/metascraper-video/package.json +++ b/packages/metascraper-video/package.json @@ -2,7 +2,7 @@ "name": "metascraper-video", "description": "Get video property from HTML markup", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-video", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-video/src/index.js b/packages/metascraper-video/src/index.js index 65ca1cb82..04975e255 100644 --- a/packages/metascraper-video/src/index.js +++ b/packages/metascraper-video/src/index.js @@ -109,7 +109,13 @@ const withIframe = (rules, getIframe) => } ) -module.exports = ({ getIframe = _getIframe } = {}) => ({ - image: withIframe(imageRules, getIframe), - video: withIframe(videoRules, getIframe) -}) +module.exports = ({ getIframe = _getIframe } = {}) => { + const rules = { + image: withIframe(imageRules, getIframe), + video: withIframe(videoRules, getIframe) + } + + rules.pkgName = 'metascraper-video' + + return rules +} diff --git a/packages/metascraper-x/CHANGELOG.md b/packages/metascraper-x/CHANGELOG.md index 2dc939e43..d9caa13b5 100644 --- a/packages/metascraper-x/CHANGELOG.md +++ b/packages/metascraper-x/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-x + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-x diff --git a/packages/metascraper-x/package.json b/packages/metascraper-x/package.json index 22172c59d..d1d8e0fd7 100644 --- a/packages/metascraper-x/package.json +++ b/packages/metascraper-x/package.json @@ -2,7 +2,7 @@ "name": "metascraper-x", "description": "Metascraper integration with x.com", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-x", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-x/src/index.js b/packages/metascraper-x/src/index.js index 6db724ac5..cf26b5bad 100644 --- a/packages/metascraper-x/src/index.js +++ b/packages/metascraper-x/src/index.js @@ -69,6 +69,8 @@ module.exports = ({ resolveUrls = false, resolveUrl = url => url } = {}) => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-x' + return rules } diff --git a/packages/metascraper-youtube/CHANGELOG.md b/packages/metascraper-youtube/CHANGELOG.md index bb5dc026e..0db6cb3ca 100644 --- a/packages/metascraper-youtube/CHANGELOG.md +++ b/packages/metascraper-youtube/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +**Note:** Version bump only for package metascraper-youtube + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper-youtube diff --git a/packages/metascraper-youtube/package.json b/packages/metascraper-youtube/package.json index c67eb1c96..2b904cba3 100644 --- a/packages/metascraper-youtube/package.json +++ b/packages/metascraper-youtube/package.json @@ -2,7 +2,7 @@ "name": "metascraper-youtube", "description": "Metascraper integration with YouTube", "homepage": "https://github.com/microlinkhq/metascraper/packages/metascraper-youtube", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "author": { diff --git a/packages/metascraper-youtube/src/index.js b/packages/metascraper-youtube/src/index.js index bb47cf2db..6936ced0e 100644 --- a/packages/metascraper-youtube/src/index.js +++ b/packages/metascraper-youtube/src/index.js @@ -56,6 +56,8 @@ module.exports = ({ gotOpts } = {}) => { rules.test = ({ url }) => test(url) + rules.pkgName = 'metascraper-youtube' + return rules } diff --git a/packages/metascraper/CHANGELOG.md b/packages/metascraper/CHANGELOG.md index ce266c1aa..76ff25aea 100644 --- a/packages/metascraper/CHANGELOG.md +++ b/packages/metascraper/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.46.0-beta.0](https://github.com/microlinkhq/metascraper/compare/v5.45.29...v5.46.0-beta.0) (2025-01-10) + +### Features + +* add profiling support ([9370e3c](https://github.com/microlinkhq/metascraper/commit/9370e3cdde056e86dcc2d189b3b22dd01a310372)) + ## [5.45.28](https://github.com/microlinkhq/metascraper/compare/v5.45.27...v5.45.28) (2025-01-01) **Note:** Version bump only for package metascraper diff --git a/packages/metascraper/package.json b/packages/metascraper/package.json index 05518e423..b824202cd 100644 --- a/packages/metascraper/package.json +++ b/packages/metascraper/package.json @@ -2,7 +2,7 @@ "name": "metascraper", "description": "A library to easily scrape metadata from an article on the web using Open Graph, JSON+LD, regular HTML metadata, and series of fallbacks.", "homepage": "https://metascraper.js.org", - "version": "5.45.28", + "version": "5.46.0-beta.2", "types": "src/index.d.ts", "main": "src/index.js", "repository": { @@ -60,6 +60,7 @@ "dependencies": { "@metascraper/helpers": "workspace:*", "cheerio": "~1.0.0", + "debug-logfmt": "~1.2.3", "lodash": "~4.17.21", "whoops": "~4.1.7" }, diff --git a/packages/metascraper/src/rules.js b/packages/metascraper/src/rules.js index ea583bac6..840211fd5 100644 --- a/packages/metascraper/src/rules.js +++ b/packages/metascraper/src/rules.js @@ -16,9 +16,12 @@ const forEachRule = (collection, fn) => forEach(castArray(collection), fn) const loadRules = rulesBundle => chain(rulesBundle) - .reduce((acc, { test, ...rules }) => { + .reduce((acc, { test, pkgName, ...rules }) => { forEach(rules, (innerRules, propName) => { - if (test) forEachRule(innerRules, rule => (rule.test = test)) + forEachRule(innerRules, rule => { + if (test) rule.test = test + rule.pkgName = pkgName ?? 'uknown' + }) set( acc,