chore(deps): update dependency ultracite to v7.12.4 (dev) #5

Merged
renovate Bot merged 1 commits from renovate/dev-code-dependencies into dev 2026-10-09 04:06:10 +00:00

This PR contains the following updates:

Package Change Age Confidence
ultracite (source) 7.12.2 → 7.12.4 age confidence

Release Notes

haydenbleasel/ultracite (ultracite)

v7.12.4

Compare Source

Patch Changes
  • 1cdaf87: Add opt-in ultracite/oxlint/gdp and ultracite/eslint/gdp presets for gdp-ts, which makes authorization checks visible to the type checker. Following upstream's strict mode, they stop proofs being forged with type assertions ({} as UserIsProjectAdmin<U, P>) or minted outside proofs/, ban other type assertions outside proofs/ and lib/ids.ts (except as const), and keep provers private to their trusted module. Upstream's no-any is left off because core already bans any. Inside proofs/, empty proof interfaces (interface X<P> extends Proof<"X", [P]> {}) are allowed, and the ESLint preset ignores _-prefixed proof arguments in no-unused-vars, as Oxlint does by default. @gdp-ts/core ships the plugin, so there is nothing extra to install: extend the preset after core.

v7.12.3

Compare Source

Patch Changes
  • f753c14: Add opt-in TSDoc syntax validation and public TypeScript API documentation checks to the Oxlint js-plugins preset. Selecting a plugin with --js-plugins on a config that extends the full js-plugins preset now keeps the preset's plugins.

  • ade34d3: Update @biomejs/biome to 2.5.15. The release adds 11 nursery rules and changes no stable rules, so the Biome presets, which exclude nursery rules, are unchanged. It speeds up HTML formatting and big-file analysis, fixes Astro expression indentation and Svelte comment placement, and reports configuration errors that Biome 2.5.14 silently ignored.

  • 631e0dd: Update oxfmt to 0.71.0. The release changes no options; it bundles Prettier 3.9.9 for embedded languages and fixes comment placement around assignments, JSDoc alignment and several Markdown edge cases.

  • 08e83af: Update oxlint to 1.86.0 and enable its new type-aware rule, typescript/no-generated-empty-object-type, in the core Oxlint preset. It reports type operations such as Pick<Data, never> that resolve to the empty object type {}, matching the @typescript-eslint rule of the same name that the ESLint preset already enables. Like the other type-aware rules, it only runs with oxlint --type-aware and oxlint-tsgolint installed. Older oxlint releases fail to parse a config that names the rule, so the oxlint peer range moves to ^1.86.0.

    Requires oxlint >= 1.86.0

  • 2a9348c: Update the ESLint presets' plugins: eslint 10.12, eslint-plugin-unicorn 77, eslint-plugin-jsdoc 65, @typescript-eslint 8.71, eslint-plugin-sonarjs 4.2.2, eslint-plugin-react-doctor and oxlint-plugin-react-doctor 0.9.16, plus patch releases of the Next.js, TanStack Query, n, Solid and Storybook plugins.

    The ESLint core preset enables every non-deprecated JavaScript rule from unicorn, so it now also runs unicorn 77's 21 new JavaScript rules, including no-unnecessary-parameters, no-unsafe-json-serialization, prefer-promise-static-methods and a set of no-invalid-* checks for DOM, Intl, Response, Temporal and property descriptor arguments. It also enables the new type-aware @typescript-eslint/no-unsafe-enum-assignment. Unicorn 77 moves its CSS-only rules to eslint-cssicorn; the preset never enabled them for JavaScript files, so nothing is lost.

  • 864cde1: Raise the eslint peer dependency to ^10.9.0. The ESLint core preset configures no-unmodified-loop-condition with checkConditionalExpressions, an option ESLint 10.0 to 10.8 reject, so every preset except Vue failed with Key "rules": Key "no-unmodified-loop-condition" on those releases even though the old ^10.0.0 range allowed them (eslint-plugin-unicorn also needs ESLint 10.4 or later). ultracite init and ultracite upgrade now install a release that loads the presets, and ultracite doctor and your package manager flag older ones. @eslint/js, which is no longer versioned with ESLint, keeps its own ^10.0.1 range.

    Requires eslint >= 10.9.0

  • d7563b3: ultracite init now skips every prompt when you pass any of --pm, --editors, --agents, --hooks, --integrations, --frameworks or --workspace-framework, as documented. Before, the editor, agent, hook, skill and (with --frameworks) integration prompts still asked, which stalled scaffolding tools that call init without a TTY. --js-plugins with a linter other than Oxlint now stops init with an error instead of being silently ignored, and without --linter it skips the linter prompt.

  • 6c7e149: ultracite init no longer hangs on a .pre-commit-config.yaml or lefthook config with CRLF line endings and many consecutive comment lines. The check that keeps the file's sequence indentation could backtrack exponentially on that input.

  • 3dc6431: On Windows, a linter or formatter that isn't installed is now reported as missing instead of as "exited with code 1". ultracite check and ultracite fix warn and skip CSS linting when the optional Stylelint is missing, as they already did on macOS and Linux, and ultracite fix --agent now skips a missing Stylelint on every platform instead of failing.

  • 7f085b2: Type jsPlugins as a non-null array on the Oxlint presets that always ship plugins (js-plugins, shadcn, anti-slop, next/js-plugins, tanstack/js-plugins) and on selectJsPlugins()'s return value, so spreading several of them into a root jsPlugins array typechecks.

  • 45e7f86: The ESLint core preset enables unicorn/prefer-combined-guards's new checkMultiStatementBodies option, so consecutive guards whose bodies repeat the same statements before the same exit (for example, two if blocks that each log and continue) are reported and can be combined with ||. In TypeScript, the rule only combines bodies when type information shows every reference has the same type in both.

  • d5523c5: ultracite init takes --workspace-framework <path>=<framework> for monorepos whose workspaces use different frameworks. For each workspace, it writes an Oxlint, Biome or ESLint config in that directory that extends the root config and adds the workspace's presets, so framework rules only run where they apply and editors see the same rules as ultracite check.


Configuration

📅 Schedule: (in timezone Europe/Warsaw)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

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


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [ultracite](https://www.ultracite.ai/) ([source](https://github.com/haydenbleasel/ultracite)) | [`7.12.2` → `7.12.4`](https://renovatebot.com/diffs/npm/ultracite/7.12.2/7.12.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/ultracite/7.12.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ultracite/7.12.2/7.12.4?slim=true) | --- ### Release Notes <details> <summary>haydenbleasel/ultracite (ultracite)</summary> ### [`v7.12.4`](https://github.com/haydenbleasel/ultracite/releases/tag/ultracite%407.12.4) [Compare Source](https://github.com/haydenbleasel/ultracite/compare/ultracite@7.12.3...ultracite@7.12.4) ##### Patch Changes - [`1cdaf87`](https://github.com/haydenbleasel/ultracite/commit/1cdaf87): Add opt-in `ultracite/oxlint/gdp` and `ultracite/eslint/gdp` presets for [gdp-ts](https://github.com/rauchg/gdp-ts), which makes authorization checks visible to the type checker. Following upstream's strict mode, they stop proofs being forged with type assertions (`{} as UserIsProjectAdmin<U, P>`) or minted outside `proofs/`, ban other type assertions outside `proofs/` and `lib/ids.ts` (except `as const`), and keep provers private to their trusted module. Upstream's `no-any` is left off because core already bans `any`. Inside `proofs/`, empty proof interfaces (`interface X<P> extends Proof<"X", [P]> {}`) are allowed, and the ESLint preset ignores `_`-prefixed proof arguments in `no-unused-vars`, as Oxlint does by default. `@gdp-ts/core` ships the plugin, so there is nothing extra to install: extend the preset after `core`. ### [`v7.12.3`](https://github.com/haydenbleasel/ultracite/releases/tag/ultracite%407.12.3) [Compare Source](https://github.com/haydenbleasel/ultracite/compare/ultracite@7.12.2...ultracite@7.12.3) ##### Patch Changes - [`f753c14`](https://github.com/haydenbleasel/ultracite/commit/f753c14): Add opt-in TSDoc syntax validation and public TypeScript API documentation checks to the Oxlint `js-plugins` preset. Selecting a plugin with `--js-plugins` on a config that extends the full `js-plugins` preset now keeps the preset's plugins. - [`ade34d3`](https://github.com/haydenbleasel/ultracite/commit/ade34d3): Update `@biomejs/biome` to 2.5.15. The release adds 11 nursery rules and changes no stable rules, so the Biome presets, which exclude nursery rules, are unchanged. It speeds up HTML formatting and big-file analysis, fixes Astro expression indentation and Svelte comment placement, and reports configuration errors that Biome 2.5.14 silently ignored. - [`631e0dd`](https://github.com/haydenbleasel/ultracite/commit/631e0dd): Update oxfmt to 0.71.0. The release changes no options; it bundles Prettier 3.9.9 for embedded languages and fixes comment placement around assignments, JSDoc alignment and several Markdown edge cases. - [`08e83af`](https://github.com/haydenbleasel/ultracite/commit/08e83af): Update oxlint to 1.86.0 and enable its new type-aware rule, [`typescript/no-generated-empty-object-type`](https://oxc.rs/docs/guide/usage/linter/rules/typescript/no-generated-empty-object-type.html), in the core Oxlint preset. It reports type operations such as `Pick<Data, never>` that resolve to the empty object type `{}`, matching the `@typescript-eslint` rule of the same name that the ESLint preset already enables. Like the other type-aware rules, it only runs with `oxlint --type-aware` and `oxlint-tsgolint` installed. Older oxlint releases fail to parse a config that names the rule, so the `oxlint` peer range moves to `^1.86.0`. Requires oxlint >= 1.86.0 - [`2a9348c`](https://github.com/haydenbleasel/ultracite/commit/2a9348c): Update the ESLint presets' plugins: `eslint` 10.12, `eslint-plugin-unicorn` 77, `eslint-plugin-jsdoc` 65, `@typescript-eslint` 8.71, `eslint-plugin-sonarjs` 4.2.2, `eslint-plugin-react-doctor` and `oxlint-plugin-react-doctor` 0.9.16, plus patch releases of the Next.js, TanStack Query, `n`, Solid and Storybook plugins. The ESLint core preset enables every non-deprecated JavaScript rule from unicorn, so it now also runs unicorn 77's 21 new JavaScript rules, including [`no-unnecessary-parameters`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v77.0.0/docs/rules/no-unnecessary-parameters.md), [`no-unsafe-json-serialization`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v77.0.0/docs/rules/no-unsafe-json-serialization.md), [`prefer-promise-static-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v77.0.0/docs/rules/prefer-promise-static-methods.md) and a set of `no-invalid-*` checks for DOM, `Intl`, `Response`, Temporal and property descriptor arguments. It also enables the new type-aware [`@typescript-eslint/no-unsafe-enum-assignment`](https://typescript-eslint.io/rules/no-unsafe-enum-assignment). Unicorn 77 moves its CSS-only rules to `eslint-cssicorn`; the preset never enabled them for JavaScript files, so nothing is lost. - [`864cde1`](https://github.com/haydenbleasel/ultracite/commit/864cde1): Raise the `eslint` peer dependency to `^10.9.0`. The ESLint core preset configures `no-unmodified-loop-condition` with `checkConditionalExpressions`, an option ESLint 10.0 to 10.8 reject, so every preset except Vue failed with `Key "rules": Key "no-unmodified-loop-condition"` on those releases even though the old `^10.0.0` range allowed them (`eslint-plugin-unicorn` also needs ESLint 10.4 or later). `ultracite init` and `ultracite upgrade` now install a release that loads the presets, and `ultracite doctor` and your package manager flag older ones. `@eslint/js`, which is no longer versioned with ESLint, keeps its own `^10.0.1` range. Requires eslint >= 10.9.0 - [`d7563b3`](https://github.com/haydenbleasel/ultracite/commit/d7563b3): `ultracite init` now skips every prompt when you pass any of `--pm`, `--editors`, `--agents`, `--hooks`, `--integrations`, `--frameworks` or `--workspace-framework`, as documented. Before, the editor, agent, hook, skill and (with `--frameworks`) integration prompts still asked, which stalled scaffolding tools that call init without a TTY. `--js-plugins` with a linter other than Oxlint now stops init with an error instead of being silently ignored, and without `--linter` it skips the linter prompt. - [`6c7e149`](https://github.com/haydenbleasel/ultracite/commit/6c7e149): `ultracite init` no longer hangs on a `.pre-commit-config.yaml` or lefthook config with CRLF line endings and many consecutive comment lines. The check that keeps the file's sequence indentation could backtrack exponentially on that input. - [`3dc6431`](https://github.com/haydenbleasel/ultracite/commit/3dc6431): On Windows, a linter or formatter that isn't installed is now reported as missing instead of as "exited with code 1". `ultracite check` and `ultracite fix` warn and skip CSS linting when the optional Stylelint is missing, as they already did on macOS and Linux, and `ultracite fix --agent` now skips a missing Stylelint on every platform instead of failing. - [`7f085b2`](https://github.com/haydenbleasel/ultracite/commit/7f085b2): Type `jsPlugins` as a non-null array on the Oxlint presets that always ship plugins (`js-plugins`, `shadcn`, `anti-slop`, `next/js-plugins`, `tanstack/js-plugins`) and on `selectJsPlugins()`'s return value, so spreading several of them into a root `jsPlugins` array typechecks. - [`45e7f86`](https://github.com/haydenbleasel/ultracite/commit/45e7f86): The ESLint core preset enables `unicorn/prefer-combined-guards`'s new [`checkMultiStatementBodies`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v77.0.0/docs/rules/prefer-combined-guards.md#checkmultistatementbodies) option, so consecutive guards whose bodies repeat the same statements before the same exit (for example, two `if` blocks that each log and `continue`) are reported and can be combined with `||`. In TypeScript, the rule only combines bodies when type information shows every reference has the same type in both. - [`d5523c5`](https://github.com/haydenbleasel/ultracite/commit/d5523c5): `ultracite init` takes `--workspace-framework <path>=<framework>` for monorepos whose workspaces use different frameworks. For each workspace, it writes an Oxlint, Biome or ESLint config in that directory that extends the root config and adds the workspace's presets, so framework rules only run where they apply and editors see the same rules as `ultracite check`. </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Warsaw) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiI0NC43NC4wIiwidXBkYXRlZEluVmVyIjoiNDQuNzQuMCIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6WyJkZXBzLWNvZGUiLCJyZW5vdmF0ZSJdfQ==-->
renovate Bot added 1 commit 2026-10-09 04:06:08 +00:00
chore(deps): update dependency ultracite to v7.12.4
renovate/stability-days Updates have met minimum release age requirement
a090d44897
renovate Bot scheduled this pull request to auto merge when all checks succeed 2026-10-09 04:06:08 +00:00
renovate Bot merged commit a1188d806a into dev 2026-10-09 04:06:10 +00:00
renovate Bot deleted branch renovate/dev-code-dependencies 2026-10-09 04:06:11 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: open/lodge#5