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

Build: connect plugins support esm #16729

Merged
merged 4 commits into from
Jan 31, 2025
Merged

Conversation

karliatto
Copy link
Member

@karliatto karliatto commented Jan 30, 2025

Description

Add esm support to connect plugins.

  • Using the field "exports" in package.json to define the entry points of the libraries. While keeping the previous publishConfig for bundlers that do not support exports. Using exports give us control over the entry points that are accessible they the developers using this packages, making it more clear in the future if we change somehting in source we can be safe since they only will use whatever entrypoints we define there.
  • The packages are including a new libESM that will be publish to NPM.

Related Issue

Resolve #16245

@karliatto karliatto force-pushed the build/connect-plugins-support-esm branch from 59214b8 to 71f5ac4 Compare January 30, 2025 14:53
Copy link

coderabbitai bot commented Jan 30, 2025

Walkthrough

The pull request introduces comprehensive changes to support ESM (ECMAScript Module) imports across multiple packages. The modifications include creating new ESM-specific build configurations, updating package.json files to include ESM export paths, and modifying build scripts to generate both CommonJS and ESM versions of packages. The changes span several packages including connect-plugin-ethereum, connect-plugin-stellar, and utils, with corresponding updates to build scripts, TypeScript configurations, and ignore files.

Assessment against linked issues

Objective Addressed Explanation
Support ESM import of @metamask/eth-sig-util [#16245]

Suggested reviewers

  • Nodonisko

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Comment on lines +25 to +33
"exports": {
"node": "./lib/index.js",
"default": "./libESM/index.js"
},
Copy link
Member Author

@karliatto karliatto Jan 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@karliatto karliatto force-pushed the build/connect-plugins-support-esm branch from 71f5ac4 to eca775a Compare January 30, 2025 14:58
@karliatto karliatto added the no-project This label is used to specify that PR doesn't need to be added to a project label Jan 30, 2025
@karliatto karliatto force-pushed the build/connect-plugins-support-esm branch 2 times, most recently from b579921 to cbab16e Compare January 30, 2025 16:00
@karliatto karliatto changed the title WIP: Build: connect plugins support esm Build: connect plugins support esm Jan 30, 2025
@karliatto karliatto marked this pull request as ready for review January 30, 2025 16:04
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
scripts/replace-imports.sh (1)

40-45: Consider adding input validation.

The script could benefit from validating the directory argument and checking if it exists.

Add this validation after setting variables:

 else
     LIB_TYPE="lib"
 fi
+
+# Validate directory argument
+if [ -z "$1" ]; then
+    echo "Error: Directory argument is required"
+    exit 1
+fi
+
+if [ ! -d "$1" ]; then
+    echo "Error: Directory '$1' does not exist"
+    exit 1
+fi

Also applies to: 48-53

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b96c899 and cbab16e.

📒 Files selected for processing (13)
  • .easignore (1 hunks)
  • .gitignore (1 hunks)
  • .nxignore (1 hunks)
  • .prettierignore (1 hunks)
  • packages/connect-plugin-ethereum/package.json (2 hunks)
  • packages/connect-plugin-ethereum/tsconfig.libESM.json (1 hunks)
  • packages/connect-plugin-stellar/package.json (2 hunks)
  • packages/connect-plugin-stellar/tsconfig.libESM.json (1 hunks)
  • packages/utils/package.json (1 hunks)
  • packages/utils/tsconfig.libESM.json (1 hunks)
  • scripts/replace-imports.sh (1 hunks)
  • tsconfig.base.json (1 hunks)
  • tsconfig.lib.json (1 hunks)
✅ Files skipped from review due to trivial changes (5)
  • .easignore
  • tsconfig.base.json
  • packages/connect-plugin-stellar/tsconfig.libESM.json
  • packages/utils/tsconfig.libESM.json
  • packages/connect-plugin-ethereum/tsconfig.libESM.json
⏰ Context from checks skipped due to timeout of 90000ms (20)
  • GitHub Check: e2e-test-suite-web (@group=wallet, trezor-user-env-unix bitcoin-regtest)
  • GitHub Check: e2e-test-suite-web (@group=other, trezor-user-env-unix)
  • GitHub Check: e2e-test-suite-web (@group=metadata, trezor-user-env-unix)
  • GitHub Check: e2e-test-suite-web (@group=settings, trezor-user-env-unix)
  • GitHub Check: e2e-test-suite-web (@group=device-management, trezor-user-env-unix)
  • GitHub Check: e2e-test-suite-web (@group=suite, trezor-user-env-unix)
  • GitHub Check: e2e-test-suite-web (@group_wallet, trezor-user-env-unix bitcoin-regtest, 1)
  • GitHub Check: e2e-test-suite-web (@group_other, trezor-user-env-unix, 1)
  • GitHub Check: e2e-test-suite-web (@group_passphrase, trezor-user-env-unix, 1)
  • GitHub Check: e2e-test-suite-web (@group_device-management, trezor-user-env-unix, 1)
  • GitHub Check: e2e-test-suite-web (@group_suite, trezor-user-env-unix, 1)
  • GitHub Check: PR-check / node-authorizeCoinjoin cancelCoinjoinAuthorization passphrase unlockPath setBusy checkFirmwareAuthenticity keepSession cancel.test info.test resetDevice-api
  • GitHub Check: PR-check / web-authorizeCoinjoin cancelCoinjoinAuthorization passphrase unlockPath setBusy checkFirmwareAuthenticity keepSession cancel.test info.test resetDevice-api
  • GitHub Check: run-desktop-tests (@group=wallet, trezor-user-env-unix bitcoin-regtest)
  • GitHub Check: run-desktop-tests (@group=other, trezor-user-env-unix)
  • GitHub Check: run-desktop-tests (@group=settings, trezor-user-env-unix bitcoin-regtest)
  • GitHub Check: run-desktop-tests (@group=device-management, trezor-user-env-unix)
  • GitHub Check: run-desktop-tests (@group=suite, trezor-user-env-unix)
  • GitHub Check: Analyze with CodeQL (javascript)
  • GitHub Check: test
🔇 Additional comments (13)
.nxignore (1)

58-58: LGTM! Consistent with ESM build setup.

The addition of libESM to .nxignore aligns with the ESM support implementation and matches similar changes in other ignore files.

tsconfig.lib.json (1)

18-18: LGTM! Appropriate TypeScript configuration for dual-format builds.

The exclusion of libESM directory is correct for the CommonJS build configuration, ensuring clean separation between CJS and ESM builds.

packages/connect-plugin-ethereum/package.json (2)

29-32: LGTM! Well-structured exports configuration.

The exports field correctly implements conditional exports, providing both CommonJS and ESM versions while maintaining backward compatibility.


43-45: Verify the replace-imports script handles ESM paths correctly.

The build scripts look good, but we should ensure the replace-imports.sh script properly handles the new libESM parameter.

✅ Verification successful

The replace-imports script correctly handles ESM paths

The script has explicit support for ESM paths through its second parameter and properly transforms imports using different patterns for ESM (@trezor/pkg/libESM) and CJS (@trezor/pkg/lib). The package.json is correctly configured to use this functionality.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if replace-imports.sh handles ESM paths correctly
cat ../../scripts/replace-imports.sh

Length of output: 103


Script:

#!/bin/bash
# Find replace-imports.sh file in the repository
fd "replace-imports.sh"

Length of output: 50


Script:

#!/bin/bash
# Examine the replace-imports script contents
cat scripts/replace-imports.sh

Length of output: 2083

packages/utils/package.json (2)

23-24: LGTM! Good package optimization.

The files array is well configured:

  • Excludes map files to optimize package size
  • Includes libESM for ESM support

29-31: LGTM! Consistent build configuration.

The build scripts maintain consistency with other packages in the monorepo, properly separating CJS and ESM builds.

packages/connect-plugin-stellar/package.json (3)

25-28: LGTM! Exports field follows Node.js dual package hazard recommendations.

The exports field correctly defines separate entry points for Node.js (CJS) and ESM environments, following best practices for dual package support.


30-31: LGTM! Files array includes both build outputs.

Including both lib/ and libESM ensures that both CJS and ESM builds are published.


48-50: LGTM! Build scripts properly handle both CJS and ESM builds.

The build process is correctly split into CJS and ESM builds, maintaining backward compatibility while adding ESM support.

.gitignore (1)

52-52: LGTM! Build output directory properly ignored.

The libESM directory is correctly added to .gitignore alongside other build outputs.

.prettierignore (1)

55-55: LGTM! Build output directory properly excluded from formatting.

The libESM directory is correctly added to .prettierignore alongside other build outputs.

scripts/replace-imports.sh (2)

5-19: LGTM! Clear and comprehensive usage documentation.

The added documentation clearly explains the script's usage, arguments, and provides helpful examples.


20-32: LGTM! Clean implementation of library type handling.

The script properly handles both CJS and ESM paths through a configurable library type parameter.

scripts/replace-imports.sh Outdated Show resolved Hide resolved
@karliatto karliatto force-pushed the build/connect-plugins-support-esm branch from cbab16e to 5defd33 Compare January 30, 2025 16:13
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (3)
packages/utils/package.json (1)

23-24: Consider excluding source maps for libESM.

The !**/*.map exclusion is added before libESM, which means it only applies to files before that entry. To ensure source maps are also excluded from the ESM build, consider moving the exclusion after libESM.

     "files": [
         "lib/",
-        "!**/*.map",
-        "libESM"
+        "libESM",
+        "!**/*.map"
     ],
packages/connect-plugin-stellar/package.json (1)

30-31: Consider excluding source maps consistently.

Similar to the utils package, consider adding the source maps exclusion to ensure consistency across packages.

     "files": [
         "lib/",
-        "libESM"
+        "libESM",
+        "!**/*.map"
     ],
packages/connect-plugin-ethereum/package.json (1)

26-27: Add trailing slash for consistency.

The files array has inconsistent trailing slashes. Add a trailing slash to libESM to match the format of lib/.

    "files": [
        "lib/",
-        "libESM"
+        "libESM/"
    ],
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cbab16e and 5defd33.

📒 Files selected for processing (13)
  • .easignore (1 hunks)
  • .gitignore (1 hunks)
  • .nxignore (1 hunks)
  • .prettierignore (1 hunks)
  • packages/connect-plugin-ethereum/package.json (2 hunks)
  • packages/connect-plugin-ethereum/tsconfig.libESM.json (1 hunks)
  • packages/connect-plugin-stellar/package.json (2 hunks)
  • packages/connect-plugin-stellar/tsconfig.libESM.json (1 hunks)
  • packages/utils/package.json (1 hunks)
  • packages/utils/tsconfig.libESM.json (1 hunks)
  • scripts/replace-imports.sh (1 hunks)
  • tsconfig.base.json (1 hunks)
  • tsconfig.lib.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (9)
  • packages/utils/tsconfig.libESM.json
  • tsconfig.base.json
  • packages/connect-plugin-ethereum/tsconfig.libESM.json
  • tsconfig.lib.json
  • .gitignore
  • .easignore
  • packages/connect-plugin-stellar/tsconfig.libESM.json
  • .prettierignore
  • .nxignore
⏰ Context from checks skipped due to timeout of 90000ms (12)
  • GitHub Check: build-web
  • GitHub Check: build-web
  • GitHub Check: run-desktop-tests (@group=wallet, trezor-user-env-unix bitcoin-regtest)
  • GitHub Check: run-desktop-tests (@group=other, trezor-user-env-unix)
  • GitHub Check: run-desktop-tests (@group=settings, trezor-user-env-unix bitcoin-regtest)
  • GitHub Check: run-desktop-tests (@group=device-management, trezor-user-env-unix)
  • GitHub Check: run-desktop-tests (@group=suite, trezor-user-env-unix)
  • GitHub Check: build-deploy
  • GitHub Check: transport-e2e-test
  • GitHub Check: Setup and Cache Dependencies
  • GitHub Check: Analyze with CodeQL (javascript)
  • GitHub Check: test
🔇 Additional comments (9)
packages/utils/package.json (1)

29-31: LGTM! Build scripts properly handle both CJS and ESM formats.

The build process is well-structured:

  1. Cleans output directories
  2. Builds using format-specific tsconfig
  3. Processes imports appropriately
packages/connect-plugin-stellar/package.json (2)

25-28: LGTM! Export configuration properly handles dual package hazard.

The exports field correctly defines separate entry points for Node.js and ESM consumers while maintaining backward compatibility through publishConfig.


48-50: LGTM! Build scripts match the utils package structure.

The build process follows the same well-structured approach as the utils package.

scripts/replace-imports.sh (4)

5-19: LGTM! Well-documented usage instructions.

The documentation clearly explains the script's purpose, arguments, and provides helpful examples.


20-25: LGTM! Proper argument handling with sensible defaults.

The script correctly handles the optional lib-type argument with a default value of "lib".


27-32: LGTM! Dynamic regex properly handles both formats.

The regex is correctly adjusted based on the lib-type argument to handle both CJS and ESM paths.


Line range hint 1-53: Fix undefined LOG_FILE variable.

The script uses LOG_FILE for logging changed files, but this variable is not defined.

Add this line after the shebang:

 #!/usr/bin/env bash
+LOG_FILE="replace-imports.log"
 
 set -euxo pipefail
packages/connect-plugin-ethereum/package.json (2)

29-32: LGTM! Exports field follows recommended pattern.

The exports field correctly implements the dual package pattern, providing both CommonJS and ESM entry points. This aligns with webpack's documentation on package exports.

Let's verify the TypeScript configurations referenced in the build scripts:

✅ Verification successful

Dual package pattern implementation verified successfully

The package correctly implements the dual package pattern with proper TypeScript configurations for both CommonJS (tsconfig.lib.json) and ESM (tsconfig.libESM.json) builds. This pattern is consistently implemented across multiple packages in the repository.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify TypeScript configurations for both CJS and ESM builds

# Check if both tsconfig files exist and their module settings
echo "Checking TypeScript configurations..."
for config in tsconfig.lib.json tsconfig.libESM.json; do
  if [ -f "$config" ]; then
    echo "Found $config:"
    cat "$config" | grep -A 5 '"compilerOptions":'
  else
    echo "Missing $config"
  fi
done

Length of output: 590


Script:

#!/bin/bash
# Check build configuration and output files

echo "=== Package.json Build Scripts ==="
cat package.json | jq '.scripts'

echo -e "\n=== Checking Output Directories ==="
ls -la lib/ libESM/ 2>/dev/null || echo "Output directories not found"

echo -e "\n=== Looking for Alternative TypeScript Configs ==="
fd -e json -e jsonc . | grep -i "tsconfig"

Length of output: 11845


43-45: Verify the replace-imports script behavior.

The build scripts use a replace-imports.sh script with different parameters for CJS and ESM builds. Let's understand its purpose and verify its implementation.

✅ Verification successful

The replace-imports script implementation is correct and robust

The script properly handles both CJS and ESM builds by replacing @trezor/*/src imports with the appropriate lib paths. It includes error handling, cross-platform support, and verification steps to ensure all replacements are successful.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check the replace-imports script implementation

echo "Checking replace-imports.sh script:"
cat ../../scripts/replace-imports.sh

echo -e "\nChecking if the script handles both CJS and ESM cases:"
ls -la ../../scripts/replace-imports.sh

Length of output: 431


Script:

#!/bin/bash
# Search for replace-imports.sh in the repository
echo "Searching for replace-imports.sh:"
fd "replace-imports.sh"

# Try searching in common script locations
echo -e "\nChecking common script locations:"
ls -la ./scripts/replace-imports.sh 2>/dev/null || echo "Not in ./scripts/"
ls -la ./tools/scripts/replace-imports.sh 2>/dev/null || echo "Not in ./tools/scripts/"

Length of output: 427


Script:

#!/bin/bash
# Examine the replace-imports script contents
echo "Content of replace-imports.sh:"
cat ./scripts/replace-imports.sh

# Check for related configuration files
echo -e "\nChecking for related configuration files:"
fd -e json "tsconfig" --max-depth 2

Length of output: 2036

Copy link
Contributor

@mroz22 mroz22 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good to me, I didn't run any deep investigation but I feel quite confident to test it in a canary release.

"extends": "./tsconfig.lib.json",
"compilerOptions": {
"outDir": "libESM",
"module": "ESNext"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am thinking that it might be good time to also target to esnext too, because there is no reason we should transpile to older es version

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@karliatto karliatto force-pushed the build/connect-plugins-support-esm branch 2 times, most recently from 699cb7e to 10fd34f Compare January 31, 2025 10:43
@karliatto karliatto force-pushed the build/connect-plugins-support-esm branch from 10fd34f to 75aa117 Compare January 31, 2025 11:18
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/connect-plugin-stellar/package.json (1)

30-32: Add trailing slash to libESM for consistency.

For consistency with the lib/ entry, consider adding a trailing slash to the libESM entry.

     "files": [
         "lib/",
-        "libESM",
+        "libESM/",
         "!**/*.map"
     ],
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10fd34f and 75aa117.

📒 Files selected for processing (6)
  • packages/connect-plugin-ethereum/package.json (2 hunks)
  • packages/connect-plugin-ethereum/tsconfig.libESM.json (1 hunks)
  • packages/connect-plugin-stellar/package.json (2 hunks)
  • packages/connect-plugin-stellar/tsconfig.libESM.json (1 hunks)
  • packages/utils/package.json (1 hunks)
  • packages/utils/tsconfig.libESM.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
  • packages/utils/tsconfig.libESM.json
  • packages/connect-plugin-ethereum/tsconfig.libESM.json
  • packages/connect-plugin-ethereum/package.json
  • packages/connect-plugin-stellar/tsconfig.libESM.json
  • packages/utils/package.json
⏰ Context from checks skipped due to timeout of 90000ms (17)
  • GitHub Check: PR-check / node-authorizeCoinjoin cancelCoinjoinAuthorization passphrase unlockPath setBusy checkFirmwareAuthenticity keepSession cancel.test info.test resetDevice-api
  • GitHub Check: PR-check / node-override init-api-flaky
  • GitHub Check: PR-check / web-override init-api-flaky
  • GitHub Check: PR-check / web-authorizeCoinjoin cancelCoinjoinAuthorization passphrase unlockPath setBusy checkFirmwareAuthenticity keepSession cancel.test info.test resetDevice-api
  • GitHub Check: build-deploy
  • GitHub Check: run-desktop-tests (@group=wallet, trezor-user-env-unix bitcoin-regtest)
  • GitHub Check: run-desktop-tests (@group=other, trezor-user-env-unix)
  • GitHub Check: run-desktop-tests (@group=settings, trezor-user-env-unix bitcoin-regtest)
  • GitHub Check: run-desktop-tests (@group=device-management, trezor-user-env-unix)
  • GitHub Check: Analyze with CodeQL (javascript)
  • GitHub Check: build-web
  • GitHub Check: run-desktop-tests (@group=suite, trezor-user-env-unix)
  • GitHub Check: transport-e2e-test
  • GitHub Check: build-web
  • GitHub Check: test
  • GitHub Check: Setup and Cache Dependencies
  • GitHub Check: Socket Security: Pull Request Alerts
🔇 Additional comments (2)
packages/connect-plugin-stellar/package.json (2)

25-28: LGTM! Well-structured exports configuration.

The dual entry points for Node.js and ESM are correctly configured, providing clear access patterns for both module systems.


49-51: LGTM! Well-structured build scripts.

The build process is correctly split to handle both CommonJS and ESM formats, with appropriate cleanup and import replacement for each format.

@karliatto karliatto enabled auto-merge (rebase) January 31, 2025 11:30
@karliatto karliatto merged commit bd273e8 into develop Jan 31, 2025
49 checks passed
@karliatto karliatto deleted the build/connect-plugins-support-esm branch January 31, 2025 11:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-project This label is used to specify that PR doesn't need to be added to a project
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support ESM import of @metamask/eth-sig-util in @trezor/connect-plugin-ethereum
3 participants