diff --git a/.github/codeql-config.yml b/.github/codeql-config.yml
index 0d324d49dc0689..4e81d7e041e68a 100644
--- a/.github/codeql-config.yml
+++ b/.github/codeql-config.yml
@@ -3,3 +3,4 @@ name: CodeQL config
paths-ignore:
- test
- deps/v8/test
+ - deps/v8/tools
diff --git a/.github/workflows/auto-start-ci.yml b/.github/workflows/auto-start-ci.yml
index 97d9c9482b2754..2588bc82da3f66 100644
--- a/.github/workflows/auto-start-ci.yml
+++ b/.github/workflows/auto-start-ci.yml
@@ -50,7 +50,7 @@ jobs:
persist-credentials: false
- name: Install Node.js
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml
index a784b43cfc6268..5fae318569f7d0 100644
--- a/.github/workflows/build-tarball.yml
+++ b/.github/workflows/build-tarball.yml
@@ -46,7 +46,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up sccache
@@ -76,7 +76,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up sccache
diff --git a/.github/workflows/commit-lint.yml b/.github/workflows/commit-lint.yml
index f6273871a8a26b..4cd44c6d18538f 100644
--- a/.github/workflows/commit-lint.yml
+++ b/.github/workflows/commit-lint.yml
@@ -23,7 +23,7 @@ jobs:
persist-credentials: false
- run: git reset HEAD^2
- name: Install Node.js
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Validate commit message
diff --git a/.github/workflows/commit-queue.yml b/.github/workflows/commit-queue.yml
index 556843635dd676..e9e151ba3d287c 100644
--- a/.github/workflows/commit-queue.yml
+++ b/.github/workflows/commit-queue.yml
@@ -72,7 +72,7 @@ jobs:
# Install dependencies
- name: Install Node.js
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install @node-core/utils
diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml
index a1f8f060ddab13..9cefdcff8754d5 100644
--- a/.github/workflows/coverage-linux-without-intl.yml
+++ b/.github/workflows/coverage-linux-without-intl.yml
@@ -52,7 +52,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up sccache
diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml
index 9305d5f02cad6f..bab1d81ed06c71 100644
--- a/.github/workflows/coverage-linux.yml
+++ b/.github/workflows/coverage-linux.yml
@@ -52,7 +52,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up sccache
diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml
index a9e77b91d36b12..d014e5e2ed4afa 100644
--- a/.github/workflows/coverage-windows.yml
+++ b/.github/workflows/coverage-windows.yml
@@ -49,7 +49,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install deps
diff --git a/.github/workflows/create-release-proposal.yml b/.github/workflows/create-release-proposal.yml
index 0ce9a40541c87e..58cf5a0bba55f6 100644
--- a/.github/workflows/create-release-proposal.yml
+++ b/.github/workflows/create-release-proposal.yml
@@ -40,7 +40,7 @@ jobs:
# Install dependencies
- name: Install Node.js
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
diff --git a/.github/workflows/daily-wpt-fyi.yml b/.github/workflows/daily-wpt-fyi.yml
index f8664adb1eb582..3cc6e6c54cd28c 100644
--- a/.github/workflows/daily-wpt-fyi.yml
+++ b/.github/workflows/daily-wpt-fyi.yml
@@ -39,7 +39,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
@@ -51,7 +51,7 @@ jobs:
run: echo "NIGHTLY=$(curl -s https://nodejs.org/download/nightly/index.json | jq -r '[.[] | select(.files[] | contains("linux-x64"))][0].version')" >> $GITHUB_ENV
- name: Install Node.js
id: setup-node
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NIGHTLY || matrix.node-version }}
check-latest: true
diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml
index b6ba485f48f072..ae2b7a577f7b0f 100644
--- a/.github/workflows/daily.yml
+++ b/.github/workflows/daily.yml
@@ -19,7 +19,7 @@ jobs:
with:
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Environment Information
diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml
index c8a80d59e30948..1793edd12ce261 100644
--- a/.github/workflows/doc.yml
+++ b/.github/workflows/doc.yml
@@ -28,7 +28,7 @@ jobs:
with:
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Environment Information
diff --git a/.github/workflows/find-inactive-collaborators.yml b/.github/workflows/find-inactive-collaborators.yml
index 595751b6a455a9..269bc2db172be8 100644
--- a/.github/workflows/find-inactive-collaborators.yml
+++ b/.github/workflows/find-inactive-collaborators.yml
@@ -25,7 +25,7 @@ jobs:
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
diff --git a/.github/workflows/find-inactive-tsc.yml b/.github/workflows/find-inactive-tsc.yml
index e553a5145128c7..9e294994ba8180 100644
--- a/.github/workflows/find-inactive-tsc.yml
+++ b/.github/workflows/find-inactive-tsc.yml
@@ -34,7 +34,7 @@ jobs:
repository: nodejs/TSC
- name: Use Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml
index 1a97aeec9fe5b9..b3db61eca640f7 100644
--- a/.github/workflows/linters.yml
+++ b/.github/workflows/linters.yml
@@ -29,7 +29,7 @@ jobs:
with:
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Environment Information
@@ -44,7 +44,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
@@ -60,11 +60,11 @@ jobs:
fetch-depth: 0
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
@@ -97,7 +97,7 @@ jobs:
with:
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Environment Information
@@ -122,7 +122,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
@@ -139,7 +139,7 @@ jobs:
with:
persist-credentials: false
- name: Use Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
diff --git a/.github/workflows/test-internet.yml b/.github/workflows/test-internet.yml
index 64229dcffc6ed5..7d25113c024f78 100644
--- a/.github/workflows/test-internet.yml
+++ b/.github/workflows/test-internet.yml
@@ -48,7 +48,7 @@ jobs:
with:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Environment Information
diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml
index 2266d0da067cdd..ea4a6a138e21ad 100644
--- a/.github/workflows/test-linux.yml
+++ b/.github/workflows/test-linux.yml
@@ -46,7 +46,7 @@ jobs:
persist-credentials: false
path: node
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up sccache
diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml
index 53329afd930b46..c74e200acb0295 100644
--- a/.github/workflows/test-macos.yml
+++ b/.github/workflows/test-macos.yml
@@ -52,7 +52,7 @@ jobs:
persist-credentials: false
path: node
- name: Set up Python ${{ env.PYTHON_VERSION }}
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set up Xcode ${{ env.XCODE_VERSION }}
diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml
index 60781a8528cba5..e6bb4cef52c5bd 100644
--- a/.github/workflows/tools.yml
+++ b/.github/workflows/tools.yml
@@ -294,7 +294,7 @@ jobs:
persist-credentials: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
if: matrix.id == 'icu' && (github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id)
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- run: ${{ matrix.run }}
diff --git a/.github/workflows/update-v8.yml b/.github/workflows/update-v8.yml
index a53f28ba4baf4c..0b290e41ada4a0 100644
--- a/.github/workflows/update-v8.yml
+++ b/.github/workflows/update-v8.yml
@@ -30,7 +30,7 @@ jobs:
~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}
- name: Install Node.js
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install @node-core/utils
diff --git a/.github/workflows/update-wpt.yml b/.github/workflows/update-wpt.yml
index 8052857405557a..bd43791e6c860b 100644
--- a/.github/workflows/update-wpt.yml
+++ b/.github/workflows/update-wpt.yml
@@ -32,7 +32,7 @@ jobs:
persist-credentials: false
- name: Install Node.js
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ env.NODE_VERSION }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6b679cbdb251f0..5aa090cbca3bf6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -40,7 +40,8 @@ release.
-24.0.0
+24.0.1
+24.0.0
|
23.11.0
diff --git a/README.md b/README.md
index 38a0afaaa36361..a199de3cb9aa16 100644
--- a/README.md
+++ b/README.md
@@ -755,6 +755,8 @@ maintaining the Node.js project.
**Gireesh Punathil** <> (he/him)
* [gurgunday](https://github.com/gurgunday) -
**Gürgün Dayıoğlu** <>
+* [HBSPS](https://github.com/HBSPS) -
+ **Wiyeong Seo** <>
* [iam-frankqiu](https://github.com/iam-frankqiu) -
**Frank Qiu** <> (he/him)
* [KevinEady](https://github.com/KevinEady) -
diff --git a/benchmark/buffers/buffer-iterate.js b/benchmark/buffers/buffer-iterate.js
index 34c7d17b7f2abd..c1c4f6917501a1 100644
--- a/benchmark/buffers/buffer-iterate.js
+++ b/benchmark/buffers/buffer-iterate.js
@@ -1,5 +1,5 @@
'use strict';
-const { Buffer } = require('buffer');
+const SlowBuffer = require('buffer').SlowBuffer;
const common = require('../common.js');
const assert = require('assert');
@@ -19,7 +19,7 @@ const methods = {
function main({ size, type, method, n }) {
const buffer = type === 'fast' ?
Buffer.alloc(size) :
- Buffer.allocUnsafeSlow(size).fill(0);
+ SlowBuffer(size).fill(0);
const fn = methods[method];
diff --git a/benchmark/buffers/buffer-read-with-byteLength.js b/benchmark/buffers/buffer-read-with-byteLength.js
index 4cbe12ef4fe386..57e46b8ce4453f 100644
--- a/benchmark/buffers/buffer-read-with-byteLength.js
+++ b/benchmark/buffers/buffer-read-with-byteLength.js
@@ -1,6 +1,5 @@
'use strict';
const common = require('../common.js');
-const { Buffer } = require('buffer');
const types = [
'IntBE',
@@ -19,7 +18,7 @@ const bench = common.createBenchmark(main, {
function main({ n, buf, type, byteLength }) {
const buff = buf === 'fast' ?
Buffer.alloc(8) :
- Buffer.allocUnsafeSlow(8);
+ require('buffer').SlowBuffer(8);
const fn = `read${type}`;
buff.writeDoubleLE(0, 0);
diff --git a/benchmark/buffers/buffer-read.js b/benchmark/buffers/buffer-read.js
index 2543db7f5d6d49..f3b2a5645174fe 100644
--- a/benchmark/buffers/buffer-read.js
+++ b/benchmark/buffers/buffer-read.js
@@ -1,6 +1,5 @@
'use strict';
const common = require('../common.js');
-const { Buffer } = require('buffer');
const types = [
'BigUInt64LE',
@@ -28,7 +27,7 @@ const bench = common.createBenchmark(main, {
function main({ n, buf, type }) {
const buff = buf === 'fast' ?
Buffer.alloc(8) :
- Buffer.allocUnsafeSlow(8);
+ require('buffer').SlowBuffer(8);
const fn = `read${type}`;
buff.writeDoubleLE(0, 0);
diff --git a/benchmark/buffers/buffer-slice.js b/benchmark/buffers/buffer-slice.js
index e96a31f0b42ea9..cc6e1a8a1449fc 100644
--- a/benchmark/buffers/buffer-slice.js
+++ b/benchmark/buffers/buffer-slice.js
@@ -1,6 +1,6 @@
'use strict';
const common = require('../common.js');
-const { Buffer } = require('buffer');
+const SlowBuffer = require('buffer').SlowBuffer;
const bench = common.createBenchmark(main, {
type: ['fast', 'slow', 'subarray'],
@@ -8,7 +8,7 @@ const bench = common.createBenchmark(main, {
});
const buf = Buffer.allocUnsafe(1024);
-const slowBuf = Buffer.allocUnsafeSlow(1024);
+const slowBuf = new SlowBuffer(1024);
function main({ n, type }) {
const b = type === 'slow' ? slowBuf : buf;
diff --git a/benchmark/buffers/buffer-write.js b/benchmark/buffers/buffer-write.js
index 25a3a04a130a2f..239abc8a0da69e 100644
--- a/benchmark/buffers/buffer-write.js
+++ b/benchmark/buffers/buffer-write.js
@@ -1,6 +1,6 @@
'use strict';
const common = require('../common.js');
-const { Buffer } = require('buffer');
+
const types = [
'BigUInt64LE',
'BigUInt64BE',
@@ -73,7 +73,7 @@ const byteLength = {
function main({ n, buf, type }) {
const buff = buf === 'fast' ?
Buffer.alloc(8) :
- Buffer.allocUnsafeSlow(8);
+ require('buffer').SlowBuffer(8);
const fn = `write${type}`;
if (!/\d/.test(fn))
diff --git a/benchmark/es/error-stack.js b/benchmark/es/error-stack.js
index 3b373dcdae63c8..2cc3321640c5cd 100644
--- a/benchmark/es/error-stack.js
+++ b/benchmark/es/error-stack.js
@@ -10,7 +10,7 @@ const bench = common.createBenchmark(main, {
'without-sourcemap',
'sourcemap',
'node-modules-without-sourcemap',
- 'node-module-sourcemap'],
+ 'node-modules-sourcemap'],
n: [1e5],
});
diff --git a/doc/api/buffer.md b/doc/api/buffer.md
index 66e4aeb80386c4..d7ba1089a97e65 100644
--- a/doc/api/buffer.md
+++ b/doc/api/buffer.md
@@ -5340,6 +5340,28 @@ console.log(newBuf.toString('ascii'));
Because the Euro (`€`) sign is not representable in US-ASCII, it is replaced
with `?` in the transcoded `Buffer`.
+### Class: `SlowBuffer`
+
+
+
+> Stability: 0 - Deprecated: Use [`Buffer.allocUnsafeSlow()`][] instead.
+
+See [`Buffer.allocUnsafeSlow()`][]. This was never a class in the sense that
+the constructor always returned a `Buffer` instance, rather than a `SlowBuffer`
+instance.
+
+#### `new SlowBuffer(size)`
+
+
+
+* `size` {integer} The desired length of the new `SlowBuffer`.
+
+See [`Buffer.allocUnsafeSlow()`][].
+
### Buffer constants
This configures Node.js to interpret `--eval` or `STDIN` input as CommonJS or
as an ES module. Valid values are `"commonjs"`, `"module"`, `"module-typescript"` and `"commonjs-typescript"`.
The `"-typescript"` values are not available with the flag `--no-experimental-strip-types`.
-The default is `"commonjs"`.
+The default is no value, or `"commonjs"` if `--no-experimental-detect-module` is passed.
If `--input-type` is not provided,
Node.js will try to detect the syntax with the following steps:
@@ -3111,7 +3120,8 @@ node --watch --watch-preserve-output test.js
added: v6.0.0
-->
-Automatically zero-fills all newly allocated [`Buffer`][] instances.
+Automatically zero-fills all newly allocated [`Buffer`][] and [`SlowBuffer`][]
+instances.
## Environment variables
@@ -3886,6 +3896,7 @@ node --stack-trace-limit=12 -p -e "Error.stackTraceLimit" # prints 12
[`ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`]: errors.md#err_unsupported_typescript_syntax
[`NODE_OPTIONS`]: #node_optionsoptions
[`NO_COLOR`]: https://no-color.org
+[`SlowBuffer`]: buffer.md#class-slowbuffer
[`Web Storage`]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API
[`WebSocket`]: https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
[`YoungGenerationSizeFromSemiSpaceSize`]: https://chromium.googlesource.com/v8/v8.git/+/refs/tags/10.3.129/src/heap/heap.cc#328
diff --git a/doc/api/corepack.md b/doc/api/corepack.md
index 8bc9c134e2dc7c..b017f7570cb260 100644
--- a/doc/api/corepack.md
+++ b/doc/api/corepack.md
@@ -12,10 +12,9 @@ added:
> Stability: 1 - Experimental
-Documentation for this tool can be found on the [Corepack repository][].
+**Corepack will no longer be distributed starting with Node.js v25.**
-Despite Corepack being distributed with default installs of Node.js, the package
-managers managed by Corepack are not part of the Node.js distribution, and
-Corepack itself will no longer be distributed with Node.js 25+.
+Users currently depending on the bundled `corepack` executable from Node.js
+can switch to using the userland-provided [corepack][] module.
-[Corepack repository]: https://github.com/nodejs/corepack
+[corepack]: https://github.com/nodejs/corepack
diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md
index 4ae0abb17711ca..59ccb616adae1d 100644
--- a/doc/api/deprecations.md
+++ b/doc/api/deprecations.md
@@ -695,9 +695,6 @@ Type: End-of-Life
-Type: End-of-Life
+Type: Runtime
-The `SlowBuffer` class has been removed. Please use
+The [`SlowBuffer`][] class is deprecated. Please use
[`Buffer.allocUnsafeSlow(size)`][] instead.
### DEP0031: `ecdh.setPublicKey()`
@@ -3921,6 +3918,7 @@ upon `require('node:module').builtinModules`.
[`ReadStream.open()`]: fs.md#class-fsreadstream
[`Server.getConnections()`]: net.md#servergetconnectionscallback
[`Server.listen({fd: })`]: net.md#serverlistenhandle-backlog-callback
+[`SlowBuffer`]: buffer.md#class-slowbuffer
[`String.prototype.toWellFormed`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toWellFormed
[`WriteStream.open()`]: fs.md#class-fswritestream
[`assert.CallTracker`]: assert.md#class-assertcalltracker
diff --git a/doc/api/readline.md b/doc/api/readline.md
index 4f191127fd1d04..e3cb1ed0da6d97 100644
--- a/doc/api/readline.md
+++ b/doc/api/readline.md
@@ -710,6 +710,7 @@ added: v17.0.0
**Default:** `500`.
* `tabSize` {integer} The number of spaces a tab is equal to (minimum 1).
**Default:** `8`.
+ * `signal` {AbortSignal} Allows closing the interface using an AbortSignal.
* Returns: {readlinePromises.Interface}
The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface`
diff --git a/doc/api/vm.md b/doc/api/vm.md
index c7ca77fac93673..b0b550093d7f4d 100644
--- a/doc/api/vm.md
+++ b/doc/api/vm.md
@@ -1044,13 +1044,13 @@ changes:
* `contextExtensions` {Object\[]} An array containing a collection of context
extensions (objects wrapping the current scope) to be applied while
compiling. **Default:** `[]`.
-* `importModuleDynamically`
- {Function|vm.constants.USE\_MAIN\_CONTEXT\_DEFAULT\_LOADER}
- Used to specify the how the modules should be loaded during the evaluation of
- this function when `import()` is called. This option is part of the
- experimental modules API. We do not recommend using it in a production
- environment. For detailed information, see
- [Support of dynamic `import()` in compilation APIs][].
+ * `importModuleDynamically`
+ {Function|vm.constants.USE\_MAIN\_CONTEXT\_DEFAULT\_LOADER}
+ Used to specify the how the modules should be loaded during the evaluation of
+ this function when `import()` is called. This option is part of the
+ experimental modules API. We do not recommend using it in a production
+ environment. For detailed information, see
+ [Support of dynamic `import()` in compilation APIs][].
* Returns: {Function}
Compiles the given code into the provided context (if no context is
diff --git a/doc/api/zlib.md b/doc/api/zlib.md
index d1efe90ee7de1d..a3695eb8991ece 100644
--- a/doc/api/zlib.md
+++ b/doc/api/zlib.md
@@ -12,7 +12,7 @@ Gzip, Deflate/Inflate, Brotli, and Zstd.
To access it:
```mjs
-import os from 'node:zlib';
+import zlib from 'node:zlib';
```
```cjs
diff --git a/doc/changelogs/CHANGELOG_V24.md b/doc/changelogs/CHANGELOG_V24.md
index 0f9d6bb681be91..b98eea964bc857 100644
--- a/doc/changelogs/CHANGELOG_V24.md
+++ b/doc/changelogs/CHANGELOG_V24.md
@@ -8,6 +8,7 @@
|
+24.0.1
24.0.0
|
@@ -39,6 +40,32 @@
* [io.js](CHANGELOG_IOJS.md)
* [Archive](CHANGELOG_ARCHIVE.md)
+
+
+## 2025-05-08, Version 24.0.1 (Current), @aduh95
+
+### Notable Changes
+
+* \[[`2e1d9581e0`](https://github.com/nodejs/node/commit/2e1d9581e0)] - _**Revert**_ "**buffer**: move SlowBuffer to EOL" (Filip Skokan) [#58211](https://github.com/nodejs/node/pull/58211)
+
+### Commits
+
+* \[[`d38e811c5b`](https://github.com/nodejs/node/commit/d38e811c5b)] - **benchmark**: fix typo in method name for error-stack (Miguel Marcondes Filho) [#58128](https://github.com/nodejs/node/pull/58128)
+* \[[`2e1d9581e0`](https://github.com/nodejs/node/commit/2e1d9581e0)] - _**Revert**_ "**buffer**: move SlowBuffer to EOL" (Filip Skokan) [#58211](https://github.com/nodejs/node/pull/58211)
+* \[[`a883b0c979`](https://github.com/nodejs/node/commit/a883b0c979)] - **build**: use //third\_party/simdutf by default in GN (Shelley Vohr) [#58115](https://github.com/nodejs/node/pull/58115)
+* \[[`3d84b5c7a4`](https://github.com/nodejs/node/commit/3d84b5c7a4)] - **doc**: add HBSPS as triager (Wiyeong Seo) [#57980](https://github.com/nodejs/node/pull/57980)
+* \[[`1e57cb686e`](https://github.com/nodejs/node/commit/1e57cb686e)] - **doc**: add history entries to `--input-type` section (Antoine du Hamel) [#58175](https://github.com/nodejs/node/pull/58175)
+* \[[`0b54f06b6f`](https://github.com/nodejs/node/commit/0b54f06b6f)] - **doc**: add ambassaor message (Brian Muenzenmeyer) [#57600](https://github.com/nodejs/node/pull/57600)
+* \[[`46bee52d57`](https://github.com/nodejs/node/commit/46bee52d57)] - **doc**: fix misaligned options in vm.compileFunction() (Jimmy Leung) [#58145](https://github.com/nodejs/node/pull/58145)
+* \[[`e732a8bfdd`](https://github.com/nodejs/node/commit/e732a8bfdd)] - **doc**: fix typo in benchmark script path (Miguel Marcondes Filho) [#58129](https://github.com/nodejs/node/pull/58129)
+* \[[`d49ff34adb`](https://github.com/nodejs/node/commit/d49ff34adb)] - **doc**: add missing options.signal to readlinePromises.createInterface() (Jimmy Leung) [#55456](https://github.com/nodejs/node/pull/55456)
+* \[[`bc9f5a2e79`](https://github.com/nodejs/node/commit/bc9f5a2e79)] - **doc**: fix typo of file `zlib.md` (yusheng chen) [#58093](https://github.com/nodejs/node/pull/58093)
+* \[[`c8e8558958`](https://github.com/nodejs/node/commit/c8e8558958)] - **doc**: clarify future Corepack removal in v25+ (Trivikram Kamat) [#57825](https://github.com/nodejs/node/pull/57825)
+* \[[`b13d5d14bd`](https://github.com/nodejs/node/commit/b13d5d14bd)] - **meta**: bump actions/setup-node from 4.3.0 to 4.4.0 (dependabot\[bot]) [#58111](https://github.com/nodejs/node/pull/58111)
+* \[[`0ebb17a300`](https://github.com/nodejs/node/commit/0ebb17a300)] - **meta**: bump actions/setup-python from 5.5.0 to 5.6.0 (dependabot\[bot]) [#58107](https://github.com/nodejs/node/pull/58107)
+* \[[`5946785bf4`](https://github.com/nodejs/node/commit/5946785bf4)] - **tools**: exclude deps/v8/tools from CodeQL scans (Rich Trott) [#58132](https://github.com/nodejs/node/pull/58132)
+* \[[`0708497c7f`](https://github.com/nodejs/node/commit/0708497c7f)] - **tools**: bump the eslint group in /tools/eslint with 6 updates (dependabot\[bot]) [#58105](https://github.com/nodejs/node/pull/58105)
+
## 2025-05-06, Version 24.0.0 (Current), @RafaelGSS and @juanarbol
diff --git a/doc/contributing/advocacy-ambassador-program.md b/doc/contributing/advocacy-ambassador-program.md
index 76f29b73586691..e8c7936c9412b4 100644
--- a/doc/contributing/advocacy-ambassador-program.md
+++ b/doc/contributing/advocacy-ambassador-program.md
@@ -123,29 +123,29 @@ when no longer relevant.
The goal is to raise awareness of XYZ in the JavaScript ecosystem.
-#### Related Links
+##### Related Links
-List of links with more information about the topic to provide brackground
+List of links with more information about the topic to provide background
or the information to be shared.
-#### Project contacts
+##### Project contacts
Add a list of GitHub handles for those within the project that
-have volunteered to be contacated when necessary by ambassadors
+have volunteered to be contacted when necessary by ambassadors
to get more info about the message to be promoted.
#### Node.js is a great choice for a JavaScript runtime
##### Goal
-Highlight the benefits of chosing Node.js as your backend JavaScript runtime. Focus on what is great
+Highlight the benefits of choosing Node.js as your backend JavaScript runtime. Focus on what is great
about Node.js without drawing comparisons to alternatives. We don't want to say negative things about
other options, only highlight what is great about Node.js as a choice.
Some of the things to highlight include:
-* How widely it is used (you never get fired for chosing Node.js).
-* The openess of the project. It is part of the OpenJS Foundation and it's governance is set up to avoid
+* How widely it is used (you never get fired for choosing Node.js).
+* The openness of the project. It is part of the OpenJS Foundation and it's governance is set up to avoid
any one company from dominating the project. Decisions are made by the collaborators (of which there are quite
a few) versus a small number of people.
* It has predictable and stable releases and has delivered on the release schedule since 2015.
@@ -157,7 +157,7 @@ Some of the things to highlight include:
* Single threaded programming model enables very low resource consumption, making it ideal for containerised workloads.
* Highly vibrant ecosystem with enterprise support from many vendors.
-#### Related Links
+##### Related Links
*
*
@@ -165,13 +165,13 @@ Some of the things to highlight include:
*
for slide usage and topping recent surveys.
-#### Project contacts
+##### Project contacts
* @mhdawson
-### How things get done in the Node.js project
+#### How things get done in the Node.js project
-#### Goal
+##### Goal
Help people understand that no people are paid to answer their issues or
implement their pull requests. Things get done based on what volunteers work on
@@ -182,7 +182,7 @@ Some of the things to highlight include:
* Nobody is paid specifically to answer issues, fix bugs or implement new features.
* No company owns/supports Node.js. Most contributions are from individuals
as opposed to organizations. When an individual becomes a collaborator
- the access and priviledges are granted to the indidual, their employer does
+ the access and privileges are granted to the individual, their employer does
not gain any additional rights in the project.
* The governance of the project is specifically designed to prevent one or
a small number of companies from dominating the project.
@@ -198,10 +198,10 @@ Some of the things to highlight include:
* People are volunteering their time to review your PRs and answer questions in
the issues you open. Be mindfull of your asks for their time and acknowledge
the gift of their time. Too many issues/PRs in a short period of time may
- overwelm maintainers leading to less progress versus more, try to pace your
+ overwhelm maintainers leading to less progress versus more, try to pace your
issues and PRs so that you don't have too many open at the same time. The
- same goes for comments in discussions, try to avoid overwelming a discussion
- with too many responses, even too much useful data can overwelm a discussion
+ same goes for comments in discussions, try to avoid overwhelming a discussion
+ with too many responses, even too much useful data can overwhelm a discussion
leading to lower engagement.
* While volunteers work to do the right thing for the community, the project
does not owe anybody anything and does not tolerate abusive or
@@ -210,11 +210,11 @@ Some of the things to highlight include:
* If you depend on timely support or an SLA, contract with a company that provides
paid support and will prioritize your issues.
-#### Related Links
+##### Related Links
*
-#### Project contacts
+##### Project contacts
* @mcollina
* @mhdawson
@@ -233,7 +233,7 @@ Some of the things to highlight include:
* The `tsconfig.json` configuration options to use in combination for type checking.
* Updates on the implementation advancements.
-#### Related Links
+##### Related Links
@@ -245,6 +245,49 @@ Some of the things to highlight include:
-#### Project contacts
+##### Project contacts
* @marco-ippolito
+
+#### Do I still need this dependency for my Node.js app?
+
+##### Goal
+
+Advancements over time in Node.js are improving the out of the box experience.
+New versions are released all the time across Active LTS and Current development lines.
+It's easy to miss something between the release notes and our busy work schedules.
+
+Each of these on its own is respectable, but together they make a more cohesive narrative.
+This also shows a [healthy ecosystem at work](https://brianmuenzenmeyer.com/posts/2024-do-i-need-this-node-dependency/#oss-pace-layers),
+with projects learning from one another and their users.
+
+"Recent" new or newish features, ordered by availability:
+
+| Feature | Introduced | Release Status |
+| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------ |
+| [testing source code](https://nodejs.org/api/test.html) | [16.17.0](https://nodejs.org/en/blog/release/v16.17.0) | Stable as of 20.0.0 |
+| [watching source code](https://nodejs.org/api/cli.html#--watch) | [16.19.0](https://nodejs.org/en/blog/release/v16.19.0) | Stable as of 20.13.0 |
+| [parsing arguments](https://nodejs.org/api/util.html#utilparseargsconfig) | [18.3.0](https://nodejs.org/en/blog/release/v18.3.0) | Stable as of 20.0.0 |
+| [reading environment](https://nodejs.org/api/cli.html#--env-fileconfig) | [20.6.0](https://nodejs.org/en/blog/release/v20.6.0) | Active Development |
+| [styling output](https://nodejs.org/docs/latest-v22.x/api/util.html#utilstyletextformat-text-options) | [20.12.0](https://nodejs.org/en/blog/release/v20.12.0) | Stable, as of [22.13.0](https://github.com/nodejs/node/pull/56329) |
+| [run scripts](https://nodejs.org/docs/latest/api/cli.html#--run) | [22.0.0](https://nodejs.org/en/blog/release/v22.0.0) | Stable, as of 22.0.0 |
+| [run TypeScript](https://nodejs.org/api/cli.html#--experimental-strip-types) | [22.6.0](https://nodejs.org/en/blog/release/v22.6.0) | Active Development |
+
+##### Related Links
+
+
+
+*
+*
+*
+*
+*
+*
+*
+*
+
+
+
+##### Project contacts
+
+* @bmuenzenmeyer
diff --git a/doc/contributing/writing-and-running-benchmarks.md b/doc/contributing/writing-and-running-benchmarks.md
index efe68920ef0f03..1ff494c7c4d90f 100644
--- a/doc/contributing/writing-and-running-benchmarks.md
+++ b/doc/contributing/writing-and-running-benchmarks.md
@@ -101,7 +101,7 @@ benchmarks. This increases the likelihood of each benchmark achieving peak perfo
according to the hardware. Therefore, run:
```console
-$ ./benchmarks/cpu.sh fast
+$ ./benchmark/cpu.sh fast
```
### Running individual benchmarks
@@ -572,7 +572,7 @@ the code inside the `main` function if it's more than just declaration.
```js
'use strict';
const common = require('../common.js');
-const { Buffer } = require('node:buffer');
+const { SlowBuffer } = require('node:buffer');
const configs = {
// Number of operations, specified here so they show up in the report.
@@ -603,11 +603,10 @@ function main(conf) {
bench.start();
// Do operations here
+ const BufferConstructor = conf.type === 'fast' ? Buffer : SlowBuffer;
for (let i = 0; i < conf.n; i++) {
- conf.type === 'fast' ?
- Buffer.allocUnsafe(conf.size) :
- Buffer.allocUnsafeSlow(conf.size);
+ new BufferConstructor(conf.size);
}
// End the timer, pass in the number of operations
diff --git a/doc/node.1 b/doc/node.1
index eac925c5fa690e..de6a3f7aa5f6fd 100644
--- a/doc/node.1
+++ b/doc/node.1
@@ -619,7 +619,7 @@ If set to 0 then V8 will choose an appropriate size of the thread pool based on
If the value provided is larger than V8's maximum, then the largest value will be chosen.
.
.It Fl -zero-fill-buffers
-Automatically zero-fills all newly allocated Buffer instances.
+Automatically zero-fills all newly allocated Buffer and SlowBuffer instances.
.
.It Fl c , Fl -check
Check the script's syntax without executing it.
diff --git a/lib/buffer.js b/lib/buffer.js
index ec3cdd434c2f99..22bbb95eaf79e6 100644
--- a/lib/buffer.js
+++ b/lib/buffer.js
@@ -52,6 +52,7 @@ const {
TypedArrayPrototypeSet,
TypedArrayPrototypeSlice,
Uint8Array,
+ Uint8ArrayPrototype,
} = primordials;
const {
@@ -88,6 +89,7 @@ const {
kIsEncodingSymbol,
defineLazyProperties,
encodingsMap,
+ deprecate,
} = require('internal/util');
const {
isAnyArrayBuffer,
@@ -409,15 +411,25 @@ Buffer.allocUnsafe = function allocUnsafe(size) {
};
/**
- * By default creates a non-zero-filled Buffer instance that is not allocated
- * off the pre-initialized pool. If `--zero-fill-buffers` is set, will zero-fill
- * the buffer.
+ * Equivalent to SlowBuffer(num), by default creates a non-zero-filled
+ * Buffer instance that is not allocated off the pre-initialized pool.
+ * If `--zero-fill-buffers` is set, will zero-fill the buffer.
*/
Buffer.allocUnsafeSlow = function allocUnsafeSlow(size) {
validateNumber(size, 'size', 0, kMaxLength);
return createUnsafeBuffer(size);
};
+// If --zero-fill-buffers command line argument is set, a zero-filled
+// buffer is returned.
+function SlowBuffer(size) {
+ validateNumber(size, 'size', 0, kMaxLength);
+ return createUnsafeBuffer(size);
+}
+
+ObjectSetPrototypeOf(SlowBuffer.prototype, Uint8ArrayPrototype);
+ObjectSetPrototypeOf(SlowBuffer, Uint8Array);
+
function allocate(size) {
if (size <= 0) {
return new FastBuffer();
@@ -1319,6 +1331,10 @@ function isAscii(input) {
module.exports = {
Buffer,
+ SlowBuffer: deprecate(
+ SlowBuffer,
+ 'SlowBuffer() is deprecated. Please use Buffer.allocUnsafeSlow()',
+ 'DEP0030'),
transcode,
isUtf8,
isAscii,
diff --git a/node.gni b/node.gni
index a2123cc6c6d21c..35ccd0487f20ce 100644
--- a/node.gni
+++ b/node.gni
@@ -14,7 +14,7 @@ declare_args() {
node_openssl_path = "$node_path/deps/openssl"
# The location of simdutf - use the one from node's deps by default.
- node_simdutf_path = "$node_path/deps/simdutf"
+ node_simdutf_path = "//third_party/simdutf"
# The NODE_MODULE_VERSION defined in node_version.h.
node_module_version = exec_script("$node_path/tools/getmoduleversion.py", [], "value")
diff --git a/src/node_options.cc b/src/node_options.cc
index f4d5170a629c31..c0a3384735c258 100644
--- a/src/node_options.cc
+++ b/src/node_options.cc
@@ -1052,7 +1052,8 @@ PerProcessOptionsParser::PerProcessOptionsParser(
&PerProcessOptions::v8_thread_pool_size,
kAllowedInEnvvar);
AddOption("--zero-fill-buffers",
- "automatically zero-fill all newly allocated Buffer instances",
+ "automatically zero-fill all newly allocated Buffer and "
+ "SlowBuffer instances",
&PerProcessOptions::zero_fill_all_buffers,
kAllowedInEnvvar);
AddOption("--debug-arraybuffer-allocations",
diff --git a/src/node_version.h b/src/node_version.h
index 4796eb27d7a0f1..10034fecbdbe2b 100644
--- a/src/node_version.h
+++ b/src/node_version.h
@@ -29,7 +29,7 @@
#define NODE_VERSION_IS_LTS 0
#define NODE_VERSION_LTS_CODENAME ""
-#define NODE_VERSION_IS_RELEASE 0
+#define NODE_VERSION_IS_RELEASE 1
#ifndef NODE_STRINGIFY
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js
index 382cfbc93a6510..aad9c6bcab69e9 100644
--- a/test/parallel/test-buffer-alloc.js
+++ b/test/parallel/test-buffer-alloc.js
@@ -5,7 +5,7 @@ const assert = require('assert');
const vm = require('vm');
const {
- Buffer,
+ SlowBuffer,
kMaxLength,
} = require('buffer');
@@ -1104,6 +1104,9 @@ assert.throws(() => Buffer.from(null), {
// Test prototype getters don't throw
assert.strictEqual(Buffer.prototype.parent, undefined);
assert.strictEqual(Buffer.prototype.offset, undefined);
+assert.strictEqual(SlowBuffer.prototype.parent, undefined);
+assert.strictEqual(SlowBuffer.prototype.offset, undefined);
+
{
// Test that large negative Buffer length inputs don't affect the pool offset.
@@ -1136,7 +1139,7 @@ assert.throws(() => {
a.copy(b, 0, 0x100000000, 0x100000001);
}, outOfRangeError);
-// Unpooled buffer
+// Unpooled buffer (replaces SlowBuffer)
{
const ubuf = Buffer.allocUnsafeSlow(10);
assert(ubuf);
diff --git a/test/parallel/test-buffer-bytelength.js b/test/parallel/test-buffer-bytelength.js
index 1013469181fa23..95d54d425bc252 100644
--- a/test/parallel/test-buffer-bytelength.js
+++ b/test/parallel/test-buffer-bytelength.js
@@ -2,7 +2,7 @@
const common = require('../common');
const assert = require('assert');
-const { Buffer } = require('buffer');
+const SlowBuffer = require('buffer').SlowBuffer;
const vm = require('vm');
[
@@ -24,6 +24,7 @@ const vm = require('vm');
});
assert(ArrayBuffer.isView(new Buffer(10)));
+assert(ArrayBuffer.isView(new SlowBuffer(10)));
assert(ArrayBuffer.isView(Buffer.alloc(10)));
assert(ArrayBuffer.isView(Buffer.allocUnsafe(10)));
assert(ArrayBuffer.isView(Buffer.allocUnsafeSlow(10)));
diff --git a/test/parallel/test-buffer-failed-alloc-typed-arrays.js b/test/parallel/test-buffer-failed-alloc-typed-arrays.js
index ac519d2bf7a1ab..699475ad0a8b31 100644
--- a/test/parallel/test-buffer-failed-alloc-typed-arrays.js
+++ b/test/parallel/test-buffer-failed-alloc-typed-arrays.js
@@ -2,7 +2,7 @@
require('../common');
const assert = require('assert');
-const { Buffer } = require('buffer');
+const SlowBuffer = require('buffer').SlowBuffer;
// Test failed or zero-sized Buffer allocations not affecting typed arrays.
// This test exists because of a regression that occurred. Because Buffer
@@ -15,6 +15,7 @@ const zeroArray = new Uint32Array(10).fill(0);
const sizes = [1e20, 0, 0.1, -1, 'a', undefined, null, NaN];
const allocators = [
Buffer,
+ SlowBuffer,
Buffer.alloc,
Buffer.allocUnsafe,
Buffer.allocUnsafeSlow,
diff --git a/test/parallel/test-buffer-inspect.js b/test/parallel/test-buffer-inspect.js
index 0dd15e5a97d3e9..1e8212e876344a 100644
--- a/test/parallel/test-buffer-inspect.js
+++ b/test/parallel/test-buffer-inspect.js
@@ -30,7 +30,7 @@ buffer.INSPECT_MAX_BYTES = 2;
let b = Buffer.allocUnsafe(4);
b.fill('1234');
-let s = Buffer.allocUnsafeSlow(4);
+let s = buffer.SlowBuffer(4);
s.fill('1234');
let expected = '';
@@ -41,7 +41,7 @@ assert.strictEqual(util.inspect(s), expected);
b = Buffer.allocUnsafe(2);
b.fill('12');
-s = Buffer.allocUnsafeSlow(2);
+s = buffer.SlowBuffer(2);
s.fill('12');
expected = '';
diff --git a/test/parallel/test-buffer-no-negative-allocation.js b/test/parallel/test-buffer-no-negative-allocation.js
index e48d9c7545755d..055e2d5dc69bdd 100644
--- a/test/parallel/test-buffer-no-negative-allocation.js
+++ b/test/parallel/test-buffer-no-negative-allocation.js
@@ -2,6 +2,7 @@
require('../common');
const assert = require('assert');
+const { SlowBuffer } = require('buffer');
const msg = {
code: 'ERR_OUT_OF_RANGE',
@@ -29,3 +30,8 @@ assert.throws(() => Buffer.allocUnsafeSlow(-Buffer.poolSize), msg);
assert.throws(() => Buffer.allocUnsafeSlow(-100), msg);
assert.throws(() => Buffer.allocUnsafeSlow(-1), msg);
assert.throws(() => Buffer.allocUnsafeSlow(NaN), msg);
+
+assert.throws(() => SlowBuffer(-Buffer.poolSize), msg);
+assert.throws(() => SlowBuffer(-100), msg);
+assert.throws(() => SlowBuffer(-1), msg);
+assert.throws(() => SlowBuffer(NaN), msg);
diff --git a/test/parallel/test-buffer-over-max-length.js b/test/parallel/test-buffer-over-max-length.js
index 5ee07b14d2abb5..f29d6b62d4aa40 100644
--- a/test/parallel/test-buffer-over-max-length.js
+++ b/test/parallel/test-buffer-over-max-length.js
@@ -4,6 +4,7 @@ require('../common');
const assert = require('assert');
const buffer = require('buffer');
+const SlowBuffer = buffer.SlowBuffer;
const kMaxLength = buffer.kMaxLength;
const bufferMaxSizeMsg = {
@@ -12,6 +13,7 @@ const bufferMaxSizeMsg = {
};
assert.throws(() => Buffer(kMaxLength + 1), bufferMaxSizeMsg);
+assert.throws(() => SlowBuffer(kMaxLength + 1), bufferMaxSizeMsg);
assert.throws(() => Buffer.alloc(kMaxLength + 1), bufferMaxSizeMsg);
assert.throws(() => Buffer.allocUnsafe(kMaxLength + 1), bufferMaxSizeMsg);
assert.throws(() => Buffer.allocUnsafeSlow(kMaxLength + 1), bufferMaxSizeMsg);
diff --git a/test/parallel/test-buffer-slow.js b/test/parallel/test-buffer-slow.js
index bf104abf4fb0fa..0d89491cfbd155 100644
--- a/test/parallel/test-buffer-slow.js
+++ b/test/parallel/test-buffer-slow.js
@@ -1,13 +1,20 @@
'use strict';
-require('../common');
+const common = require('../common');
const assert = require('assert');
-const { Buffer, kMaxLength } = require('buffer');
+const buffer = require('buffer');
+const SlowBuffer = buffer.SlowBuffer;
const ones = [1, 1, 1, 1];
+common.expectWarning(
+ 'DeprecationWarning',
+ 'SlowBuffer() is deprecated. Please use Buffer.allocUnsafeSlow()',
+ 'DEP0030'
+);
+
// Should create a Buffer
-let sb = Buffer.allocUnsafeSlow(4);
+let sb = SlowBuffer(4);
assert(sb instanceof Buffer);
assert.strictEqual(sb.length, 4);
sb.fill(1);
@@ -19,7 +26,7 @@ for (const [key, value] of sb.entries()) {
assert.strictEqual(sb.buffer.byteLength, 4);
// Should work without new
-sb = Buffer.allocUnsafeSlow(4);
+sb = SlowBuffer(4);
assert(sb instanceof Buffer);
assert.strictEqual(sb.length, 4);
sb.fill(1);
@@ -28,7 +35,7 @@ for (const [key, value] of sb.entries()) {
}
// Should work with edge cases
-assert.strictEqual(Buffer.allocUnsafeSlow(0).length, 0);
+assert.strictEqual(SlowBuffer(0).length, 0);
// Should throw with invalid length type
const bufferInvalidTypeMsg = {
@@ -36,17 +43,17 @@ const bufferInvalidTypeMsg = {
name: 'TypeError',
message: /^The "size" argument must be of type number/,
};
-assert.throws(() => Buffer.allocUnsafeSlow(), bufferInvalidTypeMsg);
-assert.throws(() => Buffer.allocUnsafeSlow({}), bufferInvalidTypeMsg);
-assert.throws(() => Buffer.allocUnsafeSlow('6'), bufferInvalidTypeMsg);
-assert.throws(() => Buffer.allocUnsafeSlow(true), bufferInvalidTypeMsg);
+assert.throws(() => SlowBuffer(), bufferInvalidTypeMsg);
+assert.throws(() => SlowBuffer({}), bufferInvalidTypeMsg);
+assert.throws(() => SlowBuffer('6'), bufferInvalidTypeMsg);
+assert.throws(() => SlowBuffer(true), bufferInvalidTypeMsg);
// Should throw with invalid length value
const bufferMaxSizeMsg = {
code: 'ERR_OUT_OF_RANGE',
name: 'RangeError',
};
-assert.throws(() => Buffer.allocUnsafeSlow(NaN), bufferMaxSizeMsg);
-assert.throws(() => Buffer.allocUnsafeSlow(Infinity), bufferMaxSizeMsg);
-assert.throws(() => Buffer.allocUnsafeSlow(-1), bufferMaxSizeMsg);
-assert.throws(() => Buffer.allocUnsafeSlow(kMaxLength + 1), bufferMaxSizeMsg);
+assert.throws(() => SlowBuffer(NaN), bufferMaxSizeMsg);
+assert.throws(() => SlowBuffer(Infinity), bufferMaxSizeMsg);
+assert.throws(() => SlowBuffer(-1), bufferMaxSizeMsg);
+assert.throws(() => SlowBuffer(buffer.kMaxLength + 1), bufferMaxSizeMsg);
diff --git a/test/parallel/test-buffer-tostring-rangeerror.js b/test/parallel/test-buffer-tostring-rangeerror.js
index 4b9357d85c62a4..0ebea759b5c42b 100644
--- a/test/parallel/test-buffer-tostring-rangeerror.js
+++ b/test/parallel/test-buffer-tostring-rangeerror.js
@@ -7,7 +7,7 @@ require('../common');
const assert = require('assert');
const {
- Buffer,
+ SlowBuffer,
constants: {
MAX_STRING_LENGTH,
},
@@ -19,7 +19,7 @@ const message = {
name: 'Error',
};
assert.throws(() => Buffer(len).toString('utf8'), message);
-assert.throws(() => Buffer.allocUnsafeSlow(len).toString('utf8'), message);
+assert.throws(() => SlowBuffer(len).toString('utf8'), message);
assert.throws(() => Buffer.alloc(len).toString('utf8'), message);
assert.throws(() => Buffer.allocUnsafe(len).toString('utf8'), message);
assert.throws(() => Buffer.allocUnsafeSlow(len).toString('utf8'), message);
diff --git a/test/parallel/test-buffer-zero-fill-cli.js b/test/parallel/test-buffer-zero-fill-cli.js
index 663911b7188c85..4299f81039b0b5 100644
--- a/test/parallel/test-buffer-zero-fill-cli.js
+++ b/test/parallel/test-buffer-zero-fill-cli.js
@@ -1,11 +1,11 @@
'use strict';
// Flags: --zero-fill-buffers
-// when using --zero-fill-buffers, every Buffer
+// when using --zero-fill-buffers, every Buffer and SlowBuffer
// instance must be zero filled upon creation
require('../common');
-const { Buffer } = require('buffer');
+const SlowBuffer = require('buffer').SlowBuffer;
const assert = require('assert');
function isZeroFilled(buf) {
@@ -22,8 +22,9 @@ for (let i = 0; i < 50; i++) {
const bufs = [
Buffer.alloc(20),
Buffer.allocUnsafe(20),
- Buffer.allocUnsafeSlow(20),
+ SlowBuffer(20),
Buffer(20),
+ new SlowBuffer(20),
];
for (const buf of bufs) {
assert(isZeroFilled(buf));
diff --git a/test/parallel/test-icu-transcode.js b/test/parallel/test-icu-transcode.js
index 875d954b6cab81..e9aced128eec21 100644
--- a/test/parallel/test-icu-transcode.js
+++ b/test/parallel/test-icu-transcode.js
@@ -86,5 +86,5 @@ assert.deepStrictEqual(
// Test that it doesn't crash
{
- buffer.transcode(new buffer.Buffer.allocUnsafeSlow(1), 'utf16le', 'ucs2');
+ buffer.transcode(new buffer.SlowBuffer(1), 'utf16le', 'ucs2');
}
diff --git a/test/pummel/test-buffer-large-size-slowbuffer.js b/test/pummel/test-buffer-large-size-slowbuffer.js
index b4670b4173004b..5ac058fb276a09 100644
--- a/test/pummel/test-buffer-large-size-slowbuffer.js
+++ b/test/pummel/test-buffer-large-size-slowbuffer.js
@@ -5,18 +5,18 @@ const common = require('../common');
common.skipIf32Bits();
const assert = require('node:assert');
-const { Buffer } = require('node:buffer');
+const {
+ SlowBuffer,
+} = require('node:buffer');
const size = 2 ** 31;
-// Test slow Buffer with size larger than integer range
+// Test SlowBuffer with size larger than integer range
try {
- assert.throws(() => Buffer.allocUnsafeSlow(size).toString('utf8'), {
- code: 'ERR_STRING_TOO_LONG',
- });
+ assert.throws(() => SlowBuffer(size).toString('utf8'), { code: 'ERR_STRING_TOO_LONG' });
} catch (e) {
if (e.code !== 'ERR_MEMORY_ALLOCATION_FAILED') {
throw e;
}
- common.skip('insufficient space for slow Buffer allocation');
+ common.skip('insufficient space for SlowBuffer');
}
diff --git a/tools/eslint/package-lock.json b/tools/eslint/package-lock.json
index 1f7900556493cf..2447e83cf532c6 100644
--- a/tools/eslint/package-lock.json
+++ b/tools/eslint/package-lock.json
@@ -8,14 +8,14 @@
"name": "eslint-tools",
"version": "0.0.0",
"dependencies": {
- "@babel/core": "^7.26.10",
- "@babel/eslint-parser": "^7.27.0",
- "@babel/plugin-syntax-import-attributes": "^7.26.0",
- "@babel/plugin-syntax-import-source": "^7.25.9",
+ "@babel/core": "^7.27.1",
+ "@babel/eslint-parser": "^7.27.1",
+ "@babel/plugin-syntax-import-attributes": "^7.27.1",
+ "@babel/plugin-syntax-import-source": "^7.27.1",
"@stylistic/eslint-plugin-js": "^4.2.0",
- "eslint": "^9.21.0",
+ "eslint": "^9.25.1",
"eslint-formatter-tap": "^8.40.0",
- "eslint-plugin-jsdoc": "^50.6.9",
+ "eslint-plugin-jsdoc": "^50.6.11",
"eslint-plugin-markdown": "^5.1.0",
"globals": "^16.0.0"
}
@@ -34,43 +34,44 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.27.1",
"js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "picocolors": "^1.1.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/compat-data": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
- "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.1.tgz",
+ "integrity": "sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz",
- "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz",
+ "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==",
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.26.2",
- "@babel/generator": "^7.26.10",
- "@babel/helper-compilation-targets": "^7.26.5",
- "@babel/helper-module-transforms": "^7.26.0",
- "@babel/helpers": "^7.26.10",
- "@babel/parser": "^7.26.10",
- "@babel/template": "^7.26.9",
- "@babel/traverse": "^7.26.10",
- "@babel/types": "^7.26.10",
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.27.1",
+ "@babel/helper-compilation-targets": "^7.27.1",
+ "@babel/helper-module-transforms": "^7.27.1",
+ "@babel/helpers": "^7.27.1",
+ "@babel/parser": "^7.27.1",
+ "@babel/template": "^7.27.1",
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -86,9 +87,9 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.0.tgz",
- "integrity": "sha512-dtnzmSjXfgL/HDgMcmsLSzyGbEosi4DrGWoCNfuI+W4IkVJw6izpTe7LtOdwAXnkDqw5yweboYCTkM2rQizCng==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.1.tgz",
+ "integrity": "sha512-q8rjOuadH0V6Zo4XLMkJ3RMQ9MSBqwaDByyYB0izsYdaIWGNLmEblbCOf1vyFHICcg16CD7Fsi51vcQnYxmt6Q==",
"license": "MIT",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
@@ -104,13 +105,13 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz",
- "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz",
+ "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==",
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.27.0",
- "@babel/types": "^7.27.0",
+ "@babel/parser": "^7.27.1",
+ "@babel/types": "^7.27.1",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^3.0.2"
@@ -120,13 +121,13 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
- "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.1.tgz",
+ "integrity": "sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==",
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.26.5",
- "@babel/helper-validator-option": "^7.25.9",
+ "@babel/compat-data": "^7.27.1",
+ "@babel/helper-validator-option": "^7.27.1",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
@@ -136,25 +137,27 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
- "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
+ "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
+ "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
- "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz",
+ "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9",
- "@babel/traverse": "^7.25.9"
+ "@babel/helper-module-imports": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/traverse": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -164,58 +167,61 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
- "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
+ "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
- "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
- "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz",
+ "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==",
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.26.9",
- "@babel/types": "^7.26.10"
+ "@babel/template": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
- "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.1.tgz",
+ "integrity": "sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.27.0"
+ "@babel/types": "^7.27.1"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -225,11 +231,12 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
- "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz",
+ "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -239,12 +246,12 @@
}
},
"node_modules/@babel/plugin-syntax-import-source": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-source/-/plugin-syntax-import-source-7.25.9.tgz",
- "integrity": "sha512-LlPeWMhPqu2YV1LADbJ0aSXxxfEIszdjB6k2Ih+p8c/slDAygf8Iy2FO9QO55APNTj5kamdf8CKXvg7OXngt8Q==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-source/-/plugin-syntax-import-source-7.27.1.tgz",
+ "integrity": "sha512-8MOQQZ+gIKsoB0RK9rpVsX+EXgiLHDAf4gH8ko4dIki5w1VeM6uBLv7dPZb5gGFVxoo0135wmpZ930HPqMrINw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -254,30 +261,30 @@
}
},
"node_modules/@babel/template": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
- "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.1.tgz",
+ "integrity": "sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/parser": "^7.27.0",
- "@babel/types": "^7.27.0"
+ "@babel/code-frame": "^7.27.1",
+ "@babel/parser": "^7.27.1",
+ "@babel/types": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz",
- "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz",
+ "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/generator": "^7.27.0",
- "@babel/parser": "^7.27.0",
- "@babel/template": "^7.27.0",
- "@babel/types": "^7.27.0",
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.27.1",
+ "@babel/parser": "^7.27.1",
+ "@babel/template": "^7.27.1",
+ "@babel/types": "^7.27.1",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -289,18 +296,19 @@
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/types": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
- "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz",
+ "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==",
"license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -355,9 +363,9 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.19.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz",
- "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
+ "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
"license": "Apache-2.0",
"dependencies": {
"@eslint/object-schema": "^2.1.6",
@@ -369,18 +377,18 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
- "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz",
+ "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==",
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
- "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==",
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+ "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
"license": "Apache-2.0",
"dependencies": {
"@types/json-schema": "^7.0.15"
@@ -425,9 +433,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.23.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz",
- "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==",
+ "version": "9.25.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz",
+ "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==",
"license": "MIT",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -443,12 +451,12 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
- "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+ "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.12.0",
+ "@eslint/core": "^0.13.0",
"levn": "^0.4.1"
},
"engines": {
@@ -570,18 +578,6 @@
"eslint-scope": "5.1.1"
}
},
- "node_modules/@pkgr/core": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
- "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
"node_modules/@stylistic/eslint-plugin-js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-4.2.0.tgz",
@@ -759,9 +755,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001696",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz",
- "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==",
+ "version": "1.0.30001716",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001716.tgz",
+ "integrity": "sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==",
"funding": [
{
"type": "opencollective",
@@ -883,17 +879,11 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.90",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.90.tgz",
- "integrity": "sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==",
+ "version": "1.5.148",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.148.tgz",
+ "integrity": "sha512-8uc1QXwwqayD4mblcsQYZqoi+cOc97A2XmKSBOIRbEAvbp6vrqmSYs4dHD2qVygUgn7Mi0qdKgPaJ9WC8cv63A==",
"license": "ISC"
},
- "node_modules/es-module-lexer": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
- "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
- "license": "MIT"
- },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -904,19 +894,19 @@
}
},
"node_modules/eslint": {
- "version": "9.23.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz",
- "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==",
+ "version": "9.25.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz",
+ "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==",
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.19.2",
- "@eslint/config-helpers": "^0.2.0",
- "@eslint/core": "^0.12.0",
+ "@eslint/config-array": "^0.20.0",
+ "@eslint/config-helpers": "^0.2.1",
+ "@eslint/core": "^0.13.0",
"@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.23.0",
- "@eslint/plugin-kit": "^0.2.7",
+ "@eslint/js": "9.25.1",
+ "@eslint/plugin-kit": "^0.2.8",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
@@ -976,9 +966,9 @@
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "50.6.9",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.9.tgz",
- "integrity": "sha512-7/nHu3FWD4QRG8tCVqcv+BfFtctUtEDWc29oeDXB4bwmDM2/r1ndl14AG/2DUntdqH7qmpvdemJKwb3R97/QEw==",
+ "version": "50.6.11",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.11.tgz",
+ "integrity": "sha512-k4+MnBCGR8cuIB5MZ++FGd4gbXxjob2rX1Nq0q3nWFF4xSGZENTgTLZSjb+u9B8SAnP6lpGV2FJrBjllV3pVSg==",
"license": "BSD-3-Clause",
"dependencies": {
"@es-joy/jsdoccomment": "~0.49.0",
@@ -988,10 +978,9 @@
"escape-string-regexp": "^4.0.0",
"espree": "^10.1.0",
"esquery": "^1.6.0",
- "parse-imports": "^2.1.1",
+ "parse-imports-exports": "^0.2.4",
"semver": "^7.6.3",
- "spdx-expression-parse": "^4.0.0",
- "synckit": "^0.9.1"
+ "spdx-expression-parse": "^4.0.0"
},
"engines": {
"node": ">=18"
@@ -1426,7 +1415,8 @@
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.0",
@@ -1449,9 +1439,10 @@
}
},
"node_modules/jsesc": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
- "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
@@ -1695,19 +1686,21 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/parse-imports": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.1.tgz",
- "integrity": "sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==",
- "license": "Apache-2.0",
+ "node_modules/parse-imports-exports": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz",
+ "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==",
+ "license": "MIT",
"dependencies": {
- "es-module-lexer": "^1.5.3",
- "slashes": "^3.0.12"
- },
- "engines": {
- "node": ">= 18"
+ "parse-statements": "1.0.11"
}
},
+ "node_modules/parse-statements": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz",
+ "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==",
+ "license": "MIT"
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -1728,7 +1721,8 @@
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
},
"node_modules/prelude-ls": {
"version": "1.2.1",
@@ -1785,12 +1779,6 @@
"node": ">=8"
}
},
- "node_modules/slashes": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz",
- "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==",
- "license": "ISC"
- },
"node_modules/spdx-exceptions": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
@@ -1837,28 +1825,6 @@
"node": ">=8"
}
},
- "node_modules/synckit": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
- "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
- "license": "MIT",
- "dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/tslib": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
- "license": "0BSD"
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -1885,9 +1851,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz",
- "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
"funding": [
{
"type": "opencollective",
diff --git a/tools/eslint/package.json b/tools/eslint/package.json
index da84af77f7822a..d0fbd7d433cc8a 100644
--- a/tools/eslint/package.json
+++ b/tools/eslint/package.json
@@ -3,14 +3,14 @@
"version": "0.0.0",
"private": true,
"dependencies": {
- "@babel/core": "^7.26.10",
- "@babel/eslint-parser": "^7.27.0",
- "@babel/plugin-syntax-import-attributes": "^7.26.0",
- "@babel/plugin-syntax-import-source": "^7.25.9",
+ "@babel/core": "^7.27.1",
+ "@babel/eslint-parser": "^7.27.1",
+ "@babel/plugin-syntax-import-attributes": "^7.27.1",
+ "@babel/plugin-syntax-import-source": "^7.27.1",
"@stylistic/eslint-plugin-js": "^4.2.0",
- "eslint": "^9.21.0",
+ "eslint": "^9.25.1",
"eslint-formatter-tap": "^8.40.0",
- "eslint-plugin-jsdoc": "^50.6.9",
+ "eslint-plugin-jsdoc": "^50.6.11",
"eslint-plugin-markdown": "^5.1.0",
"globals": "^16.0.0"
}