Skip to content

feat(helpers): pass propName to validate - #868

Merged
Kikobeats merged 2 commits into
masterfrom
feat/validate-prop-name
Aug 9, 2026
Merged

Kikobeats merged 2 commits into
masterfrom
feat/validate-prop-name

Conversation

@Kikobeats

@Kikobeats Kikobeats commented Aug 9, 2026 •

Copy link
Copy Markdown
Member

Why

findRule already receives the property it is resolving and uses it only for a debug label. validate never sees it, so a consumer cannot scope itself by property — and the same bytes want opposite answers depending on which one it is: a script-bearing HTML document is a hostile logo candidate and the expected url result.

Without propName, callers reach for proxies, and both of the obvious ones are wrong:

  • Comparing the value to the page URL, standing in for "this is the url property". Mismatches both ways: a logo that happens to equal the page URL goes ungated, and a url rule returning a canonicalised variant (trailing slash) gets rejected.
  • Exempting a content type, standing in for "this might be a page". It then applies to every property and every caller, which turns a page-shaped allowance into a global hole.

We hit exactly this downstream: an executable-markup gate for logo could not be scoped, so a text/html exemption had to live in the byte-level predicate, where any origin serving that content type passes.

What

propName rides on the options object:

validate: (value, { propName, url }) => propName !== 'logo' || value !== url

The documented (value, options, debug) signature is unchanged, so existing validates keep working — this is additive.

The options object is built once per property inside findRule, not per candidate, and only when a validate is present, so a scrape without one allocates nothing new.

Test plan

  • validate receives the property name it is judging — asserts both properties are seen and that rejecting only logo nulls it while title survives. Verified to fail without the change.
  • Existing validate suite unchanged: 8 passing.
  • tsd passes with a new case exercising propName.
  • metascraper unit 29 passing; metascraper-helpers 80 passing under TZ=UTC.

Note: .date fails on a non-UTC machine on master as well (Jun 20 with no year) — pre-existing and unrelated.


Note

Low Risk
Additive API and a small options copy only when validate is set; no change to default validation behavior.

Overview
Scrape-level validate callbacks now receive propName on the options object (alongside existing fields like url), so consumers can accept or reject the same candidate value differently per metadata field—for example blocking a text/html URL for logo while allowing it for url.

In findRule, when a validate is configured, options are shallow-copied once per property with propName set before isValidValue runs; scrapes without validate avoid the extra object. Type definitions and tsd cover the new field; a unit test confirms each property is validated independently.

Reviewed by Cursor Bugbot for commit b488d44. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Bug Fixes

    • Improved metadata validation so candidates can be evaluated according to the property they populate.
    • Prevented unsuitable values from being accepted for specific fields while preserving valid results for others.
    • Added property-specific validation context to improve consistency when resolving multiple metadata fields.
  • Documentation

    • Updated validation type information to clarify that validators receive the property name and page URL as context.

`findRule` already receives the property it is resolving and used it only
for a debug label. A validate could not see it, so a consumer gating on
value shape had no way to scope itself — and the same bytes want opposite
answers depending on the property: a script-bearing HTML document is a
hostile `logo` candidate and the expected `url` result.

Without it, callers substitute proxies. Comparing the value against the
page URL stands in for "this is the url property", which mismatches both
ways: a `logo` that happens to equal the page URL goes ungated, and a
`url` rule returning a canonicalised variant gets rejected. Exempting a
content type stands in for "this might be a page", which then applies to
every property.

`propName` rides on the options object, so the documented
`(value, options, debug)` signature is unchanged and existing validates
keep working. The object is built once per property rather than per
candidate, and only when a validate is present.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YKVuh1R8HtB7SX7eKa7UsJ
@coderabbitai

coderabbitai Bot commented Aug 9, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Validation callbacks now receive the current metadata property name. The TypeScript contract documents the required context, and type-level and unit tests verify property-specific validation.

Changes

Property-aware validation

Layer / File(s) Summary
Pass property context to validation
packages/metascraper-helpers/src/index.js
findRule adds propName to validation arguments when validation is enabled and passes those arguments to candidate validation.
Update validation contracts and coverage
packages/metascraper/src/index.d.ts, packages/metascraper/test/types/index.test-d.ts, packages/metascraper/test/unit/validate.js
The Validate type requires options.propName. Type-level and unit tests verify property-specific validation for logo and title.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: passing propName to validate through the helpers package.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/validate-prop-name

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Kikobeats
Kikobeats merged commit 8e0a75f into master Aug 9, 2026
26 of 30 checks passed
@Kikobeats
Kikobeats deleted the feat/validate-prop-name branch August 9, 2026 06:35
markharding pushed a commit to futo-org/Harbor that referenced this pull request Oct 13, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [metascraper](https://metascraper.js.org) ([source](https://github.com/microlinkhq/metascraper)) | [`5.51.1` → `5.58.4`](https://renovatebot.com/diffs/npm/metascraper/5.51.1/5.58.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/metascraper/5.58.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/metascraper/5.51.1/5.58.4?slim=true) |

---

### Release Notes

<details>
<summary>microlinkhq/metascraper (metascraper)</summary>

### [`v5.58.4`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5584-2026-10-09)

[Compare Source](microlinkhq/metascraper@v5.58.1...v5.58.4)

**Note:** Version bump only for package metascraper

### [`v5.58.1`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5581-2026-09-17)

[Compare Source](microlinkhq/metascraper@v5.56.2...v5.58.1)

##### Bug Fixes

- **metascraper-instagram:** prefer 180px apple-touch logo ([#&#8203;882](microlinkhq/metascraper#882)) ([a586af5](microlinkhq/metascraper@a586af5))
- use [@&#8203;kikobeats/got](https://github.com/kikobeats/got) to support Node.js 24.20 ([#&#8203;881](microlinkhq/metascraper#881)) ([41a626b](microlinkhq/metascraper@41a626b)), closes [nodejs/node#64847](nodejs/node#64847)

### [`v5.56.2`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5570-2026-08-19)

[Compare Source](microlinkhq/metascraper@v5.56.1...v5.56.2)

##### Features

- add metascraper-imdb ([#&#8203;876](microlinkhq/metascraper#876)) ([b10eabb](microlinkhq/metascraper@b10eabb))

#### [5.56.2](microlinkhq/metascraper@v5.56.1...v5.56.2) (2026-08-17)

**Note:** Version bump only for package metascraper

#### [5.56.1](microlinkhq/metascraper@v5.56.0...v5.56.1) (2026-08-17)

##### Bug Fixes

- **author:** fall back to twitter:creator ([#&#8203;874](microlinkhq/metascraper#874)) ([d1ec557](microlinkhq/metascraper@d1ec557)), closes [#author-group](https://github.com/microlinkhq/metascraper/issues/author-group) [#author-group](https://github.com/microlinkhq/metascraper/issues/author-group)

### [`v5.56.1`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5570-2026-08-19)

[Compare Source](microlinkhq/metascraper@v5.55.2...v5.56.1)

##### Features

- add metascraper-imdb ([#&#8203;876](microlinkhq/metascraper#876)) ([b10eabb](microlinkhq/metascraper@b10eabb))

#### [5.56.2](microlinkhq/metascraper@v5.56.1...v5.56.2) (2026-08-17)

**Note:** Version bump only for package metascraper

#### [5.56.1](microlinkhq/metascraper@v5.56.0...v5.56.1) (2026-08-17)

##### Bug Fixes

- **author:** fall back to twitter:creator ([#&#8203;874](microlinkhq/metascraper#874)) ([d1ec557](microlinkhq/metascraper@d1ec557)), closes [#author-group](https://github.com/microlinkhq/metascraper/issues/author-group) [#author-group](https://github.com/microlinkhq/metascraper/issues/author-group)

### [`v5.55.2`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5560-2026-08-15)

[Compare Source](microlinkhq/metascraper@v5.55.1...v5.55.2)

##### Features

- add metascraper-citation ([#&#8203;873](microlinkhq/metascraper#873)) ([31bceb1](microlinkhq/metascraper@31bceb1))

#### [5.55.2](microlinkhq/metascraper@v5.55.1...v5.55.2) (2026-08-13)

##### Bug Fixes

- **helpers:** keep CGI + in query strings ([#&#8203;872](microlinkhq/metascraper#872)) ([4743562](microlinkhq/metascraper@4743562))

#### [5.55.1](microlinkhq/metascraper@v5.55.0...v5.55.1) (2026-08-10)

##### Bug Fixes

- **youtube:** date a video by its upload date ([#&#8203;869](microlinkhq/metascraper#869)) ([7040d5c](microlinkhq/metascraper@7040d5c))

### [`v5.55.1`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5560-2026-08-15)

[Compare Source](microlinkhq/metascraper@v5.55.0...v5.55.1)

##### Features

- add metascraper-citation ([#&#8203;873](microlinkhq/metascraper#873)) ([31bceb1](microlinkhq/metascraper@31bceb1))

#### [5.55.2](microlinkhq/metascraper@v5.55.1...v5.55.2) (2026-08-13)

##### Bug Fixes

- **helpers:** keep CGI + in query strings ([#&#8203;872](microlinkhq/metascraper#872)) ([4743562](microlinkhq/metascraper@4743562))

#### [5.55.1](microlinkhq/metascraper@v5.55.0...v5.55.1) (2026-08-10)

##### Bug Fixes

- **youtube:** date a video by its upload date ([#&#8203;869](microlinkhq/metascraper#869)) ([7040d5c](microlinkhq/metascraper@7040d5c))

### [`v5.55.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5560-2026-08-15)

[Compare Source](microlinkhq/metascraper@v5.54.1...v5.55.0)

##### Features

- add metascraper-citation ([#&#8203;873](microlinkhq/metascraper#873)) ([31bceb1](microlinkhq/metascraper@31bceb1))

#### [5.55.2](microlinkhq/metascraper@v5.55.1...v5.55.2) (2026-08-13)

##### Bug Fixes

- **helpers:** keep CGI + in query strings ([#&#8203;872](microlinkhq/metascraper#872)) ([4743562](microlinkhq/metascraper@4743562))

#### [5.55.1](microlinkhq/metascraper@v5.55.0...v5.55.1) (2026-08-10)

##### Bug Fixes

- **youtube:** date a video by its upload date ([#&#8203;869](microlinkhq/metascraper#869)) ([7040d5c](microlinkhq/metascraper@7040d5c))

### [`v5.54.1`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5550-2026-08-09)

[Compare Source](microlinkhq/metascraper@v5.54.0...v5.54.1)

##### Features

- **helpers:** pass propName to validate ([#&#8203;868](microlinkhq/metascraper#868)) ([8e0a75f](microlinkhq/metascraper@8e0a75f))

#### [5.54.1](microlinkhq/metascraper@v5.54.0...v5.54.1) (2026-08-07)

**Note:** Version bump only for package metascraper

### [`v5.54.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5550-2026-08-09)

[Compare Source](microlinkhq/metascraper@v5.53.0...v5.54.0)

##### Features

- **helpers:** pass propName to validate ([#&#8203;868](microlinkhq/metascraper#868)) ([8e0a75f](microlinkhq/metascraper@8e0a75f))

#### [5.54.1](microlinkhq/metascraper@v5.54.0...v5.54.1) (2026-08-07)

**Note:** Version bump only for package metascraper

### [`v5.53.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5540-2026-08-07)

[Compare Source](microlinkhq/metascraper@v5.52.1...v5.53.0)

##### Features

- **helpers:** add rule-level validate (like test) ([#&#8203;866](microlinkhq/metascraper#866)) ([d40856b](microlinkhq/metascraper@d40856b))

#### [5.53.1](microlinkhq/metascraper@v5.53.0...v5.53.1) (2026-08-02)

##### Bug Fixes

- keep the favicon body under reachable-url v2 ([#&#8203;865](microlinkhq/metascraper#865)) ([ce4536f](microlinkhq/metascraper@ce4536f))

### [`v5.52.1`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5530-2026-07-30)

[Compare Source](microlinkhq/metascraper@v5.52.0...v5.52.1)

##### Features

- **helpers:** read the declared protocol instead of resolving it ([#&#8203;864](microlinkhq/metascraper#864)) ([2d72298](microlinkhq/metascraper@2d72298))

#### [5.52.1](microlinkhq/metascraper@v5.52.0...v5.52.1) (2026-07-29)

**Note:** Version bump only for package metascraper

### [`v5.52.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5530-2026-07-30)

[Compare Source](microlinkhq/metascraper@v5.51.1...v5.52.0)

##### Features

- **helpers:** read the declared protocol instead of resolving it ([#&#8203;864](microlinkhq/metascraper#864)) ([2d72298](microlinkhq/metascraper@2d72298))

#### [5.52.1](microlinkhq/metascraper@v5.52.0...v5.52.1) (2026-07-29)

**Note:** Version bump only for package metascraper

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "before 9am on tuesday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEzMy4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==-->

Reviewed-on: https://code.futo.org/harbor/harbor/pulls/1815
markharding pushed a commit to futo-org/Harbor that referenced this pull request Oct 15, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [metascraper-title](https://metascraper.js.org) ([source](https://github.com/microlinkhq/metascraper)) | [`5.51.1` → `5.58.4`](https://renovatebot.com/diffs/npm/metascraper-title/5.51.1/5.58.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/metascraper-title/5.58.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/metascraper-title/5.51.1/5.58.4?slim=true) |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/99) for more information.

---

### Release Notes

<details>
<summary>microlinkhq/metascraper (metascraper-title)</summary>

### [`v5.58.4`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5584-2026-10-09)

[Compare Source](microlinkhq/metascraper@v5.56.2...v5.58.4)

**Note:** Version bump only for package metascraper

### [`v5.56.2`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5562-2026-08-17)

[Compare Source](microlinkhq/metascraper@v5.55.2...v5.56.2)

**Note:** Version bump only for package metascraper

### [`v5.55.2`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5552-2026-08-13)

[Compare Source](microlinkhq/metascraper@v5.55.0...v5.55.2)

##### Bug Fixes

- **helpers:** keep CGI + in query strings ([#&#8203;872](microlinkhq/metascraper#872)) ([4743562](microlinkhq/metascraper@4743562))

### [`v5.55.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5550-2026-08-09)

[Compare Source](microlinkhq/metascraper@v5.54.1...v5.55.0)

##### Features

- **helpers:** pass propName to validate ([#&#8203;868](microlinkhq/metascraper#868)) ([8e0a75f](microlinkhq/metascraper@8e0a75f))

#### [5.54.1](microlinkhq/metascraper@v5.54.0...v5.54.1) (2026-08-07)

**Note:** Version bump only for package metascraper

### [`v5.54.1`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5541-2026-08-07)

[Compare Source](microlinkhq/metascraper@v5.54.0...v5.54.1)

**Note:** Version bump only for package metascraper

### [`v5.54.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5540-2026-08-07)

[Compare Source](microlinkhq/metascraper@v5.53.0...v5.54.0)

##### Features

- **helpers:** add rule-level validate (like test) ([#&#8203;866](microlinkhq/metascraper#866)) ([d40856b](microlinkhq/metascraper@d40856b))

#### [5.53.1](microlinkhq/metascraper@v5.53.0...v5.53.1) (2026-08-02)

##### Bug Fixes

- keep the favicon body under reachable-url v2 ([#&#8203;865](microlinkhq/metascraper#865)) ([ce4536f](microlinkhq/metascraper@ce4536f))

### [`v5.53.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5530-2026-07-30)

[Compare Source](microlinkhq/metascraper@v5.52.0...v5.53.0)

##### Features

- **helpers:** read the declared protocol instead of resolving it ([#&#8203;864](microlinkhq/metascraper#864)) ([2d72298](microlinkhq/metascraper@2d72298))

#### [5.52.1](microlinkhq/metascraper@v5.52.0...v5.52.1) (2026-07-29)

**Note:** Version bump only for package metascraper

### [`v5.52.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5520-2026-07-29)

[Compare Source](microlinkhq/metascraper@v5.51.1...v5.52.0)

##### Features

- add metascraper-logo-bimi ([#&#8203;861](microlinkhq/metascraper#861)) ([b178b76](microlinkhq/metascraper@b178b76))

#### [5.51.2](microlinkhq/metascraper@v5.51.1...v5.51.2) (2026-06-30)

##### Bug Fixes

- **metascraper-amazon:** match Amazon domains via PSL hostname, not substring regex ([#&#8203;852](microlinkhq/metascraper#852)) ([ec0d494](microlinkhq/metascraper@ec0d494)), closes [#&#8203;851](microlinkhq/metascraper#851)

#### [5.51.1](microlinkhq/metascraper@v5.51.0...v5.51.1) (2026-06-19)

**Note:** Version bump only for package metascraper

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "before 9am on tuesday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC41IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==-->

Reviewed-on: https://code.futo.org/harbor/harbor/pulls/1818
markharding pushed a commit to futo-org/Harbor that referenced this pull request Oct 16, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [metascraper-url](https://metascraper.js.org) ([source](https://github.com/microlinkhq/metascraper)) | [`5.51.1` → `5.58.4`](https://renovatebot.com/diffs/npm/metascraper-url/5.51.1/5.58.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/metascraper-url/5.58.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/metascraper-url/5.51.1/5.58.4?slim=true) |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/99) for more information.

---

### Release Notes

<details>
<summary>microlinkhq/metascraper (metascraper-url)</summary>

### [`v5.58.4`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5584-2026-10-09)

[Compare Source](microlinkhq/metascraper@v5.56.2...v5.58.4)

**Note:** Version bump only for package metascraper

### [`v5.56.2`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5562-2026-08-17)

[Compare Source](microlinkhq/metascraper@v5.55.2...v5.56.2)

**Note:** Version bump only for package metascraper

### [`v5.55.2`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5552-2026-08-13)

[Compare Source](microlinkhq/metascraper@v5.55.0...v5.55.2)

##### Bug Fixes

- **helpers:** keep CGI + in query strings ([#&#8203;872](microlinkhq/metascraper#872)) ([4743562](microlinkhq/metascraper@4743562))

### [`v5.55.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5550-2026-08-09)

[Compare Source](microlinkhq/metascraper@v5.54.1...v5.55.0)

##### Features

- **helpers:** pass propName to validate ([#&#8203;868](microlinkhq/metascraper#868)) ([8e0a75f](microlinkhq/metascraper@8e0a75f))

#### [5.54.1](microlinkhq/metascraper@v5.54.0...v5.54.1) (2026-08-07)

**Note:** Version bump only for package metascraper

### [`v5.54.1`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5541-2026-08-07)

[Compare Source](microlinkhq/metascraper@v5.54.0...v5.54.1)

**Note:** Version bump only for package metascraper

### [`v5.54.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5540-2026-08-07)

[Compare Source](microlinkhq/metascraper@v5.53.0...v5.54.0)

##### Features

- **helpers:** add rule-level validate (like test) ([#&#8203;866](microlinkhq/metascraper#866)) ([d40856b](microlinkhq/metascraper@d40856b))

#### [5.53.1](microlinkhq/metascraper@v5.53.0...v5.53.1) (2026-08-02)

##### Bug Fixes

- keep the favicon body under reachable-url v2 ([#&#8203;865](microlinkhq/metascraper#865)) ([ce4536f](microlinkhq/metascraper@ce4536f))

### [`v5.53.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5530-2026-07-30)

[Compare Source](microlinkhq/metascraper@v5.52.0...v5.53.0)

##### Features

- **helpers:** read the declared protocol instead of resolving it ([#&#8203;864](microlinkhq/metascraper#864)) ([2d72298](microlinkhq/metascraper@2d72298))

#### [5.52.1](microlinkhq/metascraper@v5.52.0...v5.52.1) (2026-07-29)

**Note:** Version bump only for package metascraper

### [`v5.52.0`](https://github.com/microlinkhq/metascraper/blob/HEAD/CHANGELOG.md#5520-2026-07-29)

[Compare Source](microlinkhq/metascraper@v5.51.1...v5.52.0)

##### Features

- add metascraper-logo-bimi ([#&#8203;861](microlinkhq/metascraper#861)) ([b178b76](microlinkhq/metascraper@b178b76))

#### [5.51.2](microlinkhq/metascraper@v5.51.1...v5.51.2) (2026-06-30)

##### Bug Fixes

- **metascraper-amazon:** match Amazon domains via PSL hostname, not substring regex ([#&#8203;852](microlinkhq/metascraper#852)) ([ec0d494](microlinkhq/metascraper@ec0d494)), closes [#&#8203;851](microlinkhq/metascraper#851)

#### [5.51.1](microlinkhq/metascraper@v5.51.0...v5.51.1) (2026-06-19)

**Note:** Version bump only for package metascraper

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "before 9am on tuesday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC41IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==-->

Reviewed-on: https://code.futo.org/harbor/harbor/pulls/1819
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant