Fix Symbol.metadata on classes without a class decorator (#3781)
This release fixes a bug with esbuild's support for the decorator metadata proposal. Previously esbuild only added the Symbol.metadata property to decorated classes if there was a decorator on the class element itself. However, the proposal says that the Symbol.metadata property should be present on all classes that have any decorators at all, not just those with a decorator on the class element itself.
Allow unknown import attributes to be used with the copy loader (#3792)
Import attributes (the with keyword on import statements) are allowed to alter how that path is loaded. For example, esbuild cannot assume that it knows how to load ./bagel.js as type bagel:
// This is an error with "--bundle" without also using "--external:./bagel.js"
import tasty from "./bagel.js" with { type: "bagel" }
Because of that, bundling this code with esbuild is an error unless the file ./bagel.js is external to the bundle (such as with --bundle --external:./bagel.js).
However, there is an additional case where it's ok for esbuild to allow this: if the file is loaded using the copy loader. That's because the copy loader behaves similarly to --external in that the file is left external to the bundle. The difference is that the copy loader copies the file into the output folder and rewrites the import path while --external doesn't. That means the following will now work with the copy loader (such as with --bundle --loader:.bagel=copy):
// This is no longer an error with "--bundle" and "--loader:.bagel=copy"
import tasty from "./tasty.bagel" with { type: "bagel" }
Support import attributes with glob-style imports (#3797)
This release adds support for import attributes (the with option) to glob-style imports (dynamic imports with certain string literal patterns as paths). These imports previously didn't support import attributes due to an oversight. So code like this will now work correctly:
Previously this didn't work even though esbuild normally supports forcing the JSON loader using an import attribute. Attempting to do this used to result in the following error:
✘ [ERROR] No loader is configured for ".data" files: locales/en-US.data
In addition, this change means plugins can now access the contents of with for glob-style imports.
Support ${configDir} in tsconfig.json files (#3782)
This adds support for a new feature from the upcoming TypeScript 5.5 release. The character sequence ${configDir} is now respected at the start of baseUrl and paths values, which are used by esbuild during bundling to correctly map import paths to file system paths. This feature lets base tsconfig.json files specified via extends refer to the directory of the top-level tsconfig.json file. Here is an example:
Fix Symbol.metadata on classes without a class decorator (#3781)
This release fixes a bug with esbuild's support for the decorator metadata proposal. Previously esbuild only added the Symbol.metadata property to decorated classes if there was a decorator on the class element itself. However, the proposal says that the Symbol.metadata property should be present on all classes that have any decorators at all, not just those with a decorator on the class element itself.
Allow unknown import attributes to be used with the copy loader (#3792)
Import attributes (the with keyword on import statements) are allowed to alter how that path is loaded. For example, esbuild cannot assume that it knows how to load ./bagel.js as type bagel:
// This is an error with "--bundle" without also using "--external:./bagel.js"
import tasty from "./bagel.js" with { type: "bagel" }
Because of that, bundling this code with esbuild is an error unless the file ./bagel.js is external to the bundle (such as with --bundle --external:./bagel.js).
However, there is an additional case where it's ok for esbuild to allow this: if the file is loaded using the copy loader. That's because the copy loader behaves similarly to --external in that the file is left external to the bundle. The difference is that the copy loader copies the file into the output folder and rewrites the import path while --external doesn't. That means the following will now work with the copy loader (such as with --bundle --loader:.bagel=copy):
// This is no longer an error with "--bundle" and "--loader:.bagel=copy"
import tasty from "./tasty.bagel" with { type: "bagel" }
Support import attributes with glob-style imports (#3797)
This release adds support for import attributes (the with option) to glob-style imports (dynamic imports with certain string literal patterns as paths). These imports previously didn't support import attributes due to an oversight. So code like this will now work correctly:
Previously this didn't work even though esbuild normally supports forcing the JSON loader using an import attribute. Attempting to do this used to result in the following error:
✘ [ERROR] No loader is configured for ".data" files: locales/en-US.data
In addition, this change means plugins can now access the contents of with for glob-style imports.
Support ${configDir} in tsconfig.json files (#3782)
This adds support for a new feature from the upcoming TypeScript 5.5 release. The character sequence ${configDir} is now respected at the start of baseUrl and paths values, which are used by esbuild during bundling to correctly map import paths to file system paths. This feature lets base tsconfig.json files specified via extends refer to the directory of the top-level tsconfig.json file. Here is an example:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the npm-dependencies group with 4 updates: esbuild, esbuild-sass-plugin, prettier and stylelint-scss.
Updates
esbuild
from 0.21.4 to 0.21.5Release notes
Sourced from esbuild's releases.
... (truncated)
Changelog
Sourced from esbuild's changelog.
... (truncated)
Commits
fc37c2f
publish 0.21.5 to npmcb11924
fixSymbol.metadata
errors in decorator testsb93a2a9
fix #3781: add metadata to all decorated classes953dae9
fix #3797: import attributes and glob-style import98cb2ed
fix #3782: support${configDir}
in tsconfig.json8e6603b
runmake update-compat-table
db1b8ca
fix #3792: import attributes and thecopy
loaderde572d0
fix non-deterministic import attribute plugin testae8d1b4
fix #3794:--supported:object-accessors=false
Updates
esbuild-sass-plugin
from 3.3.0 to 3.3.1Release notes
Sourced from esbuild-sass-plugin's releases.
Commits
f0e58c9
Update package.json0151ef4
Merge pull request #179 from dungjk/feature/named_exports6dba8bd
style: update coding style to align with source code conventions6abbf37
feat: Add support namedExportse6519ee
Update package.jsonUpdates
prettier
from 3.3.0 to 3.3.1Release notes
Sourced from prettier's releases.
Changelog
Sourced from prettier's changelog.
... (truncated)
Commits
92cbd33
Release 3.3.1446a86e
Update execa to v9efc3d05
Avoid line breaks in import attributes (#16349)4a5b26f
Usewhile (true)
instead offor (;;)
(#16354)1c43973
Only add version to.git-blame-ignore-revs
when files changed (#16352)ab65eb4
chore(deps): update dependency eslint-plugin-react to v7.34.2 (#16353)86268eb
chore(deps): update eslint related dependencies (major) (#16208)ddce4fb
Move import attribute unquote test to a separate directory (#16350)450b178
PrintAtHead
node from glimmer viaprint()
(#16346)b94811f
FixstripTrailingHardline
(#16347)Updates
stylelint-scss
from 6.3.0 to 6.3.1Release notes
Sourced from stylelint-scss's releases.
Changelog
Sourced from stylelint-scss's changelog.
Commits
9cd9e62
6.3.1f0415e0
Prepare version 6.3.182aa0e9
selector-no-redundant-nesting-selector: handle pseudo selectors (#1008)80502d7
operator-no-unspaced: handle Tailwind CSS direct children styling (#1007)192441f
Fix changes from hyphen to underscore in debug message (#1002)a4004cc
build(deps-dev): bump stylelint from 16.5.0 to 16.6.1 (#1006)3d6d2e0
build(deps): bump postcss-selector-parser from 6.0.16 to 6.1.0 (#1005)14756be
build(deps): bump known-css-properties from 0.30.0 to 0.31.0 (#1004)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show