Repository navigation
chore(deps): update dependency hono to v4.13.18 - #117
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
2 times, most recently
from
September 4, 2026 19:22
a625c32 to
e740079
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
September 4, 2026 20:32
e740079 to
196264b
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
September 15, 2026 08:25
196264b to
5333d84
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
September 24, 2026 19:30
5333d84 to
8d5e71c
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
2 times, most recently
from
September 29, 2026 12:36
d2fc4b1 to
4e974f0
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
October 1, 2026 04:24
4e974f0 to
0222cb3
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
2 times, most recently
from
October 4, 2026 04:41
c0fcbf5 to
2acc6d7
Compare
|
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
October 25, 2026 09:00
2acc6d7 to
28b5bd8
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
November 1, 2026 04:50
28b5bd8 to
18be6f7
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
November 7, 2026 10:45
18be6f7 to
7c720de
Compare
renovate
Bot
force-pushed
the
renovate/hono-4.x-lockfile
branch
from
November 11, 2026 09:35
7c720de to
b3d59a7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This PR contains the following updates:
4.12.33→4.13.18Release Notes
honojs/hono (hono)
v4.13.18Compare Source
Security fixes
This release includes fixes for the following security issues:
validator()skips validation for requests whoseContent-Typeparameters are formatted differentlyAffects:
validator('json')andvalidator('form')inhono/validator. AContent-Typewith whitespace before;, a trailing;, or an unusual parameter name was not recognized, so the validator saw an empty object while the handler could read all fields. This completes the fix for GHSA-4h7h-rv7c-7m2v. The validator now decides by the media type alone, asc.req.parseBody()does. GHSA-92p4-j3wq-jmqxbodyLimit()keeps every transfer chunk of a request body in memoryAffects:
bodyLimit()inhono/body-limit. A body sent in very small transfer chunks was retained as one object per chunk, so a request within the configured limit could exhaust memory. The body is now buffered in one array bounded bymaxSize. GHSA-39q9-qp46-w8xgmount()andapp.mount()forward a wrong path when a customgetPathadds a prefixAffects:
mount()inhono/mountandapp.mount()on 4.13.16 and 4.13.17. With agetPaththat prepends a prefix such as the host name, one segment too many was removed from the forwarded path, so middleware scoped inside the mount prefix could be skipped. The prefix is removed from the routed path again. Paths that would change meaning when forwarded now get 400, and an optional regular expression parameter in a mount path throws. GHSA-h25j-2p75-qj33serveStatic()serves a path that was decoded twice whenallowPercentInPathis enabledAffects:
serveStatic()inhono/serve-staticand the runtime adapters, only withallowPercentInPath: true. A malformed percent escape in the request path was decoded a second time, so a path that middleware registered on the encoded form did not see could still reach a static file. The file path must now be the same as the routed path, and otherwise the response is 404. GHSA-74fm-fwc7-3fwpUsers who rely on
validator(),bodyLimit(),mount()with a customgetPath, orserveStatic()withallowPercentInPathare strongly encouraged to upgrade to this version.Full Changelog: honojs/hono@v4.13.17...v4.13.18
v4.13.17Compare Source
What's Changed
__Secure-and__Host-prefixes case-insensitively in #5608setMetricin #5363__Secure-and__Host-prefixes case-insensitively inCookieConstraintin #5611ErrorBoundaryin #5430toSSGruns in #5381Full Changelog: honojs/hono@v4.13.16...v4.13.17
v4.13.16Compare Source
Security fixes
This release includes fixes for the following security issues:
mount()andapp.mount()can forward a path that bypasses middleware scoped inside the mount prefixAffects:
mount()inhono/mountandapp.mount(). A dynamic prefix such as/api/:tenant/*was removed by the length of the route pattern. The forwarded path was also re-normalized by the URL parser, so a decoded\became/and..collapsed. Both let a crafted request skip middleware scoped inside the mount prefix. Routes such as/assets*and duplicate parameter names now throw. GHSA-4m76-xfj5-7975RegExpRouter skips wildcard middleware for certain route patterns and for paths with an encoded line terminator
Affects:
RegExpRouter, including the defaultSmartRouter. Wildcard middleware was not applied in three cases: a parameter written as{[^/]+}in the middleware path only, a/prefix*route next to/prefix/*middleware, and a path with an encoded line terminator. RegExpRouter now covers the same routes as the other routers. Custom patterns that can match the empty string, such as{[0-9]*}, throwUnsupportedPathError. RegeneratePreparedRegExpRouterdata. GHSA-h7mg-cq63-vhpqvalidator('form')skips validation formultipart/form-datarequests with extra parametersAffects:
validator('form')inhono/validator. Amultipart/form-datarequest with an extra parameter such ascharsetwas not recognized as a form. The validator then saw an empty object while the handler could read all fields. GHSA-4h7h-rv7c-7m2vcsshelper does not escape a closing tag assembled from template parts and values, allowing HTML injectionAffects:
cssinhono/css. A</style>split between the template and a value, or between two values, was not escaped. Closing tags are now escaped after minification. GHSA-3gg2-335m-rxc6csrf()does not check requests sent by hyperlink auditing (text/ping)Affects:
csrf()inhono/csrf. A POST sent by Chromium's<a ping>has the content typetext/pingand was not checked againstOriginandSec-Fetch-Site. GHSA-46wx-v44x-9hh2Users who rely on path-scoped middleware with
mount(), wildcard middleware with the default router,validator('form'), thecsshelper with untrusted values, orcsrf()are strongly encouraged to upgrade to this version.What's Changed
critin #5597Full Changelog: honojs/hono@v4.13.15...v4.13.16
v4.13.15Compare Source
What's Changed
c.header()after the response body is consumed by @yusukebe in #5587Full Changelog: honojs/hono@v4.13.14...v4.13.15
v4.13.14Compare Source
What's Changed
honopeer range #5537d.ts#5557getPathwhenstrictisfalse#5563Full Changelog: honojs/hono@v4.13.13...v4.13.14
v4.13.13Compare Source
Mount Middleware
app.mount()is now available as the Mount Middleware,hono/mount. It is just a handler, so you register it withapp.all():app.mount()still works in v4 but is deprecated and will be removed in v5. Migrating is a one-line change:What's Changed
app.mountin #5221Full Changelog: honojs/hono@v4.13.12...v4.13.13
v4.13.12Compare Source
What's Changed
Full Changelog: honojs/hono@v4.13.11...v4.13.12
v4.13.11Compare Source
Security fixes
serveStaticdecodes the request path a second time, leading to bypass of middleware on static pathsAffects:
hono/serve-staticand the adapters built on it (hono/bun,hono/deno,hono/cloudflare-workers,@hono/bun,@hono/deno,@hono/cloudflare-workers). FixesserveStaticdecoding an already-decoded path, where a crafted request could be routed as one path and served as another, skipping middleware mounted on a static prefix. GHSA-5r4p-p66f-jhc7serveStaticnow rejects request paths that still contain%after decoding. To serve files whose names contain a literal%, setallowPercentInPath: true.The same fix ships in
@hono/node-serverv2.1.3.v4.13.10Compare Source
Adapters are now separate packages
The runtime adapters are now published as their own packages:
@hono/bun,@hono/deno,@hono/cloudflare-workers,@hono/aws-lambda,@hono/lambda-edge,@hono/netlify,@hono/vercel, and@hono/service-worker.@hono/denois also on JSR.hono/<adapter>still works in v4 but is deprecated and will be removed in v5. Migrating is an import change:hono/cloudflare-pages is deprecated without a replacement package; Cloudflare recommends Workers with static assets.
What's Changed
cr.ymlby the pnpm migration in #54561.0.0-rc.1in #5459adapters/*in #5466Full Changelog: honojs/hono@v4.13.9...v4.13.10
v4.13.9Compare Source
What's Changed
Full Changelog: honojs/hono@v4.13.8...v4.13.9
v4.13.8Compare Source
What's Changed
Full Changelog: honojs/hono@v4.13.7...v4.13.8
v4.13.7Compare Source
Security fixes
This release includes a fix for the following security issue:
hono/jsxrenders plain strings unescaped in boundary components, leading to XSSAffects:
Suspense,ErrorBoundary, andContext.Providerinhono/jsx, andrenderToString()/renderToReadableStream()inhono/jsx/dom/server. Fixes missing HTML escaping for a plain string placed directly as a child orfallbackof these components, or as the root value of the server rendering functions, so untrusted strings could be emitted as markup. GHSA-hxh3-vqpv-xpqvUsers who render untrusted strings inside
Suspense,ErrorBoundary, orContext.Provider, or pass them directly tohono/jsx/dom/server, are strongly encouraged to upgrade to this version.v4.13.6Compare Source
What's Changed
editorconfig-checkerin #5336Full Changelog: honojs/hono@v4.13.5...v4.13.6
v4.13.5Compare Source
Security fixes
This release includes fixes for the following security issues:
Query parser reads parameters after the URL fragment, causing cache-key and proxy interpretation differentials
Affects: Cache Middleware and applications behind a proxy, WAF, or logging layer that inspects query strings. Fixes query parsing that did not stop at the URL fragment, so a
?after a#was treated as the start of a query string and the application could read parameters that the other component never saw. GHSA-crvj-82cr-hjcxIncomplete fix for CVE-2026-39408:
toSSG()still writes files outside the output directoryAffects:
toSSG()for Static Site Generation. Fixes a path normalization gap where consecutive parent-directory segments inssgParamsvalues were not fully collapsed, bypassing the containment check added in 4.12.12. GHSA-gqvv-2mrq-wpjvUnbounded dot-notation nesting in
parseBody()can cause memory exhaustionAffects:
parseBody()when dot-notation parsing is enabled. Fixes unbounded expansion of dot-separated field names, where a small request body could allocate a disproportionately large object graph and concurrent requests could exhaust the heap. GHSA-g6gw-c38x-mqfcUsers who use Cache Middleware, deploy behind a proxy or WAF that inspects query strings, use Static Site Generation, or use
parseBody({ dot: true })are strongly encouraged to upgrade to this version.v4.13.4Compare Source
What's Changed
Full Changelog: honojs/hono@v4.13.3...v4.13.4
v4.13.3Compare Source
What's Changed
Full Changelog: honojs/hono@v4.13.2...v4.13.3
v4.13.2Compare Source
What's Changed
Full Changelog: honojs/hono@v4.13.1...v4.13.2
v4.13.1Compare Source
What's Changed
New Contributors
Full Changelog: honojs/hono@v4.13.0...v4.13.1
v4.13.0Compare 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
Headersallocations, replacing regex tests withindexOf, allocating internal state lazily, and more.Here is
benchmarks/fetchcomparing 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):ping—GET /query—GET /id/1?name=bunjson—GET /userbody—POST /jsonThe individual changes:
for..in#5118indexOf#5121Headerscreation when there are no headers to merge #5122tryDecodeURIComponent#5158#validatedDatalazily #5175In 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():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:
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. callingcaches.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 ModifiedwhenIf-None-Matchmatches.CORS Middleware
The CORS Middleware now includes QUERY in the default
Access-Control-Allow-Methods, which is nowGET, HEAD, PUT, POST, DELETE, PATCH, QUERY. If you specifyallowMethodsexplicitly, nothing changes for you.Thanks @usualoma and @Cherry!
Method Not Allowed Middleware
The new Method Not Allowed Middleware returns a
405 Method Not Allowedresponse with a properAllowheader when the request path matches a registered route but the method does not:You can customize the response with the
onMethodNotAllowedoption:Thanks @usualoma!
RegExpRouter throws
UnsupportedPathErrorat registration timeThe 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/headershas been synced with the IANA HTTP Field Name Registry, adding newly registered fields such asAccept-Query. Thanks @akahoshi1421!realmoption for theWWW-Authenticatechallenge on401responses, and challenge values are properly escaped. Thanks @arhxam!useRefandRefObjectare now aligned with React 19. Note that this is a type-level change —RefObject<T>is now{ current: T }, so type a nullable ref asRefObject<T | null>, and passuseRef(undefined)instead ofuseRef(). Thanks @ashunar0!Vary: Accept-Encodingon negotiated responses. Thanks @arhxam!All changes
fetchby @yusukebe in #5113indexOfby @yusukebe in #5121tryDecodeURIComponentby @yusukebe in #5158envfield initializer by @kibertoad in #5174#validatedDatalazily by @kibertoad in #5175fetchby @yusukebe in #5184envfield initializer by @yusukebe in #5186Full Changelog: honojs/hono@v4.12.34...v4.13.0
Thank you to all contributors!
v4.12.34Compare Source
Security fixes
This release includes fixes for the following security issues:
memo()retains SSR output across requests, leading to cross-user data disclosureAffects:
hono/jsx(server-side rendering). Fixesmemo()reusing a retained render result across requests when props compare equal, where a component reading request-scoped values from ambient context —useContext(),useRequestContext(), orgetContext()— could serve HTML rendered for another user's request, disclosing account data or request-scoped secrets such as CSRF tokens. GHSA-f23p-vx2j-j53rReDoS in CORS middleware via
Access-Control-Request-HeadersAffects:
hono/cors. Fixes a whitespace-tolerant regular expression with quadratic backtracking used to parse theAccess-Control-Request-Headerspreflight header whenallowHeadersis not configured (the default), where a single preflight request carrying a long whitespace run could consume seconds of CPU and stall request processing. GHSA-8j4g-w8fx-2239Algorithmic complexity DoS in Language Middleware
Affects:
hono/language. Fixes quadratic string processing in language-tag normalization, where a crafted language tag with a large number of hyphen-separated subtags — supplied via a query parameter, cookie, orAccept-Languageheader — could cause excessive CPU consumption and block the event loop. GHSA-54fx-42gc-7vw4Proxy Helper does not remove response headers listed in the
ConnectionheaderAffects:
hono/proxy. Fixesproxy()forwarding response headers that the origin'sConnectionheader designates as connection-scoped, where headers intended only for the immediate peer — per RFC 9110 Section 7.6.1 — could be exposed to clients, disclosing connection-scoped or internal metadata. GHSA-79qm-7rj5-m7r9Users who use
hono/jsxfor server-side rendering,hono/cors,hono/language, orhono/proxyare strongly encouraged to upgrade to this version.Configuration
📅 Schedule: (UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.