diff --git a/CHANGELOG.md b/CHANGELOG.md index fbdf08e5dc..6429e559da 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 8e010315ca..f047c651f7 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 79bbd62320..fb2c217567 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 0e865b064e..81e8bdb11b 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 18e3e66149..a34d27a2ba 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 6a5bac6d4b..40c96d7a4e 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 e5e5b735e1..ea97e45003 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 7df27feffe..a840708d61 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 9ffd9b0c76..451e54e5ec 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 2e66d25140..dc53a3dfee 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 aa24fac49c..111fc977ab 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 59471d34f4..00563893a5 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 a0aefc6126..3ccb0da554 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 44a46b5dfa..459aba0937 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 bdd262cff9..69a368e683 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 dc57f9084f..583f580df8 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 4f71dc7b8b..3628b2d6ce 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 d79788af38..ac6b878d6c 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 734f5297a9..01460ac17c 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 9ff7c10825..a66b82f0fa 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 ef9f7fad23..6b1679ec2e 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 00f2dfede1..81a7c07c2e 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 212f0cb6a4..fa46677ba1 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 c60fcbf87a..a6afc3c490 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 5c3b28e40e..ad956841f4 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 30e0d95b67..f5cd9517f7 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 5855c3b023..f90ab24068 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 3d94064b3c..e4e891bd28 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 2f813408cd..aa964b75a1 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 062920af39..d2cbaefd22 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 2f7eef63fe..1471fd23f5 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 0c4e519962..23c4f61db9 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 14f0a79eeb..19fd512781 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 bd1310d9c5..2636f4d329 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 e91f354146..0d5644202a 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 e6f2ac9f62..988c4eb62b 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 7ae0112998..a1326573fd 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 885eaebd7e..d658f11989 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 47bfc17e58..3cc44ddddb 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 d8d6e43be7..b65e5c4104 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 92e7f3bc94..ed382bc5b1 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 d37e9cbbd5..fceadcb5a4 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 6b2ed8661b..a13d39e322 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 a9413eedc2..b4ac942ed2 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 2672130944..cb3b39c61e 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 3f66bc9b1b..ae88b70c9f 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 105731e616..8c87f9a820 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 a0d5dd016b..d044700bd3 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 524b5af10a..b9a2e129bc 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 c976edbbed..5f58789577 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 f9d0c16ee3..59478bf7df 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 2238105407..96e9ba1a68 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 ef4c6f591c..dc08845594 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 272684f269..27510ae002 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 8764b47ec3..5aa88c6a0d 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 5edde17c22..e697705ff6 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 9c1f29bc96..bf769b80e7 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 599c3b020c..9af042586c 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 50f4765c0f..cec1f7bed9 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 cb07b7b90c..65b1011364 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 44ff0ba598..7dee4b6c44 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 953fd3ed68..2241e93216 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 23e734b9c4..7139607d0c 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 b2d5cdc8fa..f717c23235 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 ae3f5ccf8f..2e097bd218 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 24ec021657..0c9cf84946 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 be14c5130e..c55db498fa 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 c5764ce8cd..e9e9ebdcc0 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 8566059637..0b18a60e78 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 4111a19c65..7a3e6226b6 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 f0892d5ddd..9648a28a12 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 2963546d1a..a40ffa12c3 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 bab0e3ae1d..fab870858c 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 27aff35426..8de11b9c4c 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 f754c328f3..634c0204cc 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 4b37c132fc..68295becae 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 5bcec0fe0c..f147f3b76d 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 15950c28c9..061e2468ef 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 65ca1cb821..04975e255c 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 2dc939e430..d9caa13b59 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 22172c59d1..d1d8e0fd7e 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 6db724ac5d..cf26b5bad0 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 bb5dc026ea..0db6cb3cae 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 c67eb1c96e..2b904cba37 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 bb47cf2db9..6936ced0e5 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 ce266c1aa2..76ff25aea6 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 05518e4235..b824202cdb 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 ea583bac66..840211fd5b 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,