chore(deps): update dependency esbuild to v0.18.20#8983
Merged
renovate[bot] merged 1 commit intomainfrom Aug 8, 2023
Merged
Conversation
586ab11 to
4015dbe
Compare
4015dbe to
fb5da24
Compare
fb5da24 to
5374974
Compare
dac09
added a commit
to dac09/redwood
that referenced
this pull request
Aug 9, 2023
…croll-reset * 'main' of github.com:redwoodjs/redwood: fix(deps): update dependency pino to v8.15.0 (redwoodjs#9023) fix(deps): update dependency eslint to v8.46.0 (redwoodjs#9022) fix(deps): update dependency react-hook-form to v7.45.4 (redwoodjs#9017) chore(docs): reversion docs to include recent changes fix(deps): update dependency vite to v4.4.9 (redwoodjs#9018) v6.0.4 fix(docs): update quick start to fix Storybook start up (redwoodjs#9014) cherry pick part of "fix: Improve GraphQL Schema Validation to allow Subscription types when not using Realtime and ensure schema does not use reserved names (redwoodjs#9005)" fix: Improve GraphQL Schema Validation to allow Subscription types when not using Realtime and ensure schema does not use reserved names (redwoodjs#9005) Docs: Explain the entry.client.{jsx,tsx} file (redwoodjs#8987) chore(deps): update dependency esbuild to v0.18.19 (redwoodjs#8983) chore(deps): update dependency nx-cloud to v16.2.0 (redwoodjs#8985) docs(fonts): Update @font-face recommendation (redwoodjs#8986) Docs: remove useless code in code snippet (redwoodjs#8990) v6.0.3 fix(router): Prevent rerendering authenticated routes on hash change (redwoodjs#9007) Remove the indexed type reference on AvailableRoutes (redwoodjs#8918)
dac09
added a commit
to dac09/redwood
that referenced
this pull request
Aug 9, 2023
…sr-stream * 'main' of github.com:redwoodjs/redwood: feat(streaming-ssr): Fix build and server html injection (redwoodjs#8978) fix(router): Do not reset scroll on query & hash changes (redwoodjs#9004) fix(deps): update dependency pino to v8.15.0 (redwoodjs#9023) fix(deps): update dependency eslint to v8.46.0 (redwoodjs#9022) fix(deps): update dependency react-hook-form to v7.45.4 (redwoodjs#9017) chore(docs): reversion docs to include recent changes fix(deps): update dependency vite to v4.4.9 (redwoodjs#9018) v6.0.4 fix(docs): update quick start to fix Storybook start up (redwoodjs#9014) cherry pick part of "fix: Improve GraphQL Schema Validation to allow Subscription types when not using Realtime and ensure schema does not use reserved names (redwoodjs#9005)" fix: Improve GraphQL Schema Validation to allow Subscription types when not using Realtime and ensure schema does not use reserved names (redwoodjs#9005) Docs: Explain the entry.client.{jsx,tsx} file (redwoodjs#8987) chore(deps): update dependency esbuild to v0.18.19 (redwoodjs#8983) chore(deps): update dependency nx-cloud to v16.2.0 (redwoodjs#8985)
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:
0.18.16->0.18.20Release Notes
evanw/esbuild (esbuild)
v0.18.20Compare Source
Support advanced CSS
@importrules (#953, #3137)CSS
@importstatements have been extended to allow additional trailing tokens after the import path. These tokens sort of make the imported file behave as if it were wrapped in a@layer,@supports, and/or@mediarule. Here are some examples:You can read more about this advanced syntax here. With this release, esbuild will now bundle
@importrules with these trailing tokens and will wrap the imported files in the corresponding rules. Note that this now means a given imported file can potentially appear in multiple places in the bundle. However, esbuild will still only load it once (e.g. on-load plugins will only run once per file, not once per import).v0.18.19Compare Source
Implement
composesfrom CSS modules (#20)This release implements the
composesannotation from the CSS modules specification. It provides a way for class selectors to reference other class selectors (assuming you are using thelocal-cssloader). And with thefromsyntax, this can even work with local names across CSS files. For example:Bundling this with esbuild using
--bundle --outdir=dist --loader:.css=local-cssnow gives the following:Import paths in the
composes: ... fromsyntax are resolved using the newcomposes-fromimport kind, which can be intercepted by plugins during import path resolution when bundling is enabled.Note that the order in which composed CSS classes from separate files appear in the bundled output file is deliberately undefined by design (see the specification for details). You are not supposed to declare the same CSS property in two separate class selectors and then compose them together. You are only supposed to compose CSS class selectors that declare non-overlapping CSS properties.
Issue #20 (the issue tracking CSS modules) is esbuild's most-upvoted issue! With this change, I now consider esbuild's implementation of CSS modules to be complete. There are still improvements to make and there may also be bugs with the current implementation, but these can be tracked in separate issues.
Fix non-determinism with
tsconfig.jsonand symlinks (#3284)This release fixes an issue that could cause esbuild to sometimes emit incorrect build output in cases where a file under the effect of
tsconfig.jsonis inconsistently referenced through a symlink. It can happen when usingnpm linkto create a symlink withinnode_modulesto an unpublished package. The build result was non-deterministic because esbuild runs module resolution in parallel and the result of thetsconfig.jsonlookup depended on whether the import through the symlink or not through the symlink was resolved first. This problem was fixed by moving therealpathoperation before thetsconfig.jsonlookup.Add a
hashproperty to output files (#3084, #3293)As a convenience, every output file in esbuild's API now includes a
hashproperty that is a hash of thecontentsfield. This is the hash that's used internally by esbuild to detect changes between builds for esbuild's live-reload feature. You may also use it to detect changes between your own builds if its properties are sufficient for your use case.This feature has been added directly to output file objects since it's just a hash of the
contentsfield, so it makes conceptual sense to store it in the same location. Another benefit of putting it there instead of including it as a part of the watch mode API is that it can be used without watch mode enabled. You can use it to compare the output of two independent builds that were done at different times.The hash algorithm (currently XXH64) is implementation-dependent and may be changed at any time in between esbuild versions. If you don't like esbuild's choice of hash algorithm then you are welcome to hash the contents yourself instead. As with any hash algorithm, note that while two different hashes mean that the contents are different, two equal hashes do not necessarily mean that the contents are equal. You may still want to compare the contents in addition to the hashes to detect with certainty when output files have been changed.
Avoid generating duplicate prefixed declarations in CSS (#3292)
There was a request for esbuild's CSS prefixer to avoid generating a prefixed declaration if a declaration by that name is already present in the same rule block. So with this release, esbuild will now avoid doing this:
This can result in a visual difference in certain cases (for example if the browser understands
blur(30px)but notblur(45px), it will be able to fall back toblur(30px)). But this change means esbuild now matches the behavior of Autoprefixer which is probably a good representation of how people expect this feature to work.v0.18.18Fix asset references with the
--line-limitflag (#3286)The recently-released
--line-limitflag tells esbuild to terminate long lines after they pass this length limit. This includes automatically wrapping long strings across multiple lines using escaped newline syntax. However, using this could cause esbuild to generate incorrect code for references from generated output files to assets in the bundle (i.e. files loaded with thefileorcopyloaders). This is because esbuild implements asset references internally using find-and-replace with a randomly-generated string, but the find operation fails if the string is split by an escaped newline due to line wrapping. This release fixes the problem by not wrapping these strings. This issue affected asset references in both JS and CSS files.Support local names in CSS for
@keyframe,@counter-style, and@container(#20)This release extends support for local names in CSS files loaded with the
local-cssloader to cover the@keyframe,@counter-style, and@containerrules (and alsoanimation,list-style, andcontainerdeclarations). Here's an example:With the
local-cssloader enabled, that CSS will be turned into something like this (with the local name mapping exposed to JS):If you want to use a global name within a file loaded with the
local-cssloader, you can use a:globalselector to do that:If you want to use
@keyframes,@counter-style, or@containerwith a global name, make sure it's in a file that uses thecssorglobal-cssloader instead of thelocal-cssloader. For example, you can configure--loader:.module.css=local-cssso that thelocal-cssloader only applies to*.module.cssfiles.Support strings as keyframe animation names in CSS (#2555)
With this release, esbuild will now parse animation names that are specified as strings and will convert them to identifiers. The CSS specification allows animation names to be specified using either identifiers or strings but Chrome only understands identifiers, so esbuild will now always convert string names to identifier names for Chrome compatibility:
v0.18.17Compare Source
Support
An+Bsyntax and:nth-*()pseudo-classes in CSSThis adds support for the
:nth-child(),:nth-last-child(),:nth-of-type(), and:nth-last-of-type()pseudo-classes to esbuild, which has the following consequences:An+Bsyntax is now parsed, so parse errors are now reportedAn+Bvalues inside these pseudo-classes are now pretty-printed (e.g. a leading+will be stripped because it's not in the AST)An+Bvalues are reduced to equivalent but shorter forms (e.g.2n+0=>2n,2n+1=>odd)ofclause are now detected (e.g. in:nth-child(2n of :local(.foo))the namefoois now renamed)Adjust CSS nesting parser for IE7 hacks (#3272)
This fixes a regression with esbuild's treatment of IE7 hacks in CSS. CSS nesting allows selectors to be used where declarations are expected. There's an IE7 hack where prefixing a declaration with a
*causes that declaration to only be applied in IE7 due to a bug in IE7's CSS parser. However, it's valid for nested CSS selectors to start with*. So esbuild was incorrectly parsing these declarations and anything following it up until the next{as a selector for a nested CSS rule. This release changes esbuild's parser to terminate the parsing of selectors for nested CSS rules when a;is encountered to fix this edge case:Note that the syntax for CSS nesting is about to change again, so esbuild's CSS parser may still not be completely accurate with how browsers do and/or will interpret CSS nesting syntax. Expect additional updates to esbuild's CSS parser in the future to deal with upcoming CSS specification changes.
Adjust esbuild's warning about undefined imports for TypeScript
importequals declarations (#3271)In JavaScript, accessing a missing property on an import namespace object is supposed to result in a value of
undefinedat run-time instead of an error at compile-time. This is something that esbuild warns you about by default because doing this can indicate a bug with your code. For example:If you bundle
app.jswith esbuild you will get this:However, there is TypeScript-only syntax for
importequals declarations that can represent either a type import (which esbuild should ignore) or a value import (which esbuild should respect). Since esbuild doesn't have a type system, it tries to only respectimportequals declarations that are actually used as values. Previously esbuild always generated this warning for unused imports referenced withinimportequals declarations even when the reference could be a type instead of a value. Starting with this release, esbuild will now only warn in this case if the import is actually used. Here is an example of some code that no longer causes an incorrect warning:Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.