Skip to content

fix(deps): update non-major dependencies - #3

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/non-major-dependencies
Open

fix(deps): update non-major dependencies#3
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/non-major-dependencies

Conversation

@renovate

@renovate renovate Bot commented Aug 17, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence Type Update Pending
@hono/node-server ^1.19.14^1.19.17 age confidence dependencies patch
@types/node (source) 22.19.1722.20.1 age confidence devDependencies minor
hono (source) ^4.12.19^4.13.1 age confidence dependencies minor 4.13.3 (+1)
node 2020.20.2 age confidence uses-with minor
tsx (source) ^4.22.2^4.23.11 age confidence devDependencies minor 4.23.12

Release Notes

honojs/node-server (@​hono/node-server)

v1.19.17

Compare Source

v1.19.15

Compare Source

honojs/hono (hono)

v4.13.1

Compare Source

v4.13.0

Compare Source

Hono v4.13.0 is now available!

The highlight of this release is performance: a batch of low-level optimizations makes the core request/response path significantly faster — up to 1.25x on common routes in our benchmark. This release also adds first-class support for the HTTP QUERY method, defined in RFC 10008, a new Method Not Allowed middleware, and more.

Performance improvements

This release includes a series of small optimizations: skipping unnecessary Headers allocations, replacing regex tests with indexOf, allocating internal state lazily, and more.

Here is benchmarks/fetch comparing v4.12 and v4.13 (ROUNDS=5 ./compare.sh, Bun 1.4.0, Apple Silicon — each measurement runs in a fresh process, and the variant order is reversed every round to avoid warm-up bias):

Benchmark v4.12 v4.13 Speedup
pingGET / 165.83 ns 163.99 ns 1.01x
queryGET /id/1?name=bun 674.40 ns 616.99 ns 1.09x
jsonGET /user 528.99 ns 422.44 ns 1.25x
bodyPOST /json 1.16 µs 1.00 µs 1.15x

The individual changes:

  • perf(context): iterate the header record with for..in #​5118
  • perf(url): replace regex tests with indexOf #​5121
  • perf(context): skip Headers creation when there are no headers to merge #​5122
  • perf(urls): refactor tryDecodeURIComponent #​5158
  • perf(request): allocate #validatedData lazily #​5175
  • perf(request): probe the body cache without allocating #​5176

In addition, the RegExpRouter rewrite described below makes route registration plus the first match roughly 20% faster.

Thanks @​kibertoad for the contributions!

First-class QUERY method support

The QUERY method — a safe, idempotent method that carries a request body — is now a first-class citizen in Hono. You can define QUERY handlers with app.query():

const app = new Hono()

app.query('/search', async (c) => {
  const conditions = await c.req.json()
  return c.json(await search(conditions))
})

Thanks @​shellhaki!

QUERY support across built-in middleware

The built-in middleware has been updated to handle QUERY requests properly:

Cache Middleware

The Cache Middleware now caches QUERY responses. Following RFC 10008 Section 2.7, the cache key incorporates a SHA-256 digest of the request content and its representation metadata, so different query bodies are cached separately:

app.query(
  '/search',
  cache({
    cacheName: 'search-cache',
    cacheControl: 'max-age=3600',
  })
)

Note: To support this, the internal cache key format has changed for all methods, including GET. Cached entries are now stored under an internal URL of the form /.hono/cache?__hono_cache_key=.... If you purge cache entries by URL outside of the middleware (e.g. calling caches.delete() with the original request URL), you will need to update that logic. Existing cache entries stored with the old format will simply be re-fetched.

ETag Middleware

The ETag Middleware now handles conditional requests for QUERY, returning 304 Not Modified when If-None-Match matches.

CORS Middleware

The CORS Middleware now includes QUERY in the default Access-Control-Allow-Methods, which is now GET, HEAD, PUT, POST, DELETE, PATCH, QUERY. If you specify allowMethods explicitly, nothing changes for you.

Thanks @​usualoma and @​Cherry!

Method Not Allowed Middleware

The new Method Not Allowed Middleware returns a 405 Method Not Allowed response with a proper Allow header when the request path matches a registered route but the method does not:

import { methodNotAllowed } from 'hono/method-not-allowed'

const app = new Hono()

app.use(methodNotAllowed({ app }))

app.get('/hello', (c) => c.text('Hello!'))
app.post('/hello', (c) => c.text('Posted!'))

// PUT /hello -> 405 Method Not Allowed
// Allow: GET, HEAD, POST

You can customize the response with the onMethodNotAllowed option:

app.use(
  methodNotAllowed({
    app,
    onMethodNotAllowed: (c, methods) =>
      c.json({ error: 'Method Not Allowed' }, 405, { Allow: methods.join(', ') }),
  })
)

Thanks @​usualoma!

RegExpRouter throws UnsupportedPathError at registration time

The RegExpRouter now detects unsupported path combinations when routes are registered, instead of at the first matching request. This means misconfigured routes fail fast at startup rather than at runtime. As a bonus, registration plus the first match is roughly 20% faster.

Thanks @​usualoma!

Other improvements

  • hono/utils/headers has been synced with the IANA HTTP Field Name Registry, adding newly registered fields such as Accept-Query. Thanks @​akahoshi1421!
  • The JWT and JWK middleware now accept a realm option for the WWW-Authenticate challenge on 401 responses, and challenge values are properly escaped. Thanks @​arhxam!
  • JSX: useRef and RefObject are now aligned with React 19. Note that this is a type-level change — RefObject<T> is now { current: T }, so type a nullable ref as RefObject<T | null>, and pass useRef(undefined) instead of useRef(). Thanks @​ashunar0!
  • JSX: a function component can now return an array of children without throwing during server-side rendering. Thanks @​natsuki-engr!
  • The Compress Middleware now sets Vary: Accept-Encoding on negotiated responses. Thanks @​arhxam!

All changes

Full Changelog: honojs/hono@v4.12.34...v4.13.0

Thank you to all contributors!

v4.12.34

Compare Source

v4.12.33

Compare Source

What's Changed

  • fix(cookie): relax name validation when parsing Cookie header in #​5164
  • chore: bump @hono/node-server in #​5167
  • fix(jsx): handle useSyncExternalStore subscription and snapshot changes in #​5166
  • chore: remove undici in favor of global fetch in #​5168

Full Changelog: honojs/hono@v4.12.32...v4.12.33

v4.12.32

Compare Source

What's Changed

  • ci: enable reports for type & bundle size check in #​5148
  • fix(aws-lambda): add jwt and lambda authorizer types for API Gateway v2 in #​5142
  • fix(sse): emit empty id field to reset Last-Event-ID in #​5138
  • test(cloudflare-workers): add coverage for onClose, onError, send, and close in Cloudflare Workers websocket adapter in #​5145
  • fix: use Object.create(null) when parsing query, headers, and params in #​5161
  • fix(secure-headers): keep CSP callbacks scoped to their header in #​5147

Full Changelog: honojs/hono@v4.12.31...v4.12.32

v4.12.31

Compare Source

v4.12.30

Compare Source

What's Changed

  • chore(benchmark/routers): bump deps in #​5107
  • chore(benchmark): remove not used benchmarks in #​5108
  • chore: update to ts6 in prep for ts7 in #​5104
  • fix(cache): deduplicate Cache-Control directives case-insensitively in #​5025
  • fix(compress): do not compress 206 Partial Content responses in #​5020
  • fix(client): replaceUrlParam should not match a param that prefixes another in #​5096
  • fix(method-override): set duplex when forwarding a stream body in query mode in #​5110

Full Changelog: honojs/hono@v4.12.29...v4.12.30

v4.12.29

Compare Source

What's Changed

New Contributors

Full Changelog: honojs/hono@v4.12.28...v4.12.29

v4.12.28

Compare Source

What's Changed

New Contributors

Full Changelog: honojs/hono@v4.12.27...v4.12.28

actions/node-versions (node)

v20.20.2: 20.20.2

Compare Source

Node.js 20.20.2

v20.20.1: 20.20.1

Compare Source

Node.js 20.20.1

v20.20.0: 20.20.0

Compare Source

Node.js 20.20.0

v20.19.6: 20.19.6

Compare Source

Node.js 20.19.6

v20.19.5: 20.19.5

Compare Source

Node.js 20.19.5

v20.19.4: 20.19.4

Compare Source

Node.js 20.19.4

v20.19.3: 20.19.3

Compare Source

Node.js 20.19.3

v20.19.2: 20.19.2

Compare Source

Node.js 20.19.2

v20.19.1: 20.19.1

Compare Source

Node.js 20.19.1

v20.19.0: 20.19.0

Compare Source

Node.js 20.19.0

v20.18.3: 20.18.3

Compare Source

Node.js 20.18.3

v20.18.2: 20.18.2

Compare Source

Node.js 20.18.2

v20.18.1: 20.18.1

Compare Source

Node.js 20.18.1

v20.18.0: 20.18.0

Compare Source

Node.js 20.18.0

v20.17.0: 20.17.0

Compare Source

Node.js 20.17.0

v20.16.0: 20.16.0

Compare Source

Node.js 20.16.0

v20.15.1: 20.15.1

Compare Source

Node.js 20.15.1

v20.15.0: 20.15.0

Compare Source

Node.js 20.15.0

v20.14.0: 20.14.0

Compare Source

Node.js 20.14.0

v20.13.1: 20.13.1

Compare Source

Node.js 20.13.1

v20.13.0: 20.13.0

Compare Source

Node.js 20.13.0

v20.12.2: 20.12.2

Compare Source

Node.js 20.12.2

v20.12.1: 20.12.1

Compare Source

Node.js 20.12.1

v20.12.0: 20.12.0

Compare Source

Node.js 20.12.0

v20.11.1: 20.11.1

Compare Source

Node.js 20.11.1

v20.11.0: 20.11.0

Compare Source

Node.js 20.11.0

v20.10.0: 20.10.0

Compare Source

Node.js 20.10.0

v20.9.0: 20.9.0

Compare Source

Node.js 20.9.0

v20.8.1: 20.8.1

Compare Source

Node.js 20.8.1

v20.8.0: 20.8.0

Compare Source

Node.js 20.8.0

v20.7.0: 20.7.0

Compare Source

Node.js 20.7.0

v20.6.1: 20.6.1

Compare Source

Node.js 20.6.1

v20.6.0: 20.6.0

Compare Source

Node.js 20.6.0

v20.5.1: 20.5.1

Compare Source

Node.js 20.5.1

v20.5.0: 20.5.0

Compare Source

Node.js 20.5.0

v20.4.0: 20.4.0

Compare Source

Node.js 20.4.0

v20.3.1: 20.3.1

Compare Source

Node.js 20.3.1

v20.3.0: 20.3.0

Compare Source

Node.js 20.3.0

v20.2.0: 20.2.0

Compare Source

Node.js 20.2.0

v20.1.0: 20.1.0

Compare Source

Node.js 20.1.0

privatenumber/tsx (tsx)

v4.23.11

Compare Source

v4.23.10

Compare Source

Bug Fixes

This release is also available on:

v4.23.9

Compare Source

Bug Fixes
  • map Node test locations (2f55884)
  • support data URLs in tsImport (b94f46f)

This release is also available on:

v4.23.8

Compare Source

Bug Fixes
  • preserve package subpath resolution (be1315e)
  • preserve typeless ESM dependency exports (70dfc5e)

This release is also available on:

v4.23.7

Compare Source

Bug Fixes
  • prevent tsImport cache collisions (4e5a138)

This release is also available on:

v4.23.6

Compare Source

v4.23.5

Compare Source

v4.23.4

Compare Source

Bug Fixes
  • cli: allow async process.once() signal handlers to finish (#​827) (2afc7bb)

This release is also available on:

v4.23.3

Compare Source

Bug Fixes

This release is also available on:

v4.23.2

Compare Source

v4.23.1

Compare Source

Bug Fixes
  • support tsImport after global preload (8d4ffc2)
  • watch: avoid clearing piped output (95d0672)
  • watch: treat script and dependency paths literally (79fddde)
Performance Improvements
  • index transform cache lazily (e818ad6)
  • load esbuild lazily in CLI (d067938)
  • map Node TypeScript formats directly (cdcc623)
  • use sync module hooks on Node v22.22.3+ (f8992f1)

This release is also available on:

v4.23.0

Compare Source

Bug Fixes
Features

This release is also available on:

v4.22.5

Compare Source

Bug Fixes
  • isolate hook state per async module.register() registration (a305f36)

This release is also available on:

v4.22.4

Compare Source

Bug Fixes
  • resolve CommonJS directory requires inside dependencies (#​803) (1ce8463)

This release is also available on:

v4.22.3

Compare Source

Bug Fixes
  • decode typed loader source (dce02fc)
  • preserve entrypoint with TypeScript preload hooks (68f72f3)

This release is also available on:


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 12:00 on Monday"
  • 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 force-pushed the renovate/non-major-dependencies branch from 1920853 to 8ea50f2 Compare August 22, 2026 04:09
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.

0 participants