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:
3.12.1
->3.16.0
0.6.1
->0.7.0
1.13.7
->1.13.8
22.10.4
->22.13.1
0.24.2
->0.25.0
9.17.0
->9.20.1
4.6.15
->4.7.0
15.3.0
->15.4.3
9.15.2
->9.15.5
3.4.2
->3.5.0
5.7.2
->5.7.3
1.0.0-beta.9
->1.0.0-rc.0
6.0.9
->6.1.0
3.0.0-beta.3
->3.0.5
Release Notes
antfu/eslint-config (@antfu/eslint-config)
v3.16.0
Compare Source
🚀 Features
View changes on GitHub
v3.15.0
Compare Source
🚀 Features
prefer-const
in editor - by @antfu (12dd5)View changes on GitHub
v3.14.0
Compare Source
🚀 Features
View changes on GitHub
v3.13.0
Compare Source
🚀 Features
View changes on GitHub
v3.12.2
Compare Source
🚀 Features
View changes on GitHub
modevol-com/gqloom (@gqloom/valibot)
v0.7.0
Compare Source
What's Changed
Bobbin
toPrismaResolverFactory
MikroOperationBobbin
toMikroResolverFactory
Full Changelog: https://github.com/modevol-com/gqloom/compare/[@​gqloom/core](https://redirect.github.com/gqloom/core)[@​0](https://redirect.github.com/0).6.0...0.7.0
Resolver Chained Construction
In the old version of
GQLoom
, we declared operations by passing a resolution option as the second parameter to methods such asquery
andfield
. The code looked like this:Now we can use the chained calls of methods such as
query
andfield
to declare operations, which will make the development experience easier. The code now looks like this:Drizzle Integration
GQLoom
now provides integration with Drizzle:Here is an example of using both Drizzle and GQLoom:
Learn more in the Drizzle Integration Documentation!
honojs/node-server (@hono/node-server)
v1.13.8
Compare Source
What's Changed
incoming.rawBody
if available by @usualoma in https://github.com/honojs/node-server/pull/223New Contributors
Full Changelog: honojs/node-server@v1.13.7...v1.13.8
evanw/esbuild (esbuild)
v0.25.0
Compare Source
This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you should either be pinning the exact version of
esbuild
in yourpackage.json
file (recommended) or be using a version range syntax that only accepts patch upgrades such as^0.24.0
or~0.24.0
. See npm's documentation about semver for more information.Restrict access to esbuild's development server (GHSA-67mh-4wv8-2f99)
This change addresses esbuild's first security vulnerability report. Previously esbuild set the
Access-Control-Allow-Origin
header to*
to allow esbuild's development server to be flexible in how it's used for development. However, this allows the websites you visit to make HTTP requests to esbuild's local development server, which gives read-only access to your source code if the website were to fetch your source code's specific URL. You can read more information in the report.Starting with this release, CORS will now be disabled, and requests will now be denied if the host does not match the one provided to
--serve=
. The default host is0.0.0.0
, which refers to all of the IP addresses that represent the local machine (e.g. both127.0.0.1
and192.168.0.1
). If you want to customize anything about esbuild's development server, you can put a proxy in front of esbuild and modify the incoming and/or outgoing requests.In addition, the
serve()
API call has been changed to return an array ofhosts
instead of a singlehost
string. This makes it possible to determine all of the hosts that esbuild's development server will accept.Thanks to @sapphi-red for reporting this issue.
Delete output files when a build fails in watch mode (#3643)
It has been requested for esbuild to delete files when a build fails in watch mode. Previously esbuild left the old files in place, which could cause people to not immediately realize that the most recent build failed. With this release, esbuild will now delete all output files if a rebuild fails. Fixing the build error and triggering another rebuild will restore all output files again.
Fix correctness issues with the CSS nesting transform (#3620, #3877, #3933, #3997, #4005, #4037, #4038)
This release fixes the following problems:
Naive expansion of CSS nesting can result in an exponential blow-up of generated CSS if each nesting level has multiple selectors. Previously esbuild sometimes collapsed individual nesting levels using
:is()
to limit expansion. However, this collapsing wasn't correct in some cases, so it has been removed to fix correctness issues.Thanks to @tim-we for working on a fix.
The
&
CSS nesting selector can be repeated multiple times to increase CSS specificity. Previously esbuild ignored this possibility and incorrectly considered&&
to have the same specificity as&
. With this release, this should now work correctly:Thanks to @CPunisher for working on a fix.
Previously transforming nested CSS incorrectly removed leading combinators from within pseudoclass selectors such as
:where()
. This edge case has been fixed and how has test coverage.This fix was contributed by @NoremacNergfol.
The CSS minifier contains logic to remove the
&
selector when it can be implied, which happens when there is only one and it's the leading token. However, this logic was incorrectly also applied to selector lists inside of pseudo-class selectors such as:where()
. With this release, the minifier will now avoid applying this logic in this edge case:Fix some correctness issues with source maps (#1745, #3183, #3613, #3982)
Previously esbuild incorrectly treated source map path references as file paths instead of as URLs. With this release, esbuild will now treat source map path references as URLs. This fixes the following problems with source maps:
File names in
sourceMappingURL
that contained a space previously did not encode the space as%20
, which resulted in JavaScript tools (including esbuild) failing to read that path back in when consuming the generated output file. This should now be fixed.Absolute URLs in
sourceMappingURL
that use thefile://
scheme previously attempted to read from a folder calledfile:
. These URLs should now be recognized and parsed correctly.Entries in the
sources
array in the source map are now treated as URLs instead of file paths. The correct behavior for this is much more clear now that source maps has a formal specification. Many thanks to those who worked on the specification.Fix incorrect package for
@esbuild/netbsd-arm64
(#4018)Due to a copy+paste typo, the binary published to
@esbuild/netbsd-arm64
was not actually forarm64
, and didn't run in that environment. This release should fix running esbuild in that environment (NetBSD on 64-bit ARM). Sorry about the mistake.Fix a minification bug with bitwise operators and bigints (#4065)
This change removes an incorrect assumption in esbuild that all bitwise operators result in a numeric integer. That assumption was correct up until the introduction of bigints in ES2020, but is no longer correct because almost all bitwise operators now operate on both numbers and bigints. Here's an example of the incorrect minification:
Fix esbuild incorrectly rejecting valid TypeScript edge case (#4027)
The following TypeScript code is valid:
Before this version, esbuild would fail to parse this with a syntax error as it expected the token sequence
async as ...
to be the start of an async arrow function expressionasync as => ...
. This edge case should be parsed correctly by esbuild starting with this release.Transform BigInt values into constructor calls when unsupported (#4049)
Previously esbuild would refuse to compile the BigInt literals (such as
123n
) if they are unsupported in the configured target environment (such as with--target=es6
). The rationale was that they cannot be polyfilled effectively because they change the behavior of JavaScript's arithmetic operators and JavaScript doesn't have operator overloading.However, this prevents using esbuild with certain libraries that would otherwise work if BigInt literals were ignored, such as with old versions of the
buffer
library before the library fixed support for running in environments without BigInt support. So with this release, esbuild will now turn BigInt literals into BigInt constructor calls (so123n
becomesBigInt(123)
) and generate a warning in this case. You can turn off the warning with--log-override:bigint=silent
or restore the warning to an error with--log-override:bigint=error
if needed.Change how
console
API dropping works (#4020)Previously the
--drop:console
feature replaced all method calls off of theconsole
global withundefined
regardless of how long the property access chain was (so it applied toconsole.log()
andconsole.log.call(console)
andconsole.log.not.a.method()
). However, it was pointed out that this breaks uses ofconsole.log.bind(console)
. That's also incompatible with Terser's implementation of the feature, which is where this feature originally came from (it does supportbind
). So with this release, using this feature with esbuild will now only replace one level of method call (unless extended bycall
orapply
) and will replace the method being called with an empty function in complex cases:This should more closely match Terser's existing behavior.
Allow BigInt literals as
define
valuesWith this release, you can now use BigInt literals as define values, such as with
--define:FOO=123n
. Previously trying to do this resulted in a syntax error.Fix a bug with resolve extensions in
node_modules
(#4053)The
--resolve-extensions=
option lets you specify the order in which to try resolving implicit file extensions. For complicated reasons, esbuild reorders TypeScript file extensions after JavaScript ones inside ofnode_modules
so that JavaScript source code is always preferred to TypeScript source code inside of dependencies. However, this reordering had a bug that could accidentally change the relative order of TypeScript file extensions if one of them was a prefix of the other. That bug has been fixed in this release. You can see the issue for details.Better minification of statically-determined
switch
cases (#4028)With this release, esbuild will now try to trim unused code within
switch
statements when the test expression andcase
expressions are primitive literals. This can arise when the test expression is an identifier that is substituted for a primitive literal at compile time. For example:Emit
/* @​__KEY__ */
for string literals derived from property names (#4034)Property name mangling is an advanced feature that shortens certain property names for better minification (I say "advanced feature" because it's very easy to break your code with it). Sometimes you need to store a property name in a string, such as
obj.get('foo')
instead ofobj.foo
. JavaScript minifiers such as esbuild and Terser have a convention where a/* @​__KEY__ */
comment before the string makes it behave like a property name. Soobj.get(/* @​__KEY__ */ 'foo')
allows the contents of the string'foo'
to be shortened.However, esbuild sometimes itself generates string literals containing property names when transforming code, such as when lowering class fields to ES6 or when transforming TypeScript decorators. Previously esbuild didn't generate its own
/* @​__KEY__ */
comments in this case, which means that minifying your code by running esbuild again on its own output wouldn't work correctly (this does not affect people that both minify and transform their code in a single step).With this release, esbuild will now generate
/* @​__KEY__ */
comments for property names in generated string literals. To avoid lots of unnecessary output for people that don't use this advanced feature, the generated comments will only be present when the feature is active. If you want to generate the comments but not actually mangle any property names, you can use a flag that has no effect such as--reserve-props=.
, which tells esbuild to not mangle any property names (but still activates this feature).The
text
loader now strips the UTF-8 BOM if present (#3935)Some software (such as Notepad on Windows) can create text files that start with the three bytes
0xEF 0xBB 0xBF
, which is referred to as the "byte order mark". This prefix is intended to be removed before using the text. Previously esbuild'stext
loader included this byte sequence in the string, which turns into a prefix of\uFEFF
in a JavaScript string when decoded from UTF-8. With this release, esbuild'stext
loader will now remove these bytes when they occur at the start of the file.Omit legal comment output files when empty (#3670)
Previously configuring esbuild with
--legal-comment=external
or--legal-comment=linked
would always generate a.LEGAL.txt
output file even if it was empty. Starting with this release, esbuild will now only do this if the file will be non-empty. This should result in a more organized output directory in some cases.Update Go from 1.23.1 to 1.23.5 (#4056, #4057)
This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain reports from vulnerability scanners that detect which version of the Go compiler esbuild uses.
This PR was contributed by @MikeWillCook.
Allow passing a port of 0 to the development server (#3692)
Unix sockets interpret a port of 0 to mean "pick a random unused port in the ephemeral port range". However, esbuild's default behavior when the port is not specified is to pick the first unused port starting from 8000 and upward. This is more convenient because port 8000 is typically free, so you can for example restart the development server and reload your app in the browser without needing to change the port in the URL. Since esbuild is written in Go (which does not have optional fields like JavaScript), not specifying the port in Go means it defaults to 0, so previously passing a port of 0 to esbuild caused port 8000 to be picked.
Starting with this release, passing a port of 0 to esbuild when using the CLI or the JS API will now pass port 0 to the OS, which will pick a random ephemeral port. To make this possible, the
Port
option in the Go API has been changed fromuint16
toint
(to allow for additional sentinel values) and passing a port of -1 in Go now picks a random port. Both the CLI and JS APIs now remap an explicitly-provided port of 0 into -1 for the internal Go API.Another option would have been to change
Port
in Go fromuint16
to*uint16
(Go's closest equivalent ofnumber | undefined
). However, that would make the common case of providing an explicit port in Go very awkward as Go doesn't support taking the address of integer constants. This tradeoff isn't worth it as picking a random ephemeral port is a rare use case. So the CLI and JS APIs should now match standard Unix behavior when the port is 0, but you need to use -1 instead with Go API.Minification now avoids inlining constants with direct
eval
(#4055)Direct
eval
can be used to introduce a new variable like this:Previously esbuild inlined
variable
here (which becamefalse
), which changed the behavior of the code. This inlining is now avoided, but please keep in mind that directeval
breaks many assumptions that JavaScript tools hold about normal code (especially when bundling) and I do not recommend using it. There are usually better alternatives that have a more localized impact on your code. You can read more about this here: https://esbuild.github.io/link/direct-eval/eslint/eslint (eslint)
v9.20.1
Compare Source
v9.20.0
Compare Source
v9.19.0
Compare Source
v9.18.0
Compare Source
honojs/hono (hono)
v4.7.0
Compare Source
Release Notes
Hono v4.7.0 is now available!
This release introduces one helper and two middleware.
Plus, Standard Schema Validator has been born.
Let's look at each of these.
Proxy Helper
We sometimes use the Hono application as a reverse proxy. In that case, it accesses the backend using
fetch
. However, it sends an unintended headers.For example,
fetch
may sendAccept-Encoding
, causing the origin server to return a compressed response. Some runtimes automatically decode it, leading to aContent-Length
mismatch and potential client-side errors.Also, you should probably remove some of the headers sent from the origin server, such as
Transfer-Encoding
.Proxy Helper will send requests to the origin and handle responses properly. The above headers problem is solved simply by writing as follows.
You can also use it in more complex ways.
Thanks @usualoma!
Language Middleware
Language Middleware provides 18n functions to Hono applications. By using the
languageDetector
function, you can get the language that your application should support.You can get the target language in various ways, not just by using
Accept-Language
.Accept-Language
headerThanks @lord007tn!
JWK Auth Middleware
Finally, middleware that supports JWK (JSON Web Key) has landed. Using JWK Auth Middleware, you can authenticate by verifying JWK tokens. It can access keys fetched from the specified URL.
Thanks @Beyondo!
Standard Schema Validator
Standard Schema provides a common interface for TypeScript validator libraries. Standard Schema Validator is a validator that uses it. This means that Standard Schema Validator can handle several validators, such as Zod, Valibot, and ArkType, with the same interface.
The code below really works!
Thanks @muningis!
New features
All changes
yarn
by @EdamAme-x in https://github.com/honojs/hono/pull/3878toLowerCase()
is unnecessary forreq.header()
by @yusukebe in https://github.com/honojs/hono/pull/3880env
type by @yusukebe in https://github.com/honojs/hono/pull/3885c.json({})
by @yusukebe in https://github.com/honojs/hono/pull/3873deno.lock
by @yusukebe in https://github.com/honojs/hono/pull/3897New Contributors
Full Changelog: honojs/hono@v4.6.20...v4.7.0
v4.6.20
Compare Source
What's Changed
np
by @yusukebe in https://github.com/honojs/hono/pull/3874New Contributors
Full Changelog: honojs/hono@v4.6.19...v4.6.20
v4.6.19
Compare Source
What's Changed
OnHandlerInterface
by @sor4chi in https://github.com/honojs/hono/pull/3852env
should setc
type correctly by @yusukebe in https://github.com/honojs/hono/pull/3856Full Changelog: honojs/hono@v4.6.18...v4.6.19
v4.6.18
Compare Source
What's Changed
types.ts
by @yusukebe in https://github.com/honojs/hono/pull/3836ParamKey
simply by @yusukebe in https://github.com/honojs/hono/pull/3837factory.createMiddleware()
by @yusukebe in https://github.com/honojs/hono/pull/3849Full Changelog: honojs/hono@v4.6.17...v4.6.18
v4.6.17
Compare Source
What's Changed
New Contributors
Full Changelog: honojs/hono@v4.6.16...v4.6.17
v4.6.16
Compare Source
What's Changed
app.on(method,path[],middleware,handler)
type by @yusukebe in https://github.com/honojs/hono/pull/3802Full Changelog: honojs/hono@v4.6.15...v4.6.16
lint-staged/lint-staged (lint-staged)
v15.4.3
Compare Source
Patch Changes
cbfed1d
Thanks @tarik02! - Adjust TypeScript types for the default export so that it can be used as a value without error TS2693.v15.4.2
Compare Source
Patch Changes
8827ebf
Thanks @iiroj! - Change lint-staged's dependencies to use caret (^
) ranges instead of tilde (~
). This makes it easier for package managers to perform dependency management when minor-level updates are also permitted instead of just patch-level.v15.4.1
Compare Source
Patch Changes
#1504
1c7a45e
Thanks @iiroj! - Default TypeScript config filenames match JS equivalents.#1504
9cc18c9
Thanks @iiroj! - Add missing conditional exports syntax for TypeScript types.v15.4.0
Compare Source
Minor Changes
#1500
a8ec1dd
Thanks @iiroj! - Lint-staged now provides TypeScript types for the configuration and main Node.js API. You can use the JSDoc syntax in your JS configuration files:It's also possible to use the
.ts
file extension for the configuration if your Node.js version supports it. The--experimental-strip-types
flag was introduced in Node.js v22.6.0 and unflagged in v23.6.0, enabling Node.js to execute TypeScript files without additional configuration.Patch Changes
Configuration
📅 Schedule: Branch creation - "* 0-3 * * 1" (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.
This PR was generated by Mend Renovate. View the repository job log.