Bump esbuild and tsup
Bumps esbuild to 0.25.8 and updates ancestor dependency tsup. These dependencies need to be updated together.
Updates esbuild from 0.12.29 to 0.25.8
Release notes
Sourced from esbuild's releases.
v0.25.8
Fix another TypeScript parsing edge case (#4248)
This fixes a regression with a change in the previous release that tries to more accurately parse TypeScript arrow functions inside the
?:operator. The regression specifically involves parsing an arrow function containing a#privateidentifier inside the middle of a?:ternary operator inside a class body. This was fixed by propagating private identifier state into the parser clone used to speculatively parse the arrow function body. Here is an example of some affected code:class CachedDict { #has = (a: string) => dict.has(a); has = window ? (word: string): boolean => this.#has(word) : this.#has; }Fix a regression with the parsing of source phase imports
The change in the previous release to parse source phase imports failed to properly handle the following cases:
import source from 'bar' import source from from 'bar' import source type foo from 'bar'Parsing for these cases should now be fixed. The first case was incorrectly treated as a syntax error because esbuild was expecting the second case. And the last case was previously allowed but is now forbidden. TypeScript hasn't added this feature yet so it remains to be seen whether the last case will be allowed, but it's safer to disallow it for now. At least Babel doesn't allow the last case when parsing TypeScript, and Babel was involved with the source phase import specification.
v0.25.7
Parse and print JavaScript imports with an explicit phase (#4238)
This release adds basic syntax support for the
deferandsourceimport phases in JavaScript:
deferThis is a stage 3 proposal for an upcoming JavaScript feature that will provide one way to eagerly load but lazily initialize imported modules. The imported module is automatically initialized on first use. Support for this syntax will also be part of the upcoming release of TypeScript 5.9. The syntax looks like this:
import defer * as foo from "<specifier>"; const bar = await import.defer("<specifier>");Note that this feature deliberately cannot be used with the syntax
import defer foo from "<specifier>"orimport defer { foo } from "<specifier>".
sourceThis is a stage 3 proposal for an upcoming JavaScript feature that will provide another way to eagerly load but lazily initialize imported modules. The imported module is returned in an uninitialized state. Support for this syntax may or may not be a part of TypeScript 5.9 (see this issue for details). The syntax looks like this:
import source foo from "<specifier>"; const bar = await import.source("<specifier>");
... (truncated)
Changelog
Sourced from esbuild's changelog.
Changelog: 2021
This changelog documents all esbuild versions published in the year 2021 (versions 0.8.29 through 0.14.10).
0.14.10
Enable tree shaking of classes with lowered static fields (#175)
If the configured target environment doesn't support static class fields, they are converted into a call to esbuild's
__publicFieldfunction instead. However, esbuild's tree-shaking pass treated this call as a side effect, which meant that all classes with static fields were ineligible for tree shaking. This release fixes the problem by explicitly ignoring calls to the__publicFieldfunction during tree shaking side-effect determination. Tree shaking is now enabled for these classes:// Original code class Foo { static foo = 'foo' } class Bar { static bar = 'bar' } new Bar()// Old output (with --tree-shaking=true --target=es6)
class Foo {
}
__publicField(Foo, "foo", "foo");
class Bar {
}
__publicField(Bar, "bar", "bar");
new Bar();// New output (with --tree-shaking=true --target=es6)
class Bar {
}
__publicField(Bar, "bar", "bar");
new Bar();
Treat
--define:foo=undefinedas an undefined literal instead of an identifier (#1407)References to the global variable
undefinedare automatically replaced with the literal value for undefined, which appears asvoid 0when printed. This allows for additional optimizations such as collapsingundefined ?? barinto justbar. However, this substitution was not done for values specified via--define:. As a result, esbuild could potentially miss out on certain optimizations in these cases. With this release, it's now possible to use--define:to substitute something with an undefined literal:// Original code let win = typeof window !== 'undefined' ? window : {}// Old output (with --define:window=undefined --minify)
let win=typeof undefined!="undefined"?undefined:{};// New output (with --define:window=undefined --minify)
let win={};
Add the
--drop:debuggerflag (#1809)Passing this flag causes all
debugger;statements to be removed from the output. This is similar to thedrop_debugger: trueflag available in the popular UglifyJS and Terser JavaScript minifiers.
... (truncated)
Commits
8c71947publish 0.25.8 to npm0508f24some parsing fixes for source phase imports6e4be2fjs parser: recover from bad#privateidentifiersc9c6357fix #4248:#privateids in arrow fn body in?:9b42f68publish 0.25.7 to npm9ba01d1abs-paths: js api and testsca196c9fix for parser backtracking crash2979b84fix #4241: ts arrow function type backtrack (hack)1180410fix an unused variable warningfc3da57fix #4238: adddeferandsourceimport phases- Additional commits viewable in compare view
Updates tsup from 4.14.0 to 8.5.0
Release notes
Sourced from tsup's releases.
v8.5.0
🚀 Features
- Use
fix-dts-default-cjs-exportsto transform CJS types - by@userquinin egoist/tsup#1310 (c654e)- Allow passing custom swc configuration to swcPlugin - by
@Romakitain egoist/tsup#1313 (fdfd5)🐞 Bug Fixes
- Make
removeNodeProtocolwork withshims- by@aryaemami59(769aa)- CopyPublicDir in watch mode - by
@geeeein egoist/tsup#1331 (7c1e1)View changes on GitHub
v8.4.0
🚀 Features
- Upgrade svelte and css compiler - by
@DaniAcuin egoist/tsup#1288 (c3f32)🐞 Bug Fixes
- Upgrade esbuild to 0.25 - by
@RobinTailin egoist/tsup#1309 (89c47)View changes on GitHub
v8.3.6
🐞 Bug Fixes
- Don't await sub-process of
onSuccess- by@laatin egoist/tsup#1256 (314a6)View changes on GitHub
v8.3.5
🐞 Bug Fixes
- Run
experimentalDtsonly once - by@aryaemami59in egoist/tsup#1236 (fddd4)View changes on GitHub
v8.3.4
No significant changes
View changes on GitHub
v8.3.3
No significant changes
View changes on GitHub
v8.3.1
🚀 Features
... (truncated)
Commits
92ee842chore: release v8.5.07c1e13efix: copyPublicDir in watch mode (#1331)fdfd59afeat: allow passing custom swc configuration to swcPlugin (#1313)769aa49fix: makeremoveNodeProtocolwork withshimsc654e5ffeat: usefix-dts-default-cjs-exportsto transform CJS types (#1310)773d27echore: release v8.4.089c4780fix: upgrade esbuild to 0.25 (#1309)0328fd6chore(deps): update dependency@swc/coreto v1.10.18 (#1243)c3f320efeat: upgrade svelte and css compiler (#1288)22e4860chore: upgrade deps- Additional commits viewable in compare view
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 rebasewill rebase this PR -
@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it -
@dependabot mergewill merge this PR after your CI passes on it -
@dependabot squash and mergewill squash and merge this PR after your CI passes on it -
@dependabot cancel mergewill cancel a previously requested merge and block automerging -
@dependabot reopenwill reopen this PR if it is closed -
@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency -
@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.