From 4b2eb7a078c5731cc9515f98b802b718342998d4 Mon Sep 17 00:00:00 2001 From: Mohammad Al Faiyaz Date: Fri, 23 Oct 2026 14:43:38 -0400 Subject: [PATCH 1/3] build: align Node support with BitGoJS Refs: WCN-3796 --- .github/scripts/detect-changes.mjs | 26 ++++++++++++++++++++++---- .github/workflows/build-and-test.yaml | 20 ++++++++------------ .github/workflows/publish.yaml | 2 +- .nvmrc | 2 +- package.json | 3 +++ packages/wasm-bip32/package.json | 3 +++ packages/wasm-dot/package.json | 3 +++ packages/wasm-mps/package.json | 3 +++ packages/wasm-solana/package.json | 3 +++ packages/wasm-ton/package.json | 3 +++ packages/wasm-utxo/package.json | 3 +++ packages/webui/package.json | 3 +++ 12 files changed, 56 insertions(+), 18 deletions(-) diff --git a/.github/scripts/detect-changes.mjs b/.github/scripts/detect-changes.mjs index db9d0e358d4..5f4a8aac3a8 100644 --- a/.github/scripts/detect-changes.mjs +++ b/.github/scripts/detect-changes.mjs @@ -3,9 +3,12 @@ import { execSync } from "child_process"; import { appendFileSync } from "fs"; // Per-package matrix entries. Each object becomes one `matrix.include` -// combination in the `test` job. The flags gate steps there: +// combination in the `test` job, and each package fans out across the supported +// Node versions. The flags gate steps there: // - needs-wasm-pack: download the build artifact (wasm .js/.wasm) // - has-wasm-pack-tests: run `npm run test:wasm-pack-{node,chrome}` +// - experimental: allow the Current release line to fail without +// blocking the workflow // Keeping the flags here (instead of a static `include:` block in the // workflow) is what actually lets `detect-changes` shrink the matrix — a // workflow `include:` entry whose `package` conflicts with the base matrix @@ -21,8 +24,23 @@ const PACKAGE_CONFIG = [ { package: "wasm-privacy-coin", "needs-wasm-pack": false, "has-wasm-pack-tests": false }, ]; +const NODE_MATRIX = [ + { "node-version": "22.x", experimental: false }, + { "node-version": "24.x", experimental: false }, + { "node-version": "26.x", experimental: true }, +]; + const ALL_PACKAGES = PACKAGE_CONFIG.map((p) => p.package); +function expand(entries) { + return entries.flatMap((entry) => + NODE_MATRIX.map((node) => ({ + ...entry, + ...node, + })), + ); +} + function setOutput(entries) { const value = JSON.stringify(entries); appendFileSync(process.env.GITHUB_OUTPUT, `packages=${value}\n`); @@ -36,7 +54,7 @@ function entriesFor(pkgs) { // Non-PR events (push to master, workflow_dispatch): run everything if (process.env.GITHUB_EVENT_NAME !== "pull_request") { - setOutput(PACKAGE_CONFIG); + setOutput(expand(PACKAGE_CONFIG)); process.exit(0); } @@ -54,7 +72,7 @@ const sharedChanged = changedFiles.some((f) => /^(\.github\/|package\.json$|lerna\.json$|package-lock\.json$)/.test(f), ); if (sharedChanged) { - setOutput(PACKAGE_CONFIG); + setOutput(expand(PACKAGE_CONFIG)); process.exit(0); } @@ -62,4 +80,4 @@ if (sharedChanged) { const changed = ALL_PACKAGES.filter((pkg) => changedFiles.some((f) => f.startsWith(`packages/${pkg}/`)), ); -setOutput(changed.length > 0 ? entriesFor(changed) : PACKAGE_CONFIG); +setOutput(expand(changed.length > 0 ? entriesFor(changed) : PACKAGE_CONFIG)); diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index 3d0e9167116..b94b1cdf586 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -14,7 +14,6 @@ on: env: RUST_TOOLCHAIN: nightly-2025-10-23 - NODE_VERSION: 20 NPM_VERSION: 11.5.1 WASM_PACK_VERSION: 0.14.0 WASM_OPT_VERSION: 0.116.1 @@ -70,7 +69,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: ${{ env.NODE_VERSION }} + node-version-file: .nvmrc - name: Install npm and wasm tools run: | @@ -149,19 +148,15 @@ jobs: path: packages/webui/dist test: - name: "Test ${{ matrix.package }}" + name: "Test ${{ matrix.package }} @ node ${{ matrix.node-version }}" needs: [detect-changes, build] runs-on: ubuntu-latest + continue-on-error: ${{ matrix.experimental }} strategy: fail-fast: false matrix: - # `detect-changes` emits an array of objects - # [{package, needs-wasm-pack, has-wasm-pack-tests}, ...] filtered to - # changed packages. Using `include:` here (not a static list keyed on - # `package`) is what makes the matrix actually shrink: a workflow - # `include:` entry whose `package` conflicts with the base matrix - # spawns a NEW job instead of being filtered, which previously - # re-added every package on every PR. + # `detect-changes` emits an array of objects with package + node-version. + # Each object becomes one matrix row. include: ${{ fromJson(needs.detect-changes.outputs.packages) }} steps: - uses: actions/checkout@v4 @@ -184,7 +179,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: ${{ env.NODE_VERSION }} + node-version: ${{ matrix.node-version }} - name: Install npm run: npm install -g npm@${{ env.NPM_VERSION }} @@ -257,7 +252,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: ${{ env.NODE_VERSION }} + node-version-file: .nvmrc - name: Install npm run: npm install -g npm@${{ env.NPM_VERSION }} @@ -335,6 +330,7 @@ jobs: # This job provides a stable "test / Test" status check for branch protection. # It runs after all other jobs complete successfully. + gate: name: "Test" needs: [build, test, finalize] diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 6a7ae5eb1a1..8eae4622a20 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -70,7 +70,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: 24.11.0 + node-version-file: .nvmrc registry-url: https://registry.npmjs.org - name: Ensure npm 11.5.1 diff --git a/.nvmrc b/.nvmrc index 1b90e2151dc..07fcedb931e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1,2 +1,2 @@ -24.11.0 +24.22.1 diff --git a/package.json b/package.json index 728fe19a0c9..b70058a22a7 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM.git" }, "license": "Apache-2.0", + "engines": { + "node": ">=22" + }, "scripts": { "check-fmt": "npm run --workspaces check-fmt", "prepare": "husky" diff --git a/packages/wasm-bip32/package.json b/packages/wasm-bip32/package.json index 6f1fb96f859..d6aa283e4ce 100644 --- a/packages/wasm-bip32/package.json +++ b/packages/wasm-bip32/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM" }, "license": "MIT", + "engines": { + "node": ">=22" + }, "files": [ "dist/esm/js/**/*", "dist/cjs/js/**/*", diff --git a/packages/wasm-dot/package.json b/packages/wasm-dot/package.json index 406af7e4838..5018b7dc8ee 100644 --- a/packages/wasm-dot/package.json +++ b/packages/wasm-dot/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM" }, "license": "MIT", + "engines": { + "node": ">=22" + }, "files": [ "dist/esm/js/**/*", "dist/cjs/js/**/*", diff --git a/packages/wasm-mps/package.json b/packages/wasm-mps/package.json index cf1918f9e32..0263de96ef5 100644 --- a/packages/wasm-mps/package.json +++ b/packages/wasm-mps/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM" }, "license": "MIT", + "engines": { + "node": ">=22" + }, "files": [ "dist/esm/js/**/*", "dist/cjs/js/**/*", diff --git a/packages/wasm-solana/package.json b/packages/wasm-solana/package.json index ff9f91ca2fb..17f2aeb7e77 100644 --- a/packages/wasm-solana/package.json +++ b/packages/wasm-solana/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM" }, "license": "MIT", + "engines": { + "node": ">=22" + }, "files": [ "dist/esm/js/**/*", "dist/cjs/js/**/*", diff --git a/packages/wasm-ton/package.json b/packages/wasm-ton/package.json index 5fca6ff63f5..a95227608eb 100644 --- a/packages/wasm-ton/package.json +++ b/packages/wasm-ton/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM" }, "license": "MIT", + "engines": { + "node": ">=22" + }, "files": [ "dist/esm/js/**/*", "dist/cjs/js/**/*", diff --git a/packages/wasm-utxo/package.json b/packages/wasm-utxo/package.json index 1c3b94a8a35..8d12991e685 100644 --- a/packages/wasm-utxo/package.json +++ b/packages/wasm-utxo/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM" }, "license": "MIT", + "engines": { + "node": ">=22" + }, "files": [ "dist/esm/js/**/*", "dist/cjs/js/**/*", diff --git a/packages/webui/package.json b/packages/webui/package.json index 33dd312e4ff..aa060db1ae8 100644 --- a/packages/webui/package.json +++ b/packages/webui/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/BitGo/BitGoWASM.git" }, "license": "MIT", + "engines": { + "node": ">=22" + }, "author": "BitGo Inc.", "main": "./dist/src/index.js", "private": true, From 79271bdf9edcedae6b90955a4657ef8619060948 Mon Sep 17 00:00:00 2001 From: Mohammad Al Faiyaz Date: Fri, 23 Oct 2026 15:10:17 -0400 Subject: [PATCH 2/3] fix: update vulnerable ctutils dependency Refs: WCN-3796 --- packages/wasm-utxo/Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/wasm-utxo/Cargo.lock b/packages/wasm-utxo/Cargo.lock index edff78a4e1d..0b305931ff2 100644 --- a/packages/wasm-utxo/Cargo.lock +++ b/packages/wasm-utxo/Cargo.lock @@ -840,9 +840,9 @@ dependencies = [ [[package]] name = "ctutils" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03bb0e1cc970d482d121d9a1744999169b69a07470b3d644a7894e53fcaf4574" +checksum = "12218662ccac37d9714f2191252553d67585b97df8c839cbe49e0bde278dc865" dependencies = [ "cmov", ] From cdf4a27f032983ae8b54aa395d15032eae32441f Mon Sep 17 00:00:00 2001 From: Mohammad Al Faiyaz Date: Mon, 26 Oct 2026 15:44:44 -0400 Subject: [PATCH 3/3] test: upgrade Mocha for Node 26 Refs: WCN-3796 --- package-lock.json | 348 +++++++++++++----------------- packages/wasm-bip32/package.json | 2 +- packages/wasm-dot/package.json | 2 +- packages/wasm-mps/package.json | 2 +- packages/wasm-solana/package.json | 2 +- packages/wasm-ton/package.json | 2 +- packages/wasm-utxo/package.json | 2 +- 7 files changed, 160 insertions(+), 200 deletions(-) diff --git a/package-lock.json b/package-lock.json index d961a26fb5a..11f8271aea2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,9 @@ "multi-semantic-release": "3.1.0", "prettier": "^3.3.2", "semantic-release": "^25.0.0" + }, + "engines": { + "node": ">=22" } }, "node_modules/@actions/core": { @@ -6551,19 +6554,6 @@ "tslib": "^2.0.3" } }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", @@ -7665,19 +7655,6 @@ } } }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/decamelize-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", @@ -7854,6 +7831,16 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "node_modules/diff": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -11091,6 +11078,19 @@ "node": ">=8" } }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -13050,169 +13050,163 @@ } }, "node_modules/mocha": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.6.0.tgz", - "integrity": "sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-12.0.3.tgz", + "integrity": "sha512-beammieDdiWdkjANWeWPpkxUROYGi5FN88fPOkLiticz7HTg3Y+Pho3EYE6SUdcuWnZ3h2WD8EXCA55JF4o6wg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-colors": "^4.1.3", "browser-stdout": "^1.3.1", - "chokidar": "^3.5.3", + "chokidar": "^5.0.0", "debug": "^4.3.5", - "diff": "^5.2.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^8.1.0", - "he": "^1.2.0", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^5.1.6", + "diff": "^9.0.0", + "find-up-simple": "^1.0.1", + "glob": "^13.0.0", + "is-path-inside": "^4.0.0", + "is-unicode-supported": "^0.1.0", + "js-yaml": "^5.0.0", + "minimatch": "^10.2.2", "ms": "^2.1.3", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", + "picocolors": "^1.1.1", + "serialize-javascript": "^7.1.1", + "strip-json-comments": "^5.0.3", "supports-color": "^8.1.1", - "workerpool": "^6.5.1", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9", - "yargs-unparser": "^2.0.0" + "workerpool": "^10.0.0" }, "bin": { - "_mocha": "bin/_mocha", "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 14.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "node_modules/mocha/node_modules/argparse": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.4.tgz", + "integrity": "sha512-fwWK3Zq22l4XJJjx5mcBHGikIk+hJqO+32dPm0Jur7+rtG5x1scOjSfdT9ZKeWHPpsya/l0HHK4tDImBkTrtvA==", "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "PSF-2.0" }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/mocha/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "18 || 20 || >=22" } }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/mocha/node_modules/brace-expansion": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "20 || >=22" } }, - "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "node_modules/mocha/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "readdirp": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">= 20.19.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/mocha/node_modules/js-yaml": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.5.0.tgz", + "integrity": "sha512-paNr4LFIFPjeeSmwNYdrb8FafLLG/Cr2Af3GjbsHJ5CxIjH4r0c2emlmRdAtpPAieP1gRVzk6buBbVP5gBMGAg==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" + "argparse": "^3.0.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.mjs" } }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.8" }, "engines": { - "node": ">=10" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/mocha/node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "dev": true, "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, "engines": { - "node": ">=10" + "node": ">= 20.19.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/mocha/node_modules/serialize-javascript": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.1.4.tgz", + "integrity": "sha512-FqlEuoTq/zRmA4Lg6aOqyH3lCHbUtCB0bmHCeFniX2GBdDqMJM3FwdvEhlE5Pim1dlt2FfBdVPmUNNiGhhKqpw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/mocha/node_modules/strip-json-comments": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz", + "integrity": "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==", "dev": true, "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13234,35 +13228,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -22072,9 +22037,9 @@ "license": "MIT" }, "node_modules/workerpool": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", - "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-10.0.3.tgz", + "integrity": "sha512-6z2Iis68Wqth93/G/wJP9u+R3O+d2XTlgWChGCwuT1qLbBsOYueGRZuJ++v3mtDP5KjYdy+WzvWC+VWETSVXJA==", "dev": true, "license": "Apache-2.0" }, @@ -22223,32 +22188,6 @@ "node": ">=12" } }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -22296,9 +22235,12 @@ "@bitgo/utxo-lib": "^11.2.0", "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3" + }, + "engines": { + "node": ">=22" } }, "packages/wasm-bip32/node_modules/@bitgo/utxo-lib": { @@ -22358,10 +22300,13 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2" + }, + "engines": { + "node": ">=22" } }, "packages/wasm-mps": { @@ -22370,9 +22315,12 @@ "license": "MIT", "devDependencies": { "libsodium-wrappers-sumo": "0.8.2", - "mocha": "10.6.0", + "mocha": "12.0.3", "tsx": "4.20.6", "typescript": "5.5.3" + }, + "engines": { + "node": ">=22" } }, "packages/wasm-mps/node_modules/typescript": { @@ -22402,10 +22350,13 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2" + }, + "engines": { + "node": ">=22" } }, "packages/wasm-ton": { @@ -22417,10 +22368,13 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2" + }, + "engines": { + "node": ">=22" } }, "packages/wasm-utxo": { @@ -22434,10 +22388,13 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2" + }, + "engines": { + "node": ">=22" } }, "packages/webui": { @@ -22463,6 +22420,9 @@ "webpack": "^5.94.0", "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.2.6" + }, + "engines": { + "node": ">=22" } } } diff --git a/packages/wasm-bip32/package.json b/packages/wasm-bip32/package.json index d6aa283e4ce..e1474b0cf1f 100644 --- a/packages/wasm-bip32/package.json +++ b/packages/wasm-bip32/package.json @@ -51,7 +51,7 @@ "@bitgo/utxo-lib": "^11.2.0", "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3" }, diff --git a/packages/wasm-dot/package.json b/packages/wasm-dot/package.json index 5018b7dc8ee..0ed19d2c938 100644 --- a/packages/wasm-dot/package.json +++ b/packages/wasm-dot/package.json @@ -57,7 +57,7 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2" diff --git a/packages/wasm-mps/package.json b/packages/wasm-mps/package.json index 0263de96ef5..49fc2c8b9dc 100644 --- a/packages/wasm-mps/package.json +++ b/packages/wasm-mps/package.json @@ -61,7 +61,7 @@ }, "devDependencies": { "libsodium-wrappers-sumo": "0.8.2", - "mocha": "10.6.0", + "mocha": "12.0.3", "tsx": "4.20.6", "typescript": "5.5.3" }, diff --git a/packages/wasm-solana/package.json b/packages/wasm-solana/package.json index 17f2aeb7e77..328c4f9c97c 100644 --- a/packages/wasm-solana/package.json +++ b/packages/wasm-solana/package.json @@ -53,7 +53,7 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2" diff --git a/packages/wasm-ton/package.json b/packages/wasm-ton/package.json index a95227608eb..40638fc8eea 100644 --- a/packages/wasm-ton/package.json +++ b/packages/wasm-ton/package.json @@ -53,7 +53,7 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2" diff --git a/packages/wasm-utxo/package.json b/packages/wasm-utxo/package.json index 8d12991e685..d10a3256205 100644 --- a/packages/wasm-utxo/package.json +++ b/packages/wasm-utxo/package.json @@ -99,7 +99,7 @@ "@types/mocha": "^10.0.7", "@types/node": "^22.10.5", "eslint": "^9.17.0", - "mocha": "^10.6.0", + "mocha": "^12.0.3", "tsx": "4.20.6", "typescript": "^5.5.3", "typescript-eslint": "^8.18.2"