Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump esbuild from 0.19.5 to 0.19.10 #51

Closed
wants to merge 1 commit into from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 25, 2023

Bumps esbuild from 0.19.5 to 0.19.10.

Release notes

Sourced from esbuild's releases.

v0.19.10

  • Fix glob imports in TypeScript files (#3319)

    This release fixes a problem where bundling a TypeScript file containing a glob import could emit a call to a helper function that doesn't exist. The problem happened because esbuild's TypeScript transformation removes unused imports (which is required for correctness, as they may be type-only imports) and esbuild's glob import transformation wasn't correctly marking the imported helper function as used. This wasn't caught earlier because most of esbuild's glob import tests were written in JavaScript, not in TypeScript.

  • Fix require() glob imports with bundling disabled (#3546)

    Previously require() calls containing glob imports were incorrectly transformed when bundling was disabled. All glob imports should only be transformed when bundling is enabled. This bug has been fixed.

  • Fix a panic when transforming optional chaining with define (#3551, #3554)

    This release fixes a case where esbuild could crash with a panic, which was triggered by using define to replace an expression containing an optional chain. Here is an example:

    // Original code
    console.log(process?.env.SHELL)
    // Old output (with --define:process.env={})
    /* panic: Internal error (while parsing "<stdin>") */
    // New output (with --define:process.env={})
    var define_process_env_default = {};
    console.log(define_process_env_default.SHELL);

    This fix was contributed by @​hi-ogawa.

  • Work around a bug in node's CommonJS export name detector (#3544)

    The export names of a CommonJS module are dynamically-determined at run time because CommonJS exports are properties on a mutable object. But the export names of an ES module are statically-determined at module instantiation time by using import and export syntax and cannot be changed at run time.

    When you import a CommonJS module into an ES module in node, node scans over the source code to attempt to detect the set of export names that the CommonJS module will end up using. That statically-determined set of names is used as the set of names that the ES module is allowed to import at module instantiation time. However, this scan appears to have bugs (or at least, can cause false positives) because it doesn't appear to do any scope analysis. Node will incorrectly consider the module to export something even if the assignment is done to a local variable instead of to the module-level exports object. For example:

    // confuseNode.js
    exports.confuseNode = function(exports) {
      // If this local is called "exports", node incorrectly
      // thinks this file has an export called "notAnExport".
      exports.notAnExport = function() {
      };
    };

    You can see that node incorrectly thinks the file confuseNode.js has an export called notAnExport when that file is loaded in an ES module context:

    $ node -e 'import("./confuseNode.js").then(console.log)'
    [Module: null prototype] {
      confuseNode: [Function (anonymous)],
      default: { confuseNode: [Function (anonymous)] },

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.19.10

  • Fix glob imports in TypeScript files (#3319)

    This release fixes a problem where bundling a TypeScript file containing a glob import could emit a call to a helper function that doesn't exist. The problem happened because esbuild's TypeScript transformation removes unused imports (which is required for correctness, as they may be type-only imports) and esbuild's glob import transformation wasn't correctly marking the imported helper function as used. This wasn't caught earlier because most of esbuild's glob import tests were written in JavaScript, not in TypeScript.

  • Fix require() glob imports with bundling disabled (#3546)

    Previously require() calls containing glob imports were incorrectly transformed when bundling was disabled. All glob imports should only be transformed when bundling is enabled. This bug has been fixed.

  • Fix a panic when transforming optional chaining with define (#3551, #3554)

    This release fixes a case where esbuild could crash with a panic, which was triggered by using define to replace an expression containing an optional chain. Here is an example:

    // Original code
    console.log(process?.env.SHELL)
    // Old output (with --define:process.env={})
    /* panic: Internal error (while parsing "<stdin>") */
    // New output (with --define:process.env={})
    var define_process_env_default = {};
    console.log(define_process_env_default.SHELL);

    This fix was contributed by @​hi-ogawa.

  • Work around a bug in node's CommonJS export name detector (#3544)

    The export names of a CommonJS module are dynamically-determined at run time because CommonJS exports are properties on a mutable object. But the export names of an ES module are statically-determined at module instantiation time by using import and export syntax and cannot be changed at run time.

    When you import a CommonJS module into an ES module in node, node scans over the source code to attempt to detect the set of export names that the CommonJS module will end up using. That statically-determined set of names is used as the set of names that the ES module is allowed to import at module instantiation time. However, this scan appears to have bugs (or at least, can cause false positives) because it doesn't appear to do any scope analysis. Node will incorrectly consider the module to export something even if the assignment is done to a local variable instead of to the module-level exports object. For example:

    // confuseNode.js
    exports.confuseNode = function(exports) {
      // If this local is called "exports", node incorrectly
      // thinks this file has an export called "notAnExport".
      exports.notAnExport = function() {
      };
    };

    You can see that node incorrectly thinks the file confuseNode.js has an export called notAnExport when that file is loaded in an ES module context:

    $ node -e 'import("./confuseNode.js").then(console.log)'
    [Module: null prototype] {
      confuseNode: [Function (anonymous)],

... (truncated)

Commits
  • 55e1127 publish 0.19.10 to npm
  • d968af2 fix #3511: @__NO_SIDE_EFFECTS__ with templates
  • 00c4ebe fix #3546: don't transform require glob imports
  • e1b7050 fix #3319: missing symbol usage in glob transform
  • 461ca73 add the @esbuild/aix-ppc64 package for ibm aix (#3550)
  • 190ca99 truncate a long url in a comment
  • 6c41900 add Safari compat data for arbitrary module namespace names (#3520)
  • f38cbe6 fix #3552: calling stop() now clears go timeouts
  • 7a225ff make a few code edits from some random github bot
  • aa46b2c fix some build script comments
  • Additional commits viewable in compare view

Dependabot compatibility score

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 <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.19.5 to 0.19.10.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.19.5...v0.19.10)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Dec 25, 2023
Copy link

stackblitz bot commented Dec 25, 2023

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

Copy link

Pull Request Review Markdown

Hey there! 👋 Here's a summary of the previous results for the Pull Request review. Let's dive in!

Changes

  1. Updated esbuild dependency from version 0.19.5 to 0.19.10. 🔄

Suggestions

  1. Line 31: Consider adding a comment explaining the purpose of the dependency update. 🤔
  2. Line 32: Remove the unused dependency esbuild-runner. 🗑️
  3. Line 33: Update the eslint dependency to the latest version. 🆙

Bugs

  1. File: pnpm-lock.yaml - Potential bug on line 14. The version of @esbuild/aix-ppc64 is not updated to 0.19.10. 🐛

Improvements

  1. File: package.json - The esbuild dependency can be refactored for better readability by using a variable to store the version number. Example:
const esbuildVersion = '^0.19.10';

const dependencies = {
  // other dependencies
  esbuild: esbuildVersion,
  // other dependencies
};

Rating

Overall rating: 7.5 out of 10. The code is readable, but there are some areas that could be improved. The performance and security aspects seem fine. 🌟

That's it for the summary! Let me know if you need any further assistance. Happy coding! 😄

Copy link
Contributor Author

dependabot bot commented on behalf of github Jan 1, 2024

Superseded by #53.

@dependabot dependabot bot closed this Jan 1, 2024
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/esbuild-0.19.10 branch January 1, 2024 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants