Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jan 5, 2026

This PR contains the following updates:

Package Change Age Confidence
@iconify-json/lucide ^1.2.82^1.2.84 age confidence
@iconify-json/simple-icons ^1.2.64^1.2.66 age confidence
@iconify-json/vscode-icons ^1.2.37^1.2.38 age confidence
@nuxt/content (source) ^3.9.0^3.10.0 age confidence
@nuxt/test-utils ^3.21.0^3.23.0 age confidence
@unhead/vue (source) ^2.1.1^2.1.2 age confidence
better-sqlite3 ^12.5.0^12.6.0 age confidence
happy-dom ^20.0.11^20.1.0 age confidence
motion-v ^1.7.3^1.8.1 age confidence
pnpm (source) 10.26.210.28.0 age confidence
release-it ^19.2.2^19.2.3 age confidence
ufo ^1.6.1^1.6.2 age confidence
wrangler (source) ^4.56.0^4.58.0 age confidence
zod (source) ^4.2.1^4.3.5 age confidence

Release Notes

nuxt/content (@​nuxt/content)

v3.10.0

Compare Source

Features
Bug Fixes
  • database: sqlite memory driver syntax (#​3635) (9b4b4f2)
  • docs: prerendering issues (b8c5225)
  • lint: configs (1ef7768)
  • lint: unique headings (c5cc00c)
  • module: work with route rules cache: true (#​3617) (fa6c267)
  • nuxthub: inherit preset form node/cloudflare (551a7fb)
  • parser: do not extract content title & description from body on data collections (4f4e958)
  • path-meta: apply path meta fields if they exists in schema (#​3632) (b3d7464)
nuxt/test-utils (@​nuxt/test-utils)

v3.23.0

Compare Source

3.23.0 is the next minor release.

👉 Changelog

compare changes

🚀 Enhancements
  • runtime-utils: Support h3 v2 (#​1515)
  • module: Add install wizard when freshly installed (#​1538)
🩹 Fixes
  • e2e: Ensure $fetch is not typed as any (1f4754ea9)
🏡 Chore
✅ Tests
  • Add cleanup to resolve-config tests (#​1537)
🤖 CI
  • Prepare build environment in autofix workflow (2c0864ed6)
❤️ Contributors

v3.22.0

Compare Source

3.22.0 is the next minor release.

👉 Changelog

compare changes

🚀 Enhancements
  • runtime-utils: Unify logic of mount + render helpers (#​1522)
  • module: Run vitest in separate process (#​1524)
  • runtime-utils: Allow skipping initial route change (fd77ec066)
  • runtime: Skip route sync emulation when NuxtPage exists (#​1530)
🔥 Performance
  • module: Skip nuxt-root stub plugin when building (#​1512)
🩹 Fixes
  • runtime-utils: Reject promise on error render + mount helpers (#​1503)
  • runtime-utils: Support new .sync method for syncing route (1148c3cf1)
  • e2e: Always override global env options with inline options (c8f881b3d)
  • runtime-utils: Avoid missing render warn on reject render + suspend helpers (#​1520)
  • e2e: Use server.deps rather than deps (2b3c86921)
  • config: Also call sync() in initial setup (ec555192c)
  • module: Use devtools:before hook instead of direct config check (#​1532)
  • config: Do not override vitest root with nuxt rootDir (#​1531)
💅 Refactors
  • runtime-utils: Do not export addCleanup (86b4998bb)
  • module: Extract nuxt environment options plugin (5ada22a9f)
📖 Documentation
  • Fix link to module authors testing guide (#​1511)
🏡 Chore
✅ Tests
  • Use local kit version for module (79f1e14d5)
  • Add defaultLocale in i18n test (059988fc3)
  • Avoid definePageMeta compiler-hint warning (#​1523)
🤖 CI
❤️ Contributors
unjs/unhead (@​unhead/vue)

v2.1.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub
WiseLibs/better-sqlite3 (better-sqlite3)

v12.6.0

Compare Source

What's Changed

  • Update SQLite to version 3.51.2 in #​1436

Full Changelog: WiseLibs/better-sqlite3@v12.5.0...v12.6.0

capricorn86/happy-dom (happy-dom)

v20.1.0

Compare Source

🎨 Features
👷‍♂️ Patch fixes
motiondivision/motion-vue (motion-v)

v1.8.1

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v1.8.0

Compare Source

   🚀 Features
  • Reorder: Support for auto-scrolling when a Reorder.Item reaches the edges of its parent scrollable container  -  by @​rick-hup (1d679)
   🐞 Bug Fixes
    View changes on GitHub

v1.7.6

Compare Source

   🐞 Bug Fixes
  • AnimatePresence: Apply popLayout styles to direct child element instead of motion element  -  by @​rick-hup (81154)
    View changes on GitHub

v1.7.5

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v1.7.4

Compare Source

   🐞 Bug Fixes
    View changes on GitHub
pnpm/pnpm (pnpm)

v10.28.0

Compare Source

v10.27.0

Compare Source

release-it/release-it (release-it)

v19.2.3

Compare Source

  • Reuse generated changelog (316dbfa)
  • Remove obsolete eslint compat packages/config (f6cc8f3)
  • Update remark-preset-webpro and fix broken links (6e6dd4b)
unjs/ufo (ufo)

v1.6.2

Compare Source

compare changes

🩹 Fixes
  • Fix parsePath return type (#​293)
📖 Documentation
  • Add more examples in jsdoc (#​291)
📦 Build
  • Fix exports condition order to prefer esm with default fallback (8457581)
🏡 Chore
❤️ Contributors
cloudflare/workers-sdk (wrangler)

v4.58.0

Compare Source

Minor Changes
  • #​11728 7d63fa5 Thanks @​NuroDev! - Add command categories to wrangler help menu

    The help output now groups commands by product category (Account, Compute & AI, Storage & Databases, Networking & Security) to match the Cloudflare dashboard organization:

    $ wrangler --help
    
    COMMANDS
      wrangler docs [search..]  📚 Open Wrangler's command documentation in your browser
    
    ACCOUNT
      wrangler auth    🔓 Manage authentication
      wrangler login   🔑 Login to Cloudflare
      ...
    
    COMPUTE & AI
      wrangler ai          🤖 Manage AI models
      wrangler containers  📦 Manage Containers [open beta]
      ...
    

    This improves discoverability by organizing the 20+ wrangler commands into logical groups.

Patch Changes
  • #​11822 97e67b9 Thanks @​dependabot! - chore: update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    workerd 1.20260103.0 1.20260107.1
  • Updated dependencies [97e67b9]:

    • miniflare@​4.20260107.0

v4.57.0

Compare Source

Minor Changes
  • #​11682 b993d95 Thanks @​ascorbic! - Add wrangler auth token command to retrieve your current authentication credentials.

    You can now retrieve your authentication token for use with other tools and scripts:

    wrangler auth token

    The command returns whichever authentication method is currently configured:

    • OAuth token from wrangler login (automatically refreshed if expired)
    • API token from CLOUDFLARE_API_TOKEN environment variable

    Use --json to get structured output including the token type, which also supports API key/email authentication:

    wrangler auth token --json

    This is similar to gh auth token in the GitHub CLI.

  • #​11702 f612b46 Thanks @​gpanders! - Add support for trusted_user_ca_keys in Wrangler

    You can now configure SSH trusted user CA keys for containers. Add the following to your wrangler.toml:

    [[containers.trusted_user_ca_keys]]
    public_key = "ssh-ed25519 AAAAC3..."

    This allows you to specify CA public keys that can be used to verify SSH user certificates.

  • #​11437 9e360f6 Thanks @​ichernetsky-cf! - Drop deprecated containers observability.logging field

  • #​11616 fc95831 Thanks @​NuroDev! - Add type generation support to wrangler dev

    You can now have your worker configuration types be automatically generated when the local Wrangler development server starts.

    To use it you can either:

    1. Add the --types flag when running wrangler dev.
    2. Update your Wrangler configuration file to add the new dev.generate_types boolean property.
    {
    	"$schema": "node_modules/wrangler/config-schema.json",
    	"name": "example",
    	"main": "src/index.ts",
    	"compatibility_date": "2025-12-12",
    	"dev": {
    		"generate_types": true
    	}
    }
  • #​11524 b0dbf1a Thanks @​penalosa! - Add hidden CLI flags to wrangler setup for suppressing output

    Two new hidden flags have been added to wrangler setup:

    • --no-completion-message: Suppresses the deployment details message after setup completes
    • --no-install-wrangler: Skips Wrangler installation during project setup
  • #​11777 69979a3 Thanks @​MattieTK! - Add analytics properties to secret commands for better usage insights

    Secret commands (wrangler secret put, wrangler secret bulk, and their Pages/versions equivalents) now include additional analytics properties to help understand how secrets are being managed:

    • secretOperation: Whether this is a "single" or "bulk" secret operation
    • secretSource: How the secret was provided ("interactive", "stdin", or "file")
    • secretFormat: For bulk operations, the format used ("json" or "dotenv")
    • hasEnvironment: Whether an environment was specified

    These properties help improve the developer experience by understanding common usage patterns. No sensitive information (secret names, values, or counts) is tracked.

  • #​11738 c54f8da Thanks @​jamesopstad! - Add default Text module rule for .sql files.

    This enables importing .sql files directly in Wrangler and the Cloudflare Vite plugin without extra configuration.

  • #​11692 df1f9c9 Thanks @​dario-piotrowicz! - Support Waku in autoconfig

  • #​11549 d059f69 Thanks @​dario-piotrowicz! - Support Vike in autoconfig

Patch Changes
  • #​11683 02fbd22 Thanks @​ascorbic! - Display a warning when authentication errors occur and the account_id in your Wrangler configuration does not match any of your authenticated accounts. This helps identify configuration issues where you may have the wrong account ID set in your wrangler.toml or wrangler.jsonc file.

  • #​11704 77078ef Thanks @​dario-piotrowicz! - Fix autoconfig handling of Next.js apps with CJS config files and incompatible Next.js versions

    Previously, wrangler setup and wrangler deploy --x-autoconfig would fail when working with Next.js applications that use CommonJS config files (next.config.cjs) or have versions of Next.js that don't match the required peer dependencies. The autoconfig process now uses dynamic imports and forced installation to handle these scenarios gracefully.

  • #​11796 2510723 Thanks @​dario-piotrowicz! - wrangler deploy delegates to opennextjs-cloudflare deploy only when the --x-autoconfig flag is used

    The wrangler deploy command has been updated to delegate to the opennextjs-cloudflare deploy command when run in an open-next project. Once this behavior had been introduced it caused a few issues. So it's been decided to enable it for the time being only when the --x-autoconfig flag is set (since this behavior, although generally valid, is only strictly necessary for the wrangler deploy's autoconfig flow).

  • #​11764 9f6dd71 Thanks @​terakoya76! - Fix R2 Data Catalog snapshot-expiration API field names

    The wrangler r2 bucket catalog snapshot-expiration enable command was sending incorrect field names
    to the Cloudflare API, resulting in a 422 Unprocessable Entity error. This fix updates the API request
    body to use the correct field names:

    • olderThanDays -> max_snapshot_age (as duration string, e.g., "30d")
    • retainLast -> min_snapshots_to_keep

    The CLI options (--older-than-days and --retain-last) remain unchanged.

  • #​11651 d123ad0 Thanks @​dario-piotrowicz! - Surface a more helpful error message for TOML Date, Date-Time, and Time values in vars

    TOML parses unquoted date/time values like DATE = 2024-01-01 as objects. Previously this would cause an unhelpful error message further down the stack. Now wrangler surfaces a more helpful error message earlier, telling you to quote the value as a string, e.g. DATE = "2024-01-01".

  • #​11711 5121b23 Thanks @​southpolesteve! - Show an error when D1 migration commands are run without a configuration file

    Previously, running wrangler d1 migrations apply, wrangler d1 migrations list, or wrangler d1 migrations create in a directory without a Wrangler configuration file would silently exit with no feedback. Now these commands display a clear error message:

    "No configuration file found. Create a wrangler.jsonc file to define your D1 database."

  • #​11710 82e7e90 Thanks @​dario-piotrowicz! - Fix arguments passed to wrangler deploy not being forwarded to opennextjs-cloudflare deploy

    wrangler deploy run in an open-next project delegates to opennextjs-cloudflare deploy, as part of this all the arguments passed to wrangler deploy need be forwarded to opennextjs-cloudflare deploy, before the arguments would be lost, now they will be successfully forwarded (for example wrangler deploy --keep-vars will call opennextjs-cloudflare deploy --keep-vars)

  • #​10750 4688f59 Thanks @​jacoblearned! - Notify user on local dev server reload.

    When running wrangler dev, the local server suppresses Miniflare's reload messages to prevent duplicate log entries from the proxy and user workers. This update adds a reload complete message so users know their changes were applied, instead of only seeing "Reloading local server...".

  • #​11673 b827893 Thanks @​MattieTK! - Breaks out version numbers into sortable number types for analytics logging

  • Updated dependencies [65d1850, 1615fce, b2769bf, 554a4df, 8eede3f, 6a05b1c, 62fd118, a7e9f80, eac5cf7]:

colinhacks/zod (zod)

v4.3.5

Compare Source

Commits:

v4.3.4

Compare Source

Commits:

v4.3.3

Compare Source

v4.3.2

Compare Source

v4.3.1

Compare Source

Commits:

  • 0fe8840 allow non-overwriting extends with refinements. 4.3.1

v4.3.0

Compare Source

This is Zod's biggest release since 4.0. It addresses several of Zod's longest-standing feature requests.

z.fromJSONSchema()

Convert JSON Schema to Zod (#​5534, #​5586)

You can now convert JSON Schema definitions directly into Zod schemas. This function supports JSON Schema "draft-2020-12", "draft-7", "draft-4", and OpenAPI 3.0.

import * as z from "zod";

const schema = z.fromJSONSchema({
  type: "object",
  properties: {
    name: { type: "string", minLength: 1 },
    age: { type: "integer", minimum: 0 },
  },
  required: ["name"],
});

schema.parse({ name: "Alice", age: 30 }); // ✅

The API should be considered experimental. There are no guarantees of 1:1 "round-trip soundness": MySchema > z.toJSONSchema() > z.fromJSONSchema(). There are several features of Zod that don't exist in JSON Schema and vice versa, which makes this virtually impossible.

Features supported:

  • All primitive types (string, number, integer, boolean, null, object, array)
  • String formats (email, uri, uuid, date-time, date, time, ipv4, ipv6, and more)
  • Composition (anyOf, oneOf, allOf)
  • Object constraints (additionalProperties, patternProperties, propertyNames)
  • Array constraints (prefixItems, items, minItems, maxItems)
  • $ref for local references and circular schemas
  • Custom metadata is preserved

z.xor() — exclusive union (#​5534)

A new exclusive union type that requires exactly one option to match. Unlike z.union() which passes if any option matches, z.xor() fails if zero or more than one option matches.

const schema = z.xor([z.string(), z.number()]);

schema.parse("hello"); // ✅
schema.parse(42);      // ✅
schema.parse(true);    // ❌ zero matches

When converted to JSON Schema, z.xor() produces oneOf instead of anyOf.

z.looseRecord() — partial record validation (#​5534)

A new record variant that only validates keys matching the key schema, passing through non-matching keys unchanged. This is used to represent patternProperties in JSON Schema.

const schema = z.looseRecord(z.string().regex(/^S_/), z.string());

schema.parse({ S_name: "John", other: 123 });
// ✅ { S_name: "John", other: 123 }
// only S_name is validated, "other" passes through

.exactOptional() — strict optional properties (#​5589)

A new wrapper that makes a property key-optional (can be omitted) but does not accept undefined as an explicit value.

const schema = z.object({
  a: z.string().optional(),      // accepts `undefined`
  b: z.string().exactOptional(), // does not accept `undefined`
});

schema.parse({});                  // ✅
schema.parse({ a: undefined });    // ✅
schema.parse({ b: undefined });    // ❌

This makes it possible to accurately represent the full spectrum of optionality expressible using exactOptionalPropertyTypes.

.apply()

A utility method for applying arbitrary transformations to a schema, enabling cleaner schema composition. (#​5463)

const setCommonChecks = <T extends z.ZodNumber>(schema: T) => {
  return schema.min(0).max(100);
};

const schema = z.number().apply(setCommonChecks).nullable();

.brand() cardinality

The .brand() method now accepts a second argument to control whether the brand applies to input, output, or both. Closes #​4764, #​4836.

// output only (default)
z.string().brand<"UserId">();           // output is branded (default)
z.string().brand<"UserId", "out">();    // output is branded
z.string().brand<"UserId", "in">();     // input is branded
z.string().brand<"UserId", "inout">();  // both are branded

Type predicates on .refine() (#​5575)

The .refine() method now supports type predicates to narrow the output type:

const schema = z.string().refine((s): s is "a" => s === "a");

type Input = z.input<typeof schema>;   // string
type Output = z.output<typeof schema>; // "a"

ZodMap methods: min, max, nonempty, size (#​5316)

ZodMap now has parity with ZodSet and ZodArray:

const schema = z.map(z.string(), z.number())
  .min(1)
  .max(10)
  .nonempty();

schema.size; // access the size constraint

.with() alias for .check() (359c0db)

A new .with() method has been added as a more readable alias for .check(). Over time, more APIs have been added that don't qualify as "checks". The new method provides a readable alternative that doesn't muddy semantics.

z.string().with(
  z.minLength(5),
  z.toLowerCase()
);

// equivalent to:
z.string().check(
  z.minLength(5),
  z.trim(),
  z.toLowerCase()
);
z.slugify() transform

Transform strings into URL-friendly slugs. Works great with .with():

// Zod
z.string().slugify().parse("Hello World");           // "hello-world"

// Zod Mini
// using .with() for explicit check composition
z.string().with(z.slugify()).parse("Hello World");   // "hello-world"

z.meta() and z.describe() in Zod Mini (947b4eb)

Zod Mini now exports z.meta() and z.describe() as top-level functions for adding metadata to schemas:

import * as z from "zod/mini";

// add description
const schema = z.string().with(
  z.describe("A user's name"),
);

// add arbitrary metadata
const schema2 = z.number().with(
  z.meta({ deprecated: true })
);

New locales

import * as z from "zod";
import { uz } from "zod/locales";

z.config(uz());






Bug fixes

All of these changes fix soundness issues in Zod. As with any bug fix there's some chance of breakage if you were intentionally or unintentionally relying on this unsound behavior.

⚠️ .pick() and .omit() disallowed on object schemas containing refinements (#​5317)

Using .pick() or .omit() on object schemas with refinements now throws an error. Previously, this would silently drop the refinements, leading to unexpected behavior.

const schema = z.object({
  password: z.string(),
  confirmPassword: z.string(),
}).refine(data => data.password === data.confirmPassword);

schema.pick({ password: true });
// 4.2: refinement silently dropped ⚠️
// 4.3: throws error ❌

Migration: The easiest way to migrate is to create a new schema using the shape of the old one.

const newSchema = z.object(schema.shape).pick({ ... })
⚠️ .extend() disallowed on refined schemas (#​5317)

Similarly, .extend() now throws on schemas with refinements. Use .safeExtend() if you need to extend refined schemas.

const schema = z.object({ a: z.string() }).refine(/* ... */);

// 4.2: refinement silently dropped ⚠️
// 4.3: throws error ✅
schema.extend({ b: z.number() });
// error: object schemas containing refinements cannot be extended. use `.safeExtend()` instead.
⚠️ Stricter object masking methods (#​5581)

Object masking methods (.pick(), .omit()) now validate that the keys provided actually exist in the schema:

const schema = z.object({ a: z.string() });

// 4.3: throws error for unrecognized keys
schema.pick({ nonexistent: true });
// error: unrecognized key: "nonexistent"

Additional changes

  • Fixed JSON Schema generation for z.iso.time with minute precision (#​5557)
  • Fixed error details for tuples with extraneous elements (#​5555)
  • Fixed includes method params typing to accept string | $ZodCheckIncludesParams (#​5556)
  • Fixed numeric formats error messages to be inclusive (#​5485)
  • Fixed implementAsync inferred type to always be a promise (#​5476)
  • Tightened E.164 regex to require a non-zero leading digit and 7–15 digits total (#​5524)
  • Fixed Dutch (nl) error strings (#​5529)
  • Convert Date instances to numbers in minimum/maximum checks (#​5351)
  • Improved numeric keys handling in z.record() (#​5585)
  • Lazy initialization of ~standard schema property (#​5363)
  • Functions marked as @__NO_SIDE_EFFECTS__ for better tree-shaking (#​5475)
  • Improved metadata tracking across child-parent relationships (#​5578)
  • Improved locale translation approach (#​5584)
  • Dropped id uniqueness enforcement at registry level (#​5574)

Configuration

📅 Schedule: Branch creation - "on Monday" (UTC), 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.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from benjamincanac as a code owner January 5, 2026 07:41
@github-actions github-actions bot added the v3 #1289 label Jan 5, 2026
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from 5f7d173 to 0cae74b Compare January 6, 2026 13:41
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from 0cae74b to 617070e Compare January 6, 2026 16:59
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from 617070e to aa5a55a Compare January 6, 2026 22:30
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from aa5a55a to 42e4f18 Compare January 7, 2026 18:46
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from 42e4f18 to a2c21a7 Compare January 8, 2026 10:34
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from a2c21a7 to 78cd22f Compare January 8, 2026 11:47
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from 78cd22f to a690c8a Compare January 10, 2026 02:07
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from a690c8a to abd4268 Compare January 10, 2026 05:59
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from abd4268 to d498f81 Compare January 10, 2026 22:12
@renovate renovate bot force-pushed the renovate/v3-all-minor-patch branch from d498f81 to e02de23 Compare January 11, 2026 06:10
@renovate
Copy link
Contributor Author

renovate bot commented Jan 12, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 12, 2026

npm i https://pkg.pr.new/@nuxt/ui@5816

commit: ef86869

@benjamincanac benjamincanac merged commit c9fb2dc into v3 Jan 12, 2026
9 checks passed
@benjamincanac benjamincanac deleted the renovate/v3-all-minor-patch branch January 12, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v3 #1289

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant