chore(deps): update node dependencies (major)#794
Open
loopingz wants to merge 1 commit into
Open
Conversation
0b6bd93 to
c829663
Compare
76ee0f8 to
40b9404
Compare
cba0ef3 to
d710f61
Compare
ac290e4 to
d9e72ff
Compare
ff751e6 to
e7051e4
Compare
83f7faf to
2ebb81c
Compare
2ebb81c to
a1c45c0
Compare
2bb4d1c to
1601358
Compare
01fe750 to
f435981
Compare
e43e7c9 to
178c3f1
Compare
01393bc to
822d588
Compare
Contributor
Author
|
822d588 to
f1dd6cb
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:
^1.19.5→^2.0.2^1.19.10→^2.0.2^28.0.8→^29.0.2^28.0.3→^29.0.2^0.4.4→^1.0.0^3.7.2→^4.14.1^2.15.0→^3.0.2^24.1.0→^25.7.0^24.1.0→^25.7.0^24.1.0→^25.7.0^24.1.0→^25.7.00.82.1→1.2.0^6.14.0→^8.20.0](https://renovatebot.com/diffs/npm/ajv@>=6.0.0 <6.14.0/6.14.0/8.20.0)^6.2.0→^7.3.0^1.1.12→^5.0.6](https://renovatebot.com/diffs/npm/brace-expansion@>=1.0.0 <2.0.0/1.1.12/5.0.6)^2.0.2→^5.0.6](https://renovatebot.com/diffs/npm/brace-expansion@>=2.0.0 <3.0.0/2.0.2/5.0.6)^2.9.1→^3.4.0^6.0.6→^7.0.6^2.2.0→^3.0.0^4.0.4→^9.0.0](https://renovatebot.com/diffs/npm/diff@>=4.0.0 <5.0.0/4.0.4/9.0.0)^5.2.2→^9.0.0](https://renovatebot.com/diffs/npm/diff@>=5.0.0 <5.2.2/5.2.2/9.0.0)^8.0.3→^9.0.0](https://renovatebot.com/diffs/npm/diff@>=6.0.0 <8.0.3/8.0.3/9.0.0)^16.6.1→^17.4.2^3.0.6→^4.1.0^1.1.1→^3.0.8^10.12.2→^12.13.0^11.1.0→^13.0.6^10.5.0→^13.0.6](https://renovatebot.com/diffs/npm/glob@>=10.2.0 <10.5.0/10.5.0/13.0.6)^3.2.3→^4.0.1](https://renovatebot.com/diffs/npm/jws@>=3.0.0 <3.2.3/3.2.3/4.0.1)^6.1.0→^8.0.0^10.2.0→^11.7.5^10.1.0→^11.0.0^8.2.0→^9.4.0^6.2.0→^7.3.0^2.3.2→^4.0.4^2.3.2→^4.0.4^7.5.6→^8.3.0^5.0.5→^6.1.3^1.3.1→^2.0.1^7.24.1→^8.2.0](https://renovatebot.com/diffs/npm/undici@>=6.0.0 <6.21.3/7.24.1/8.2.0)^11.1.1→^14.0.0](https://renovatebot.com/diffs/npm/uuid@>=11.0.0 <11.1.1/11.1.1/14.0.0)^3.24.1→^4.4.3Release Notes
honojs/node-server (@hono/node-server)
v2.0.2Compare Source
What's Changed
Full Changelog: honojs/node-server@v2.0.1...v2.0.2
v2.0.1Compare Source
What's Changed
New Contributors
Full Changelog: honojs/node-server@v2.0.0...v2.0.1
v2.0.0Compare Source
Now, we release the second major version of the Hono Node.js adapter 🎉 🎉 🎉
The Hono Node.js adapter is now up to 2.3x faster
v2 of the Hono Node.js adapter reaches up to 2.3x the throughput of v1 — that's the peak number, measured on the body-parsing scenario of
bun-http-framework-benchmark. The other scenarios (Ping, Query) get a smaller but real boost too.Install or upgrade with:
v2
The Node.js adapter is going through a major version bump to v2. That said, the public API stays the same — the headline of this release is the large performance improvement described above.
What does the Node.js adapter do?
A quick refresher on what the Node.js adapter actually does — it exists so that Hono applications can run on Node.js. Hono is built on the Web Standards APIs, but you cannot serve those directly from Node.js. The adapter bridges the Web Standards APIs and the Node.js APIs, which is what lets a Hono app — and more generally a Web-Standards-style app — run on top of Node.js.
If you write the following code and run
node ./index.js, a server starts up onlocalhost:3000. And it really is plain Node.js underneath.The early performance story
The very first implementation of the Node.js adapter looked roughly like this in pseudocode:
So the flow was:
IncomingMessageRequestobject and handed to the appResponsereturned by the app is written back to the outgoingServerResponseIn diagram form:
This is, frankly, inefficient. So whenever Hono went head-to-head with other Node.js frameworks we kept losing — all we could do was shrug and say "well, it's slow on Node.js."
Introducing LightweightRequest / LightweightResponse
The huge step forward that fixed this was a legendary PR from @usualoma:
#95
It made things up to 2.7x faster.
I previously wrote about this in detail in this post:
https://zenn.dev/yusukebe/articles/7ac501716ae1f7?locale=en
In short, the trick is wonderfully simple. It just follows the golden rule of performance tuning: don't do work you don't have to do. Lightweight versions of
RequestandResponseare constructed and used first — and that path is fast. Only when something actually needs the contents of theRequest, e.g. when you callreq.json(), does a realnew Request()get instantiated under the hood and used from then on. The result is fast, and behavior stays correct.…but body parsing was still slow
"Fast" here was for a very simple "Hello World" benchmark — a GET that just returns text.
There are many ways to benchmark, but the one we tend to reach for is this:
https://github.com/SaltyAom/bun-http-framework-benchmark
It tests three scenarios: Ping, Query, and Body. Let's pit Hono against the major Node.js frameworks:
As you can see, the Body case is very slow. The handler being measured is essentially this:
c.req.json()is the slow part. The reason is well understood: inside the Node.js adapter, whenjson()is called the LightweightRequest path can't be used, so a realnew Request()ends up being constructed.perf: optimize request body reading
The 2.3x figure above comes from one PR specifically — PR #301 by @mgcrea:
The PR bundles a few changes, but the key one is "optimize request body reading". Quoting from the PR description:
In other words, in the
json()case above, we no longer convert into aRequestat all — we read the body straight off the Node.js APIs. A classic fast path. That alone gives a large jump in body-parsing throughput.The same PR also includes two other tuning improvements:
URLobject except in edge casesbuildOutgoingHttpHeadersoptimization — skip theset-cookieheader comparison when there are no cookiesv2 ships several other performance PRs as well —
newHeadersFromIncomingand signal fast-paths,Responsefast-paths andresponseViaCacheimprovements, method-key caching, a regex-basedbuildUrlrewrite, and more (see the full list below). They all add up, but #301 is by far the largest single contributor, which is why it gets the spotlight here.v2 performance
Now let's measure the final v2 build.
First, comparing against the v1 Node.js adapter.
devhere is v2. Body improves by 2.3x, and the other scenarios get faster too:Next, the same comparison against other frameworks. With the Body score jumping, Hono passes Koa and Fastify and takes first place:
Breaking changes
There are two breaking changes in v2.
Dropped support for Node.js v18
Node.js v18 reached end-of-life, so v2 requires Node.js v20 or later.
Removed the Vercel adapter
The Vercel adapter (
@hono/node-server/vercel) has been removed. It is no longer needed for Vercel's modern runtimes, so the recommendation is to deploy without it.If you still need the previous behavior, the old adapter was a one-liner on top of
getRequestListenerand you can write the same thing in your own project:Then use it the same way you used
handlefrom@hono/node-server/vercelbefore.All changes
A full list of what landed in PR #316.
Performance
buildOutgoingHttpHeadersfor the common case (#301) by @mgcrea:as safe host (#320) by @yusukebenewHeadersFromIncomingand signal fast-path (#332) by @GavinMeierSonosResponsefast-paths andresponseViaCacheimprovements (#333) by @GavinMeierSonosUint8Arraylookup tables with regex inbuildUrl(#345) by @usualomaFeatures
Breaking changes
Fixes & refactors
new URL()should be used (#310) by @usualomaRequestobject (#311) by @usualomaBlob/ReadableStreamcacheable responses (#342) by @usualomaResponse.json()andResponse.redirect()spec compliance and efficiency (#343) by @usualomaBuild & tooling
type: moduletopackage.json(#336) by @yusukebeWrap-up
So that's v2 of the Node.js adapter — significantly faster, with the same API. Just upgrading should give you a real performance boost. No more "Hono is slow on Node.js" excuses. Please use Hono — fast not only on Cloudflare, Bun, and Deno, but now also on Node.js.
v1.19.14Compare Source
What's Changed
Full Changelog: honojs/node-server@v1.19.13...v1.19.14
rollup/plugins (@rollup/plugin-commonjs)
v29.0.22026-03-06
Bugfixes
v29.0.12026-03-05
Bugfixes
v29.0.02025-10-30
Breaking Changes
requireNodeBuiltinsoption (#1937)rollup/plugins (@rollup/plugin-terser)
v1.0.02026-03-05
Breaking Changes
smithy-lang/smithy-typescript (@smithy/types)
v4.14.1Compare Source
Patch Changes
131fce4: add eventStream indicator signal for NodeHttp2ConnectionManager so it does not reuse connections for event streams52b4789: allow snapshot of credentials for event-stream signingv4.14.0Compare Source
Minor Changes
cffd868: Introduce default retry behavior modifications slated for 2026. They are:less time between server error retries, but slightly more time between throttling errors. Lower retry capacity consumption for throttling, and improved parsing of the retry-after and x-amz-retry-after headers.
v4.13.1Compare Source
Patch Changes
5340b11: apply resolved endpoint headers to final requestv4.13.0Compare Source
Minor Changes
d0954cc: allow adding new checksum algorithms via extensionv4.12.1Compare Source
Patch Changes
03c3dc8: update for rollup build externalLiveBindings=falsev4.12.0Compare Source
Minor Changes
745867a: encode required member count in structure schemasv4.11.0Compare Source
Minor Changes
9ccb841: add static union schema as a new typev4.10.0Compare Source
Minor Changes
5a56762: make protocol selection easierv4.9.0Compare Source
Minor Changes
3926fd7: set release level for schemasv4.8.1Compare Source
Patch Changes
6da0ab3: export used typesv4.8.0Compare Source
Minor Changes
8a2a912: remove usage of non-static schema classesv4.7.1Compare Source
Patch Changes
052d261: fix ordering of static simple schema typev4.7.0Compare Source
Minor Changes
761d89c: undeprecate socketTimeout for node:https requests7f8af58: generation of static schemav4.6.0Compare Source
Minor Changes
45ee67f: update dist-cjs generation to use rollupv4.5.0Compare Source
Minor Changes
bb7c1c1: schema code size optimizationsv4.4.0Compare Source
Minor Changes
64cda93: set sideEffects bundler metadataPatch Changes
f884df7: enforce consistent-type-importsv4.3.2Compare Source
Patch Changes
64e033f: schema serde: http binding and cbor serializer refactoringv4.3.1Compare Source
Patch Changes
358c1ff: fix Command interface compatibility with type transformersv4.3.0Compare Source
Minor Changes
0547fab: add types for schemasv4.2.0Compare Source
Minor Changes
e917e61: enforce singular config object during client instantiationv4.1.0Compare Source
Minor Changes
2aff9df: Added middleware support to pagination000b2ae: allow paginator token fallback to be specified by operation inputv4.0.0Compare Source
Major Changes
20d99be: major version bump for dropping node16 supportvertesia/composableai (@vertesia/client)
v1.2.0Compare Source
v1.1.0Compare Source
v1.0.0Compare Source
v0.82.4Compare Source
v0.82.3Compare Source
v0.82.2Compare Source
ajv-validator/ajv (ajv@>=6.0.0 <6.14.0)
v8.20.0Compare Source
What's Changed
Full Changelog: ajv-validator/ajv@v8.19.0...v8.20.0
v8.18.0Compare Source
What's Changed
"sideEffects": falsetopackage.jsonby @josdejong in #2480New Contributors
Full Changelog: ajv-validator/ajv@v8.17.1...v8.18.0
v8.17.1Compare Source
What's Changed
Full Changelog: ajv-validator/ajv@v8.17.0...v8.17.1
Plus everything in 8.17.0 which failed to release
The only functional change is to switch from uri-js (which is no longer supported), to fast-uri. This is the second attempt and the team on fast-uri have been really helpful addressing the issues we found last time.
Revert "Revert fast-uri change (#2444)" by @gurgunday in #2448
fix: ignore new eslint error for @typescript-eslint/no-extraneous-class by @jasoniangreen in #2455
docs: clarify behaviour of addVocabulary by @jasoniangreen in #2454
docs: refactor to improve legibility by @blottn in #2432
Fix grammatical typo in managing-schemas.md by @wetneb in #2305
docs: Fix broken strict-mode link by @alexanderjsx in #2459
feat: add test for encoded refs and bump fast-uri by @jasoniangreen in #2449
fix: changes for @typescript-eslint/array-type rule by @jasoniangreen in #2467
fixes #2217 - clarify custom keyword naming by @jasoniangreen in #2457
v8.16.0Compare Source
What's Changed
Full Changelog: ajv-validator/ajv@v8.15.0...v8.16.0
v8.15.0Compare Source
What's Changed
uri-jswithfast-uriby @vixalien in #2415New Contributors
Full Changelog: ajv-validator/ajv@v8.14.0...v8.15.0
v8.14.0Compare Source
What's Changed
New Contributors
Full Changelog: ajv-validator/ajv@v8.13.0...v8.14.0
v8.13.0Compare Source
v8.12.0Compare Source
v8.11.2Compare Source
Update dependencies
Export ValidationError and MissingRefError (#1840, @dannyb648)
v8.11.1Compare Source
Update dependencies
Export ValidationError and MissingRefError (#1840, @dannyb648)
v8.11.0Compare Source
Use root schemaEnv when resolving references in oneOf (#1901, @asprouse)
Only use equal function in generated code when it is used (#1922, @bhvngt)
v8.10.0Compare Source
uriResolveroption (@zekth, #1862)v8.9.0Compare Source
Option
code.esmto generate ESM exports for standalone validation functions (@rehanvdm, #1861)Support discriminator keyword with $ref in oneOf subschemas (@dfeufel, #1815)
v8.8.2Compare Source
Use full RegExp string (with flags) as cache key, related to ajv-validator/ajv-keywords#220
v8.8.1Compare Source
Fix
minContains: 0(#1819)v8.8.0Compare Source
Fix browser bundles in cdnjs
regExpoption allowing to specify alternative RegExp engine, e.g. re2 (@efebarlas)v8.7.1Compare Source
Publish Ajv bundle for JSON Schema 2020-12 to cdnjs.com
v8.7.0Compare Source
Update JSON Schema Test Suite.
Change
minContains: 0now correctly allows empty array.v8.6.3Compare Source
Fix $ref resolution for schemas without $id (@rbuckton, #1725)
Support standalone module import from ESM modules without using
.defaultproperty (@bhvngt, #1757)Update code for breaking TS change - error in
catchhas typeunknown(#1760)v8.6.2Compare Source
Fix JTD serialiser (#1691)
v8.6.1Compare Source
Fix "not" keyword preventing validation of "allOf" and some other keywords (#1668)
v8.6.0Compare Source
Track evaluated properties with patternProperties that have always valid schemas (e.g., true) (@P0lip, #1626)
Option
int32rangeto disable number range checking forint32anduint32type in JTD schemasv8.5.0Compare Source
Optimize validation code for
constkeyword with scalar values (@SoAsEr, #1561)Add option
schemaIdto support ajv-draft-04 - Ajv for JSON Schema drat-04.v8.4.0Compare Source
JSON Type Definition schema options:
timestamptype as Date objects.timestamptype.v8.3.0Compare Source
Typescript improvements:
JTD timestamp validation option (@jrr, #1584).
Docs corrections.
v8.2.0Compare Source
Add JTDDataType to compile signature (@erikbrinkman, #1547)
Improve JSONSchemaType for records (@erikbrinkman, #1564)
Use rollup for browser bundles (@realityking, #1533)
Docs corrections
v8.1.0Compare Source
unicodeRegExp option to not use RegExp unicode flag that may be incompatible with some environments (@asaid-0, #1530)
Fix JSONSchemaType (@erikbrinkman, #1541)
Extended error message for invalid keyword values (@pcwiek, #1542)
v8.0.5Compare Source
Fix: add source code back to npm package, 8.0.4 is breaking ajv-cli (and possibly other things)
v8.0.4Compare Source
Reduce npm bundle size
v8.0.3Compare Source
Improve JSONSchemaType errors (@erikbrinkman, #1525)
v8.0.2Compare Source
Support RegExp formats in standalone code (#1470)
Add schema path to strictTuple error message (@asaid-0, #1519)
v8.0.1Compare Source
Typescript: export function
getData(for ajv-errors)v8.0.0Compare Source
This document describes changes from v7.2.4 to v8.0.0.
If you are migrating from v6 you can use this document.
New features
Support JSON Schema draft-2020-12: prefixItems keyword and changed semantics of items keyword, dynamic recursive references.
OpenAPI discriminator keyword.
Improved JSON Type Definition support:
TypeScript: support type unions in JSONSchemaType
Other changes / improvements
Node.js require works without .default property - see examples in Getting started
Reduce runtime dependency for standalone validation code
Fix resolution of
$ref: "#"when $id is present ([#815](https://redirect.github.com/ajv-validator/aConfiguration
📅 Schedule: (UTC)
* * * * 3)🚦 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.
This PR has been generated by Renovate Bot.