Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

2025-01-07, Version 23.6.0 (Current) #56450

Merged
merged 61 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
7233623
meta: move MoLow to TSC regular member
MoLow Dec 18, 2024
46fb69d
build: build v8 with -fvisibility=hidden on macOS
joyeecheung Dec 19, 2024
4c978b4
doc: fix links in `module.md`
aduh95 Dec 19, 2024
c1627e9
test: make `test-permission-sqlite-load-extension` more robust
aduh95 Dec 19, 2024
db83d2f
Revert "events: add hasEventListener util for validate"
origranot Dec 17, 2024
e9762bf
test: add test case for listeners
origranot Dec 17, 2024
7819bfe
test: deflake test-esm-loader-hooks-inspect-brk
lpinca Dec 19, 2024
d1b009b
lib: suppress source map lookup exceptions
legendecas Dec 17, 2024
e4b795e
lib: optimize `prepareStackTrace` on builtin frames
legendecas Dec 17, 2024
97d854e
test_runner,cli: mark test isolation as stable
cjihrig Dec 20, 2024
4930244
test: remove async-hooks/test-writewrap flaky designation
lpinca Dec 20, 2024
3a3f5c9
stream: validate undefined sizeAlgorithm in WritableStream
jazelly Dec 20, 2024
cdb631e
esm: add experimental support for addon modules
legendecas Dec 20, 2024
417a8eb
node-api: remove deprecated attribute from napi_module_register
vmoroz Dec 20, 2024
ab3e646
build: test macos-13 on GitHub actions
targos Dec 20, 2024
717cfa4
module: use buffer.toString base64
legendecas Dec 21, 2024
dc3dafc
tools: add release line label when opening release proposal
aduh95 Dec 21, 2024
710b8fc
doc: add entry to changelog about SQLite Session Extension
louwers Dec 21, 2024
0ec2ed0
build: fix GN build for ngtcp2
zcbenz Dec 18, 2024
a4f336f
tools: fix `require-common-first` lint rule from subfolder
aduh95 Dec 22, 2024
9369942
test: check typescript loader
marco-ippolito Dec 23, 2024
06de0c6
deps: update simdutf to 5.7.0
nodejs-github-bot Dec 24, 2024
eaefd90
deps: update ngtcp2 to 1.10.0
nodejs-github-bot Dec 24, 2024
d4404f0
test: migrate message eval tests from Python to JS
yiyunlei Oct 31, 2023
c062ffc
test: add coverage for pipeline
jakecastelli Dec 17, 2024
96a3804
test: increase spin for eventloop test on s390
mhdawson Dec 10, 2024
959f133
module: support eval with ts syntax detection
marco-ippolito Dec 24, 2024
079cee0
test: skip `test-sqlite-extensions` when SQLite is not built by us
aduh95 Dec 24, 2024
3943986
doc: fix the `crc32` documentation
kevinuehara Dec 24, 2024
2a5543b
src: use starts_with in fs_permission.cc
IlyasShabi Dec 25, 2024
384ccba
doc: update macOS and Xcode versions for releases
targos Dec 25, 2024
4188ee0
test: deflake test-watch-file-shared-dependency
lpinca Dec 25, 2024
3db4809
doc: clarify that WASM is trusted
mcollina Dec 25, 2024
ecc718c
doc: use `<ul>` instead of `<ol>` in `SECURITY.md`
aduh95 Dec 23, 2024
c2837f0
meta: move one or more collaborators to emeritus
nodejs-github-bot Dec 25, 2024
2a5ac93
url: use resolved path to convert UNC paths to URL
aduh95 Dec 25, 2024
accbdad
test: enable ts test on win arm64
marco-ippolito Dec 26, 2024
64556ba
test: improve abort signal dropping test
geeksilva97 Dec 26, 2024
e5ba216
module: unflag --experimental-strip-types
marco-ippolito Dec 26, 2024
38ce249
doc: expand description of `parseArg`'s `default`
bakkot Dec 27, 2024
b757e40
test: remove test-net-write-fully-async-hex-string flaky designation
lpinca Dec 28, 2024
20ace0b
test: remove test-worker-arraybuffer-zerofill flaky designation
lpinca Dec 28, 2024
7b4d288
assert: make partialDeepStrictEqual throw when comparing [0] with [-0]
puskin94 Dec 12, 2024
b9c0852
deps: update googletest to e54519b
nodejs-github-bot Dec 28, 2024
54f6d68
test: remove flaky designation
lpinca Dec 28, 2024
d194f1a
sqlite: pass conflict type to conflict resolution handler
louwers Dec 29, 2024
c102328
lib: add typescript support to STDIN eval
marco-ippolito Dec 29, 2024
510649f
test: use unusual chars in the path to ensure our tests are robust
aduh95 Dec 30, 2024
8a87e39
test: remove empty lines from snapshots
marco-ippolito Dec 24, 2024
c2baae8
lib: refactor execution.js
marco-ippolito Dec 24, 2024
6e6f6b0
test: add ts eval snapshots
marco-ippolito Dec 25, 2024
195990a
deps: update googletest to 7d76a23
nodejs-github-bot Dec 31, 2024
6afe363
deps: update amaro to 0.2.1
nodejs-github-bot Dec 31, 2024
4f77920
module: fix async resolution error within the sync `findPackageJSON`
JakobJingleheimer Dec 31, 2024
c2f4d8d
node-api: define version 10
gabrielschulhof Dec 31, 2024
8dc39e5
process: add process.ref() and process.unref() methods
jasnell Dec 29, 2024
03df76c
doc: add example for piping ReadableStream
gabrielschulhof Jan 1, 2025
29f5d70
src: use v8::LocalVector consistently with other minor cleanups
jasnell Dec 31, 2024
9d4930b
deps: update simdutf to 5.7.2
nodejs-github-bot Jan 2, 2025
8b20cc2
worker: add eval ts input
marco-ippolito Jan 3, 2025
9fa6aeb
2025-01-07, Version 23.6.0 (Current)
nodejs-github-bot Jan 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions .github/workflows/test-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
path: node
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
Expand All @@ -51,6 +52,13 @@ jobs:
- name: Environment Information
run: npx envinfo
- name: Build
run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn"
run: make -C node build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn"
- name: Test
run: make run-ci -j4 V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
run: make -C node run-ci -j4 V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
- name: Re-run test in a folder whose name contains unusual chars
run: |
mv node "$DIR"
cd "$DIR"
./tools/test.py --flaky-tests keep_retrying -p actions -j 4
env:
DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…`
20 changes: 16 additions & 4 deletions .github/workflows/test-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ permissions:
jobs:
test-macOS:
if: github.event.pull_request.draft == false
runs-on: macos-14
strategy:
fail-fast: false
matrix:
macos-version: [macos-13, macos-14]
runs-on: ${{ matrix.macos-version }}
env:
CC: sccache gcc
CXX: sccache g++
Expand All @@ -47,6 +51,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
path: node
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
Expand All @@ -64,7 +69,7 @@ jobs:
# happen anymore running this step here first, that's also useful
# information.)
- name: tools/doc/node_modules workaround
run: make tools/doc/node_modules
run: make -C node tools/doc/node_modules
# This is needed due to https://github.com/nodejs/build/issues/3878
- name: Cleanup
run: |
Expand All @@ -80,8 +85,15 @@ jobs:
df -h
echo "::endgroup::"
- name: Build
run: make build-ci -j$(getconf _NPROCESSORS_ONLN) V=1 CONFIG_FLAGS="--error-on-warn"
run: make -C node build-ci -j$(getconf _NPROCESSORS_ONLN) V=1 CONFIG_FLAGS="--error-on-warn"
- name: Free Space After Build
run: df -h
- name: Test
run: make run-ci -j$(getconf _NPROCESSORS_ONLN) V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
run: make -C node run-ci -j$(getconf _NPROCESSORS_ONLN) V=1 TEST_CI_ARGS="-p actions --node-args='--test-reporter=spec' --node-args='--test-reporter-destination=stdout' --measure-flakiness 9"
- name: Re-run test in a folder whose name contains unusual chars
run: |
mv node "$DIR"
cd "$DIR"
./tools/test.py --flaky-tests keep_retrying -p actions -j 4
env:
DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…`
4 changes: 2 additions & 2 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@ Binaries at <https://nodejs.org/download/release/> are produced on:
| Binary package | Platform and Toolchain |
| ----------------------- | ------------------------------------------------------------------------------------------------------------- |
| aix-ppc64 | AIX 7.2 TL04 on PPC64BE with GCC 12[^5] |
| darwin-x64 | macOS 11, Xcode 13 with -mmacosx-version-min=11.0 |
| darwin-arm64 (and .pkg) | macOS 11 (arm64), Xcode 13 with -mmacosx-version-min=11.0 |
| darwin-x64 | macOS 13, Xcode 16 with -mmacosx-version-min=11.0 |
| darwin-arm64 (and .pkg) | macOS 13 (arm64), Xcode 14 with -mmacosx-version-min=11.0 |
| linux-arm64 | RHEL 8 with gcc-toolset-12[^6] |
| linux-armv7l | Cross-compiled on RHEL 9 x64 with a [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools)[^7] |
| linux-ppc64le | RHEL 8 with gcc-toolset-12[^6] |
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V23.md#23.5.0">23.5.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V23.md#23.6.0">23.6.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V23.md#23.5.0">23.5.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V23.md#23.4.0">23.4.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V23.md#23.3.0">23.3.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V23.md#23.2.0">23.2.0</a><br/>
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,6 @@ For information about the governance of the Node.js project, see
**Matteo Collina** <<[email protected]>> (he/him)
* [mhdawson](https://github.com/mhdawson) -
**Michael Dawson** <<[email protected]>> (he/him)
* [MoLow](https://github.com/MoLow) -
**Moshe Atlow** <<[email protected]>> (he/him)
* [RafaelGSS](https://github.com/RafaelGSS) -
**Rafael Gonzaga** <<[email protected]>> (he/him)
* [richardlau](https://github.com/richardlau) -
Expand Down Expand Up @@ -211,6 +209,8 @@ For information about the governance of the Node.js project, see
**Shelley Vohr** <<[email protected]>> (she/her)
* [GeoffreyBooth](https://github.com/GeoffreyBooth) -
**Geoffrey Booth** <<[email protected]>> (he/him)
* [MoLow](https://github.com/MoLow) -
**Moshe Atlow** <<[email protected]>> (he/him)
* [Trott](https://github.com/Trott) -
**Rich Trott** <<[email protected]>> (he/him)

Expand Down Expand Up @@ -451,8 +451,6 @@ For information about the governance of the Node.js project, see
**Vladimir Morozov** <<[email protected]>> (he/him)
* [VoltrexKeyva](https://github.com/VoltrexKeyva) -
**Mohammed Keyvanzadeh** <<[email protected]>> (he/him)
* [watilde](https://github.com/watilde) -
**Daijiro Wachi** <<[email protected]>> (he/him)
* [zcbenz](https://github.com/zcbenz) -
**Cheng Zhao** <<[email protected]>> (he/him)
* [ZYSzys](https://github.com/ZYSzys) -
Expand Down Expand Up @@ -707,6 +705,8 @@ For information about the governance of the Node.js project, see
**Vladimir Kurchatkin** <<[email protected]>>
* [vsemozhetbyt](https://github.com/vsemozhetbyt) -
**Vse Mozhet Byt** <<[email protected]>> (he/him)
* [watilde](https://github.com/watilde) -
**Daijiro Wachi** <<[email protected]>> (he/him)
* [watson](https://github.com/watson) -
**Thomas Watson** <<[email protected]>>
* [whitlockjc](https://github.com/whitlockjc) -
Expand Down
68 changes: 34 additions & 34 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,23 +82,23 @@ Vulnerabilities related to this case may be fixed by a documentation update.

**Node.js does NOT trust**:

1. Data received from the remote end of inbound network connections
that are accepted through the use of Node.js APIs and
which is transformed/validated by Node.js before being passed
to the application. This includes:
* HTTP APIs (all flavors) server APIs.
2. The data received from the remote end of outbound network connections
that are created through the use of Node.js APIs and
which is transformed/validated by Node.js before being passed
to the application EXCEPT with respect to payload length. Node.js trusts
that applications make connections/requests which will avoid payload
sizes that will result in a Denial of Service.
* HTTP APIs (all flavors) client APIs.
* DNS APIs.
3. Consumers of data protected through the use of Node.js APIs (for example,
people who have access to data encrypted through the Node.js crypto APIs).
4. The file content or other I/O that is opened for reading or writing by the
use of Node.js APIs (ex: stdin, stdout, stderr).
* Data received from the remote end of inbound network connections
that are accepted through the use of Node.js APIs and
which is transformed/validated by Node.js before being passed
to the application. This includes:
* HTTP APIs (all flavors) server APIs.
* The data received from the remote end of outbound network connections
that are created through the use of Node.js APIs and
which is transformed/validated by Node.js before being passed
to the application EXCEPT with respect to payload length. Node.js trusts
that applications make connections/requests which will avoid payload
sizes that will result in a Denial of Service.
* HTTP APIs (all flavors) client APIs.
* DNS APIs.
* Consumers of data protected through the use of Node.js APIs (for example,
people who have access to data encrypted through the Node.js crypto APIs).
* The file content or other I/O that is opened for reading or writing by the
use of Node.js APIs (ex: stdin, stdout, stderr).

In other words, if the data passing through Node.js to/from the application
can trigger actions other than those documented for the APIs, there is likely
Expand All @@ -108,23 +108,23 @@ lead to a loss of confidentiality, integrity, or availability.

**Node.js trusts everything else**. Examples include:

1. The developers and infrastructure that runs it.
2. The operating system that Node.js is running under and its configuration,
along with anything under control of the operating system.
3. The code it is asked to run, including JavaScript and native code, even if
said code is dynamically loaded, e.g., all dependencies installed from the
npm registry.
The code run inherits all the privileges of the execution user.
4. Inputs provided to it by the code it is asked to run, as it is the
responsibility of the application to perform the required input validations,
e.g. the input to `JSON.parse()`.
5. Any connection used for inspector (debugger protocol) regardless of being
opened by command line options or Node.js APIs, and regardless of the remote
end being on the local machine or remote.
6. The file system when requiring a module.
See <https://nodejs.org/api/modules.html#all-together>.
7. The `node:wasi` module does not currently provide the comprehensive file
system security properties provided by some WASI runtimes.
* The developers and infrastructure that runs it.
* The operating system that Node.js is running under and its configuration,
along with anything under control of the operating system.
* The code it is asked to run, including JavaScript, WASM and native code, even
if said code is dynamically loaded, e.g., all dependencies installed from the
npm registry.
The code run inherits all the privileges of the execution user.
* Inputs provided to it by the code it is asked to run, as it is the
responsibility of the application to perform the required input validations,
e.g. the input to `JSON.parse()`.
* Any connection used for inspector (debugger protocol) regardless of being
opened by command line options or Node.js APIs, and regardless of the remote
end being on the local machine or remote.
* The file system when requiring a module.
See <https://nodejs.org/api/modules.html#all-together>.
* The `node:wasi` module does not currently provide the comprehensive file
system security properties provided by some WASI runtimes.

Any unexpected behavior from the data manipulation from Node.js Internal
functions may be considered a vulnerability if they are exploitable via
Expand Down
21 changes: 11 additions & 10 deletions benchmark/fixtures/simple-error-stack.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 7 additions & 5 deletions benchmark/fixtures/simple-error-stack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';

function simpleErrorStack() {
try {
(lorem as any).BANG();
} catch (e) {
return e.stack;
}
[1].map(() => {
try {
(lorem as any).BANG();
} catch (e) {
return e.stack;
}
})
}

export {
Expand Down
2 changes: 1 addition & 1 deletion benchmark/ts/strip-typescript.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const bench = common.createBenchmark(main, {
filepath: [ts, js],
n: [1e4],
}, {
flags: ['--experimental-strip-types', '--disable-warning=ExperimentalWarning'],
flags: ['--disable-warning=ExperimentalWarning'],
});

async function main({ n, filepath }) {
Expand Down
Loading
Loading