Skip to content

feat(css): support custom media queries - #10941

Merged
siketyan merged 6 commits into
biomejs:mainfrom
siketyan:feat/custom-media
Jul 15, 2026
Merged

feat(css): support custom media queries#10941
siketyan merged 6 commits into
biomejs:mainfrom
siketyan:feat/custom-media

Conversation

@siketyan

@siketyan siketyan commented Jul 14, 2026

Copy link
Copy Markdown
Member

Summary

Closes #10855

Added support for parsing custom media queries. Previously, it was caught by noUnknownMediaFeatureName and noUnknownAtRules rules.

AI Assistance Disclosure: I used Codex for authoring a changeset. Other changes are all written by hand.

Test Plan

Added snapshot tests.

Docs

N/A

@siketyan
siketyan requested review from a team and denbezrukov July 14, 2026 15:36
@siketyan siketyan self-assigned this Jul 14, 2026
@changeset-bot

changeset-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 2f06cb1

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

Copy link
Copy Markdown
Contributor

✅ Organic activity

No automation signals detected in the analyzed events.

View full analysis →

This is an automated analysis by AgentScan

@github-actions github-actions Bot added A-Linter Area: linter A-Parser Area: parser A-Formatter Area: formatter A-Tooling Area: internal tools L-CSS Language: CSS and super languages L-Grit Language: GritQL labels Jul 14, 2026
@siketyan
siketyan force-pushed the feat/custom-media branch from 945ec8c to a8fc595 Compare July 14, 2026 15:45
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Adds CSS @custom-media parsing, syntax nodes, lexer tokens, formatter support, generated mappings, and media-query handling for dashed custom names. Lint rules recognise custom media declarations and references, with fixtures covering media lists, boolean forms, and mobile breakpoints. A patch-release changeset documents the support.

Possibly related PRs

  • biomejs/biome#9756: Updates overlapping media-feature-name parsing, formatting, and lint classification paths.
  • biomejs/biome#10573: Modifies the same no_unknown_media_feature_name validation logic.

Suggested reviewers: dyc3

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly states the main change: CSS custom media query support.
Description check ✅ Passed The description matches the PR and mentions parsing support plus the relevant lint rules and tests.
Linked Issues check ✅ Passed The changes implement parsing, formatting, and lint handling for custom media queries as requested in #10855.
Out of Scope Changes check ✅ Passed All visible changes relate to custom media query support; no unrelated scope creep stands out.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
crates/biome_css_parser/src/syntax/at_rule/feature.rs (1)

43-45: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Widen the query-feature guard for dashed identifiers. parse_query_feature_name now has an is_at_dashed_identifier(p) arm, but is_at_query_feature_name still only admits variables, identifiers, and interpolation, so (--mobile) never reaches it. Add is_at_dashed_identifier(p) to the guard.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/biome_css_parser/src/syntax/at_rule/feature.rs` around lines 43 - 45,
Update is_at_query_feature_name to also accept is_at_dashed_identifier(p),
preserving the existing variable, identifier, and interpolation checks so dashed
query feature names reach parse_query_feature_name.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/giant-vans-ring.md:
- Line 5: Update the changeset entry to begin with the required link to issue
`#10855`, then retain or revise the release note to describe support for parsing
and formatting CSS custom media queries declared with `@custom-media`.

In `@crates/biome_css_parser/src/syntax/at_rule/custom_media.rs`:
- Around line 34-54: The parse_custom_media_at_rule_declarator function
currently ignores a missing dashed identifier; replace the silent
parse_dashed_identifier(p).ok() handling with the existing
expected_dashed_identifier diagnostic so invalid declarators such as boolean or
parenthesized media queries without a name report an error.

---

Outside diff comments:
In `@crates/biome_css_parser/src/syntax/at_rule/feature.rs`:
- Around line 43-45: Update is_at_query_feature_name to also accept
is_at_dashed_identifier(p), preserving the existing variable, identifier, and
interpolation checks so dashed query feature names reach
parse_query_feature_name.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 527d46df-033f-41fd-9795-aba81046f6fd

📥 Commits

Reviewing files that changed from the base of the PR and between 0efefb9 and 945ec8c.

⛔ Files ignored due to path filters (16)
  • crates/biome_css_analyze/tests/specs/correctness/noUnknownMediaFeatureName/valid.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRules/valid.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_factory/src/generated/node_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_factory/src/generated/syntax_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/atrule/custom-media.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/case/case.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/stylefmt-repo/cssnext-example/cssnext-example.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/stylefmt-repo/custom-media-queries/custom-media-queries.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/stylefmt-repo/media-queries-ranges/media-queries-ranges.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_media_error.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_custom_media.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_media.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_syntax/src/generated/kind.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_syntax/src/generated/macros.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_syntax/src/generated/nodes.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_syntax/src/generated/nodes_mut.rs is excluded by !**/generated/**, !**/generated/** and included by **
📒 Files selected for processing (24)
  • .changeset/giant-vans-ring.md
  • crates/biome_css_analyze/src/lint/correctness/no_unknown_media_feature_name.rs
  • crates/biome_css_analyze/src/lint/nursery/use_baseline.rs
  • crates/biome_css_analyze/tests/specs/correctness/noUnknownMediaFeatureName/valid.css
  • crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRules/valid.css
  • crates/biome_css_formatter/src/css/any/at_rule.rs
  • crates/biome_css_formatter/src/css/any/custom_media_query.rs
  • crates/biome_css_formatter/src/css/any/mod.rs
  • crates/biome_css_formatter/src/css/any/query_feature_name.rs
  • crates/biome_css_formatter/src/css/auxiliary/boolean_media_query.rs
  • crates/biome_css_formatter/src/css/auxiliary/custom_media_at_rule_declarator.rs
  • crates/biome_css_formatter/src/css/auxiliary/mod.rs
  • crates/biome_css_formatter/src/css/statements/custom_media_at_rule.rs
  • crates/biome_css_formatter/src/css/statements/mod.rs
  • crates/biome_css_formatter/src/generated.rs
  • crates/biome_css_parser/src/lexer/mod.rs
  • crates/biome_css_parser/src/syntax/at_rule/custom_media.rs
  • crates/biome_css_parser/src/syntax/at_rule/feature.rs
  • crates/biome_css_parser/src/syntax/at_rule/mod.rs
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_custom_media.css
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_media.css
  • crates/biome_grit_patterns/src/grit_target_language/css_target_language/generated_mappings.rs
  • xtask/codegen/css.ungram
  • xtask/codegen/src/css_kinds_src.rs

Comment thread .changeset/giant-vans-ring.md Outdated
Comment thread crates/biome_css_parser/src/syntax/at_rule/custom_media.rs
@codspeed-hq

codspeed-hq Bot commented Jul 14, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 38 untouched benchmarks
⏩ 232 skipped benchmarks1


Comparing siketyan:feat/custom-media (2f06cb1) with main (f2799db)

Open in CodSpeed

Footnotes

  1. 232 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Comment thread .changeset/giant-vans-ring.md Outdated
@@ -0,0 +1,5 @@
---
"@biomejs/biome": minor

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Historically, we've alwawys shipped parser enhancements in patches unless there's a specific reason (experimental feature, non-official spec, etc.)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ematipico Changed it to a patch and rebased onto main :)

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/giant-vans-ring.md:
- Line 5: Update the issue reference in the changeset entry from `#10855` to
`#10884`, keeping the existing description and custom-media links unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8c01eb91-6d9b-4b89-ace4-800af684fbda

📥 Commits

Reviewing files that changed from the base of the PR and between a8fc595 and 1446c77.

📒 Files selected for processing (2)
  • .changeset/giant-vans-ring.md
  • crates/biome_css_parser/src/syntax/at_rule/custom_media.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • crates/biome_css_parser/src/syntax/at_rule/custom_media.rs

Comment thread .changeset/giant-vans-ring.md
@siketyan
siketyan force-pushed the feat/custom-media branch from 1446c77 to d12cd18 Compare July 14, 2026 16:15
@siketyan
siketyan changed the base branch from next to main July 14, 2026 16:15
@siketyan
siketyan requested a review from ematipico July 14, 2026 16:16

@denbezrukov denbezrukov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

Comment thread crates/biome_css_parser/src/syntax/at_rule/custom_media.rs Outdated
Comment thread xtask/codegen/css.ungram

AnyCssQueryFeatureName =
CssIdentifier
| CssDashedIdentifier

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do we cover here?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here:

@custom-media --mobile-viewport (max-width: 768px);

@media only screen and (--mobile-viewport) {}
                        ^^^^^^^^^^^^^^^^^

Comment thread xtask/codegen/css.ungram Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
crates/biome_css_formatter/tests/specs/css/atrule/custom_media.css (1)

1-10: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Cover boolean declarations and media-query references.

This fixture currently exercises only @custom-media declarations backed by media-query lists. Add true/false declarations and an @media (--medium-screen) case so the new parser and formatter branches cannot quietly regress.

Suggested additions
+@custom-media --always true;
+@custom-media --never false;
+
+@media (--medium-screen) {
+	.card {
+		color: red;
+	}
+}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@crates/biome_css_formatter/tests/specs/css/atrule/custom_media.css` around
lines 1 - 10, Extend the custom-media fixture with boolean declarations for both
true and false values, and add an `@media` rule referencing --medium-screen. Keep
the existing media-query-list declarations unchanged while ensuring the new
cases exercise boolean parsing/formatting and media-query references.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@crates/biome_css_formatter/tests/specs/css/atrule/custom_media.css`:
- Around line 1-10: Extend the custom-media fixture with boolean declarations
for both true and false values, and add an `@media` rule referencing
--medium-screen. Keep the existing media-query-list declarations unchanged while
ensuring the new cases exercise boolean parsing/formatting and media-query
references.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 5b027ff8-9f4f-4983-84d7-2e37b1b01218

📥 Commits

Reviewing files that changed from the base of the PR and between 1446c77 and 2f06cb1.

⛔ Files ignored due to path filters (17)
  • crates/biome_css_analyze/tests/specs/correctness/noUnknownMediaFeatureName/valid.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRules/valid.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_factory/src/generated/node_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_factory/src/generated/syntax_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_formatter/tests/specs/css/atrule/custom_media.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/atrule/custom-media.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/case/case.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/stylefmt-repo/cssnext-example/cssnext-example.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/stylefmt-repo/custom-media-queries/custom-media-queries.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_formatter/tests/specs/prettier/css/stylefmt-repo/media-queries-ranges/media-queries-ranges.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_parser/tests/css_test_suite/error/at_rule/at_rule_media_error.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_custom_media.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_media.css.snap is excluded by !**/*.snap and included by **
  • crates/biome_css_syntax/src/generated/kind.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_syntax/src/generated/macros.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_syntax/src/generated/nodes.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_css_syntax/src/generated/nodes_mut.rs is excluded by !**/generated/**, !**/generated/** and included by **
📒 Files selected for processing (25)
  • .changeset/giant-vans-ring.md
  • crates/biome_css_analyze/src/lint/correctness/no_unknown_media_feature_name.rs
  • crates/biome_css_analyze/src/lint/nursery/use_baseline.rs
  • crates/biome_css_analyze/tests/specs/correctness/noUnknownMediaFeatureName/valid.css
  • crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRules/valid.css
  • crates/biome_css_formatter/src/css/any/at_rule.rs
  • crates/biome_css_formatter/src/css/any/custom_media_query.rs
  • crates/biome_css_formatter/src/css/any/mod.rs
  • crates/biome_css_formatter/src/css/any/query_feature_name.rs
  • crates/biome_css_formatter/src/css/auxiliary/boolean_media_query.rs
  • crates/biome_css_formatter/src/css/auxiliary/custom_media_at_rule_declarator.rs
  • crates/biome_css_formatter/src/css/auxiliary/mod.rs
  • crates/biome_css_formatter/src/css/statements/custom_media_at_rule.rs
  • crates/biome_css_formatter/src/css/statements/mod.rs
  • crates/biome_css_formatter/src/generated.rs
  • crates/biome_css_formatter/tests/specs/css/atrule/custom_media.css
  • crates/biome_css_parser/src/lexer/mod.rs
  • crates/biome_css_parser/src/syntax/at_rule/custom_media.rs
  • crates/biome_css_parser/src/syntax/at_rule/feature.rs
  • crates/biome_css_parser/src/syntax/at_rule/mod.rs
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_custom_media.css
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_media.css
  • crates/biome_grit_patterns/src/grit_target_language/css_target_language/generated_mappings.rs
  • xtask/codegen/css.ungram
  • xtask/codegen/src/css_kinds_src.rs
🚧 Files skipped from review as they are similar to previous changes (21)
  • xtask/codegen/src/css_kinds_src.rs
  • crates/biome_css_parser/tests/css_test_suite/ok/at_rule/at_rule_custom_media.css
  • .changeset/giant-vans-ring.md
  • crates/biome_css_formatter/src/css/any/custom_media_query.rs
  • crates/biome_css_formatter/src/css/any/mod.rs
  • crates/biome_css_analyze/src/lint/nursery/use_baseline.rs
  • crates/biome_css_formatter/src/css/any/query_feature_name.rs
  • crates/biome_css_formatter/src/css/auxiliary/custom_media_at_rule_declarator.rs
  • crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRules/valid.css
  • crates/biome_css_parser/src/lexer/mod.rs
  • crates/biome_css_formatter/src/css/any/at_rule.rs
  • crates/biome_css_formatter/src/css/auxiliary/boolean_media_query.rs
  • crates/biome_grit_patterns/src/grit_target_language/css_target_language/generated_mappings.rs
  • crates/biome_css_analyze/src/lint/correctness/no_unknown_media_feature_name.rs
  • crates/biome_css_formatter/src/css/statements/mod.rs
  • crates/biome_css_parser/src/syntax/at_rule/mod.rs
  • xtask/codegen/css.ungram
  • crates/biome_css_parser/src/syntax/at_rule/feature.rs
  • crates/biome_css_formatter/src/css/statements/custom_media_at_rule.rs
  • crates/biome_css_formatter/src/css/auxiliary/mod.rs
  • crates/biome_css_formatter/src/generated.rs

@siketyan
siketyan merged commit f787725 into biomejs:main Jul 15, 2026
32 of 33 checks passed
@siketyan
siketyan deleted the feat/custom-media branch July 15, 2026 10:52
@github-actions github-actions Bot mentioned this pull request Jul 15, 2026
OIRNOIR pushed a commit to OIRNOIR/YouTube-Helper-Client that referenced this pull request Jul 28, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev) ([source](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)) | imports | patch | [`2.5.4` -> `2.5.5`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/2.5.4/2.5.5) |

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

### [`v2.5.5`](https://github.com/biomejs/biome/blob/HEAD/packages/@&#8203;biomejs/biome/CHANGELOG.md#255)

[Compare Source](https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.4...@biomejs/biome@2.5.5)

##### Patch Changes

- [#&#8203;10972](biomejs/biome#10972) [`ab8c21b`](biomejs/biome@ab8c21b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [`useExhaustiveSwitchCases`](https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/) for unions of bigint literals. The rule now reports missing bigint cases and compares bigint literals by value, including binary, octal, hexadecimal, and separator-containing spellings. For example, this switch now reports the missing `2n` case:

  ```ts
  declare const value: 1n | 2n;
  switch (value) {
    case 1n:
      break;
  }
  ```

- [#&#8203;10972](biomejs/biome#10972) [`ab8c21b`](biomejs/biome@ab8c21b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed false positives in [`noBaseToString`](https://biomejs.dev/linter/rules/no-base-to-string/) and [`useNullishCoalescing`](https://biomejs.dev/linter/rules/use-nullish-coalescing/) when member, stringification, or nullish inference cannot complete. These rules now suppress diagnostics instead of reporting from partial type information. For example, neither expression is reported when a recursive type cannot be fully resolved:

  ```ts
  type Recursive = Recursive;
  declare const value: Recursive;

  String(value);
  value || "fallback";
  ```

- [#&#8203;10977](biomejs/biome#10977) [`0bf7486`](biomejs/biome@0bf7486) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10922](biomejs/biome#10922): the action [`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/) no longer triggers for HTML instructions.

- [#&#8203;10957](biomejs/biome#10957) [`cf263c4`](biomejs/biome@cf263c4) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/) failing to detect `Object.fromEntries`, `Object.defineProperty`, and `Reflect.defineProperty` calls with comments between their tokens.

- [#&#8203;10983](biomejs/biome#10983) [`edc0ed7`](biomejs/biome@edc0ed7) Thanks [@&#8203;ayaangazali](https://github.com/ayaangazali)! - Fixed [#&#8203;10980](biomejs/biome#10980): [`useAriaPropsSupportedByRole`](https://biomejs.dev/linter/rules/use-aria-props-supported-by-role/) no longer reports false positives when the attribute that determines an element's implicit ARIA role is written as a shorthand attribute, such as `<a {href} aria-label="...">` in Astro and Svelte files.

  Shorthand attributes are now taken into account when computing the implicit role, so the anchor above correctly resolves to the `link` role instead of `generic`.

- [#&#8203;10889](biomejs/biome#10889) [`89526e3`](biomejs/biome@89526e3) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed CSS formatter casing for syntax-owned names while preserving author-defined names, including scoped keyframes and container scroll-state queries.

  ```diff
  - A:HOVER { COLOR: INITIAL; }
  + A:hover { color: initial; }
  - @&#8203;KEYFRAMES :GLOBAL KeepFrames { FROM { COLOR: RED; } }
  + @&#8203;keyframes :GLOBAL KeepFrames { from { color: RED; } }
  - @&#8203;CONTAINER scroll-state((SCROLLED: TOP) AND (STUCK)) { A:HOVER { COLOR: RED; } }
  + @&#8203;container scroll-state((SCROLLED: TOP) AND (STUCK)) { A:hover { color: RED; } }
  ```

- [#&#8203;10964](biomejs/biome#10964) [`794ccd0`](biomejs/biome@794ccd0) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed CSS formatting for comments between declaration values and `!important`.

  ```diff
  -a { color: /* before */ /* after */ red !important; }
  +a { color: /* before */ red /* after */ !important; }
  ```

- [#&#8203;10993](biomejs/biome#10993) [`b7a9694`](biomejs/biome@b7a9694) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed the CSS formatter to preserve comments on the correct side of selector combinators and before declaration blocks.

  ```diff
  -.before > /* comment */ .after {}
  +.before /* comment */ > .after {}
  ```

  It now also keeps selectors with escaped newlines in attribute values inline when they fit.

  ```diff
  -div
  -  span[foo="bar\
  +div span[foo="bar\
   value"] {}
  ```

- [#&#8203;10978](biomejs/biome#10978) [`8ebafe1`](biomejs/biome@8ebafe1) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10870](biomejs/biome#10870): [`noUnresolvedImports`](https://biomejs.dev/linter/rules/no-unresolved-imports/) no longer reports false positives such as `import type { NextRequest } from "next/server"`.

- [#&#8203;10901](biomejs/biome#10901) [`68c10e6`](biomejs/biome@68c10e6) Thanks [@&#8203;Socialpranker](https://github.com/Socialpranker)! - Fixed [#&#8203;10622](biomejs/biome#10622): the HTML/Vue parser no longer panics on the argument-less `v-bind` shorthand (`:="props"`).

  This syntax is valid Vue and equivalent to `v-bind="props"`, so the parser now accepts it (along with the longhand `v-bind:="props"`) instead of crashing while building a diagnostic for a missing argument.

- [#&#8203;10936](biomejs/biome#10936) [`7df46f5`](biomejs/biome@7df46f5) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Improved generic tuple inference for [`useIncludes`](https://biomejs.dev/linter/rules/use-includes/). The rule now recognizes specialised tuple element types returned through generic aliases.

- [#&#8203;10941](biomejs/biome#10941) [`f787725`](biomejs/biome@f787725) Thanks [@&#8203;siketyan](https://github.com/siketyan)! - Fixed [`#10855`](biomejs/biome#10855): Biome now supports parsing and formatting CSS custom media queries declared with [`@custom-media`](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@&#8203;custom-media).

- [#&#8203;10969](biomejs/biome#10969) [`72d309b`](biomejs/biome@72d309b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed an issue where Biome logs became too verbose, dumping information not relevant to user's operations.

- [`e62f6b6`](biomejs/biome@e62f6b6) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10963](biomejs/biome#10963): Biome no longer panics when a type-aware rule such as [`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/) checks a call to a function with multiple call signatures imported from another module.

- [#&#8203;10931](biomejs/biome#10931) [`899c60d`](biomejs/biome@899c60d) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed `check --write` command. Now the command reports code frame of the formatted code, if the formatter is enabled.

- [#&#8203;10904](biomejs/biome#10904) [`ceee4f4`](biomejs/biome@ceee4f4) Thanks [@&#8203;qzwxsaedc](https://github.com/qzwxsaedc)! - Fixed [#&#8203;10892](biomejs/biome#10892): [`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/) no longer reports a false positive when checking a member of a discriminated union that is accessed through a default type-only namespace import. The following code is no longer flagged:

  ```ts
  import type Types from "./types";

  declare function parse(): Types.Result<string>;
  const result = parse();
  if (!result.success) {
  }
  ```

- [#&#8203;10962](biomejs/biome#10962) [`f0a67f2`](biomejs/biome@f0a67f2) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Biome no longer removes embedded styles and scripts in HTML files.

- [#&#8203;11000](biomejs/biome#11000) [`5039a1e`](biomejs/biome@5039a1e) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed a bug where closing one editor stopped a shared Biome daemon used by other editors. LSP proxy processes now exit when either the editor or daemon disconnects.

- [#&#8203;10957](biomejs/biome#10957) [`cf263c4`](biomejs/biome@cf263c4) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Improved the performance of the [`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/) lint rule by about 50%.

- [#&#8203;10992](biomejs/biome#10992) [`4bf9b21`](biomejs/biome@4bf9b21) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/): The rule now reports Promise-returning callbacks where a synchronous callback is expected when calls use tuple spreads or tuple rest parameters, including generic and deeply nested tuples, and when constructor signatures come from interface or object types. Recursive or excessively nested tuple spreads use a conservative fallback so analysis terminates.

  For example, the following callback is now reported.

  ```ts
  declare function consume(...args: [number, () => void]): void;
  const prefix: [number] = [1];

  consume(...prefix, async () => {});
  ```

- [#&#8203;10915](biomejs/biome#10915) [`b3b12b3`](biomejs/biome@b3b12b3) Thanks [@&#8203;Functionhx](https://github.com/Functionhx)! - Added the rule [`noNegationInEqualityCheck`](https://biomejs.dev/linter/rules/no-negation-in-equality-check/). The rule flags negated expressions on the left side of strict equality checks like `!foo === bar` — due to operator precedence this evaluates as `(!foo) === bar` which is almost always a mistake for `foo !== bar`.

  The rule provides an unsafe fix that flips the operator.

  ```js
  // Invalid
  !foo === bar;
  !foo !== bar;

  // Valid
  foo !== bar;
  foo === bar;
  ```

- [#&#8203;10970](biomejs/biome#10970) [`bd1038b`](biomejs/biome@bd1038b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Improved overload selection for [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/). Biome now handles overloaded calls, overloaded constructors, rest parameters, union arguments, and generic constraints without selecting an incompatible signature. For example, `noMisusedPromises` now reports the async callback passed to the synchronous overload:

  ```ts
  declare function consume(kind: "async", callback: () => Promise<void>): void;
  declare function consume(kind: "sync", callback: () => void): void;
  consume("sync", async () => {});
  ```

- [#&#8203;10933](biomejs/biome#10933) [`48a4abb`](biomejs/biome@48a4abb) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [`useArrayFind`](https://biomejs.dev/linter/rules/use-array-find/) to recognize bigint zero indexes.

- [#&#8203;10931](biomejs/biome#10931) [`899c60d`](biomejs/biome@899c60d) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed an orchestration issue that could lead to deadlocks when type-aware rules are enabled.

- [#&#8203;10969](biomejs/biome#10969) [`72d309b`](biomejs/biome@72d309b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Hardened the Biome Language Server by improving its synchronisation logic.

- [#&#8203;10972](biomejs/biome#10972) [`ab8c21b`](biomejs/biome@ab8c21b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed false positives in [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/) and [`useAwaitThenable`](https://biomejs.dev/linter/rules/use-await-thenable/) when Promise or thenable inference cannot complete. These rules now suppress diagnostics instead of treating incomplete type information as a definite result. For example, `useAwaitThenable` no longer reports `await value` when the value's thenability is unknown:

  ```ts
  declare const value: unknown;

  async function consume() {
    await value;
  }
  ```

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- 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](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzIuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI3Mi40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://git.oirnoir.dev/OIRNOIR/YouTube-Helper-Client/pulls/14
OIRNOIR pushed a commit to OIRNOIR/YouTube-Helper-Server that referenced this pull request Jul 28, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev) ([source](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)) | imports | patch | [`2.5.4` -> `2.5.5`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/2.5.4/2.5.5) |

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

### [`v2.5.5`](https://github.com/biomejs/biome/blob/HEAD/packages/@&#8203;biomejs/biome/CHANGELOG.md#255)

[Compare Source](https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.4...@biomejs/biome@2.5.5)

##### Patch Changes

- [#&#8203;10972](biomejs/biome#10972) [`ab8c21b`](biomejs/biome@ab8c21b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [`useExhaustiveSwitchCases`](https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/) for unions of bigint literals. The rule now reports missing bigint cases and compares bigint literals by value, including binary, octal, hexadecimal, and separator-containing spellings. For example, this switch now reports the missing `2n` case:

  ```ts
  declare const value: 1n | 2n;
  switch (value) {
    case 1n:
      break;
  }
  ```

- [#&#8203;10972](biomejs/biome#10972) [`ab8c21b`](biomejs/biome@ab8c21b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed false positives in [`noBaseToString`](https://biomejs.dev/linter/rules/no-base-to-string/) and [`useNullishCoalescing`](https://biomejs.dev/linter/rules/use-nullish-coalescing/) when member, stringification, or nullish inference cannot complete. These rules now suppress diagnostics instead of reporting from partial type information. For example, neither expression is reported when a recursive type cannot be fully resolved:

  ```ts
  type Recursive = Recursive;
  declare const value: Recursive;

  String(value);
  value || "fallback";
  ```

- [#&#8203;10977](biomejs/biome#10977) [`0bf7486`](biomejs/biome@0bf7486) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10922](biomejs/biome#10922): the action [`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/) no longer triggers for HTML instructions.

- [#&#8203;10957](biomejs/biome#10957) [`cf263c4`](biomejs/biome@cf263c4) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/) failing to detect `Object.fromEntries`, `Object.defineProperty`, and `Reflect.defineProperty` calls with comments between their tokens.

- [#&#8203;10983](biomejs/biome#10983) [`edc0ed7`](biomejs/biome@edc0ed7) Thanks [@&#8203;ayaangazali](https://github.com/ayaangazali)! - Fixed [#&#8203;10980](biomejs/biome#10980): [`useAriaPropsSupportedByRole`](https://biomejs.dev/linter/rules/use-aria-props-supported-by-role/) no longer reports false positives when the attribute that determines an element's implicit ARIA role is written as a shorthand attribute, such as `<a {href} aria-label="...">` in Astro and Svelte files.

  Shorthand attributes are now taken into account when computing the implicit role, so the anchor above correctly resolves to the `link` role instead of `generic`.

- [#&#8203;10889](biomejs/biome#10889) [`89526e3`](biomejs/biome@89526e3) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed CSS formatter casing for syntax-owned names while preserving author-defined names, including scoped keyframes and container scroll-state queries.

  ```diff
  - A:HOVER { COLOR: INITIAL; }
  + A:hover { color: initial; }
  - @&#8203;KEYFRAMES :GLOBAL KeepFrames { FROM { COLOR: RED; } }
  + @&#8203;keyframes :GLOBAL KeepFrames { from { color: RED; } }
  - @&#8203;CONTAINER scroll-state((SCROLLED: TOP) AND (STUCK)) { A:HOVER { COLOR: RED; } }
  + @&#8203;container scroll-state((SCROLLED: TOP) AND (STUCK)) { A:hover { color: RED; } }
  ```

- [#&#8203;10964](biomejs/biome#10964) [`794ccd0`](biomejs/biome@794ccd0) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed CSS formatting for comments between declaration values and `!important`.

  ```diff
  -a { color: /* before */ /* after */ red !important; }
  +a { color: /* before */ red /* after */ !important; }
  ```

- [#&#8203;10993](biomejs/biome#10993) [`b7a9694`](biomejs/biome@b7a9694) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed the CSS formatter to preserve comments on the correct side of selector combinators and before declaration blocks.

  ```diff
  -.before > /* comment */ .after {}
  +.before /* comment */ > .after {}
  ```

  It now also keeps selectors with escaped newlines in attribute values inline when they fit.

  ```diff
  -div
  -  span[foo="bar\
  +div span[foo="bar\
   value"] {}
  ```

- [#&#8203;10978](biomejs/biome#10978) [`8ebafe1`](biomejs/biome@8ebafe1) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10870](biomejs/biome#10870): [`noUnresolvedImports`](https://biomejs.dev/linter/rules/no-unresolved-imports/) no longer reports false positives such as `import type { NextRequest } from "next/server"`.

- [#&#8203;10901](biomejs/biome#10901) [`68c10e6`](biomejs/biome@68c10e6) Thanks [@&#8203;Socialpranker](https://github.com/Socialpranker)! - Fixed [#&#8203;10622](biomejs/biome#10622): the HTML/Vue parser no longer panics on the argument-less `v-bind` shorthand (`:="props"`).

  This syntax is valid Vue and equivalent to `v-bind="props"`, so the parser now accepts it (along with the longhand `v-bind:="props"`) instead of crashing while building a diagnostic for a missing argument.

- [#&#8203;10936](biomejs/biome#10936) [`7df46f5`](biomejs/biome@7df46f5) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Improved generic tuple inference for [`useIncludes`](https://biomejs.dev/linter/rules/use-includes/). The rule now recognizes specialised tuple element types returned through generic aliases.

- [#&#8203;10941](biomejs/biome#10941) [`f787725`](biomejs/biome@f787725) Thanks [@&#8203;siketyan](https://github.com/siketyan)! - Fixed [`#10855`](biomejs/biome#10855): Biome now supports parsing and formatting CSS custom media queries declared with [`@custom-media`](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@&#8203;custom-media).

- [#&#8203;10969](biomejs/biome#10969) [`72d309b`](biomejs/biome@72d309b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed an issue where Biome logs became too verbose, dumping information not relevant to user's operations.

- [`e62f6b6`](biomejs/biome@e62f6b6) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10963](biomejs/biome#10963): Biome no longer panics when a type-aware rule such as [`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/) checks a call to a function with multiple call signatures imported from another module.

- [#&#8203;10931](biomejs/biome#10931) [`899c60d`](biomejs/biome@899c60d) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed `check --write` command. Now the command reports code frame of the formatted code, if the formatter is enabled.

- [#&#8203;10904](biomejs/biome#10904) [`ceee4f4`](biomejs/biome@ceee4f4) Thanks [@&#8203;qzwxsaedc](https://github.com/qzwxsaedc)! - Fixed [#&#8203;10892](biomejs/biome#10892): [`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/) no longer reports a false positive when checking a member of a discriminated union that is accessed through a default type-only namespace import. The following code is no longer flagged:

  ```ts
  import type Types from "./types";

  declare function parse(): Types.Result<string>;
  const result = parse();
  if (!result.success) {
  }
  ```

- [#&#8203;10962](biomejs/biome#10962) [`f0a67f2`](biomejs/biome@f0a67f2) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Biome no longer removes embedded styles and scripts in HTML files.

- [#&#8203;11000](biomejs/biome#11000) [`5039a1e`](biomejs/biome@5039a1e) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed a bug where closing one editor stopped a shared Biome daemon used by other editors. LSP proxy processes now exit when either the editor or daemon disconnects.

- [#&#8203;10957](biomejs/biome#10957) [`cf263c4`](biomejs/biome@cf263c4) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Improved the performance of the [`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/) lint rule by about 50%.

- [#&#8203;10992](biomejs/biome#10992) [`4bf9b21`](biomejs/biome@4bf9b21) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/): The rule now reports Promise-returning callbacks where a synchronous callback is expected when calls use tuple spreads or tuple rest parameters, including generic and deeply nested tuples, and when constructor signatures come from interface or object types. Recursive or excessively nested tuple spreads use a conservative fallback so analysis terminates.

  For example, the following callback is now reported.

  ```ts
  declare function consume(...args: [number, () => void]): void;
  const prefix: [number] = [1];

  consume(...prefix, async () => {});
  ```

- [#&#8203;10915](biomejs/biome#10915) [`b3b12b3`](biomejs/biome@b3b12b3) Thanks [@&#8203;Functionhx](https://github.com/Functionhx)! - Added the rule [`noNegationInEqualityCheck`](https://biomejs.dev/linter/rules/no-negation-in-equality-check/). The rule flags negated expressions on the left side of strict equality checks like `!foo === bar` — due to operator precedence this evaluates as `(!foo) === bar` which is almost always a mistake for `foo !== bar`.

  The rule provides an unsafe fix that flips the operator.

  ```js
  // Invalid
  !foo === bar;
  !foo !== bar;

  // Valid
  foo !== bar;
  foo === bar;
  ```

- [#&#8203;10970](biomejs/biome#10970) [`bd1038b`](biomejs/biome@bd1038b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Improved overload selection for [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/). Biome now handles overloaded calls, overloaded constructors, rest parameters, union arguments, and generic constraints without selecting an incompatible signature. For example, `noMisusedPromises` now reports the async callback passed to the synchronous overload:

  ```ts
  declare function consume(kind: "async", callback: () => Promise<void>): void;
  declare function consume(kind: "sync", callback: () => void): void;
  consume("sync", async () => {});
  ```

- [#&#8203;10933](biomejs/biome#10933) [`48a4abb`](biomejs/biome@48a4abb) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [`useArrayFind`](https://biomejs.dev/linter/rules/use-array-find/) to recognize bigint zero indexes.

- [#&#8203;10931](biomejs/biome#10931) [`899c60d`](biomejs/biome@899c60d) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed an orchestration issue that could lead to deadlocks when type-aware rules are enabled.

- [#&#8203;10969](biomejs/biome#10969) [`72d309b`](biomejs/biome@72d309b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Hardened the Biome Language Server by improving its synchronisation logic.

- [#&#8203;10972](biomejs/biome#10972) [`ab8c21b`](biomejs/biome@ab8c21b) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed false positives in [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/) and [`useAwaitThenable`](https://biomejs.dev/linter/rules/use-await-thenable/) when Promise or thenable inference cannot complete. These rules now suppress diagnostics instead of treating incomplete type information as a definite result. For example, `useAwaitThenable` no longer reports `await value` when the value's thenability is unknown:

  ```ts
  declare const value: unknown;

  async function consume() {
    await value;
  }
  ```

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- 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](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzIuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI3Mi40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://git.oirnoir.dev/OIRNOIR/YouTube-Helper-Server/pulls/31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Formatter Area: formatter A-Linter Area: linter A-Parser Area: parser A-Tooling Area: internal tools L-CSS Language: CSS and super languages L-Grit Language: GritQL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Custom Media Queries - Media queries level 5

3 participants