Commit graph

781 commits

Author SHA1 Message Date
James M Snell
5335c101a9 fs: port SonicBoom module to fs module as Utf8Stream
As a first step to porting portions of the pino structured
logger into the runtime, this commit ports the SonicBoom
module to the fs module as Utf8Stream.

This is a faithful port of the SonicBoom module with some
modern updates, such as converting to a Class and using
Symbol.dispose. The bulk of the implementation is unchanged
from the original.

PR-URL: https://github.com/nodejs/node/pull/58897
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
2025-07-28 20:27:07 -07:00
Kevin Gibbons
9523c84c17 fs: add disposable mkdtempSync
PR-URL: https://github.com/nodejs/node/pull/58516
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
2025-07-07 06:44:07 -07:00
James M Snell
eec0302088
fs: move rmdir recursive option to end-of-life
Has been runtime deprecated for ~ 5 years now. It's time.

PR-URL: https://github.com/nodejs/node/pull/58616
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2025-06-21 16:20:38 +00:00
LiviaMedeiros
5584cc5038
fs: remove IIFE in glob
PR-URL: https://github.com/nodejs/node/pull/58418
Refs: https://github.com/nodejs/node/issues/58419
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
2025-06-18 05:19:57 +08:00
Théo LUDWIG
6710c00e56
fs: glob is stable, so should not emit experimental warnings
PR-URL: https://github.com/nodejs/node/pull/58236
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2025-05-10 14:37:27 +00:00
Yagiz Nizipli
5ed1bcbd9b
src: fix internalModuleStat v8 fast path
PR-URL: https://github.com/nodejs/node/pull/58054
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
2025-04-29 17:53:12 +00:00
Yagiz Nizipli
a4f556fc36
fs: remove ability to call truncate with fd
PR-URL: https://github.com/nodejs/node/pull/57567
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2025-03-22 19:39:44 +00:00
Antoine du Hamel
48f381d309
fs: only show deprecation warning when error code matches
PR-URL: https://github.com/nodejs/node/pull/56549
Refs: https://github.com/nodejs/node/pull/55753
Reviewed-By: Jacob Smith <jacob@frende.me>
2025-02-28 10:46:11 +00:00
Livia Medeiros
25dd206c29
fs: remove fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK
PR-URL: https://github.com/nodejs/node/pull/55862
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2025-02-23 10:28:22 +00:00
Carlos Espa
529b56ef9d
fs: deprecate passing invalid types in fs.existsSync
PR-URL: https://github.com/nodejs/node/pull/55753
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2025-01-10 13:04:14 +01:00
LiviaMedeiros
91099658a6 fs: make mutating options in Callback readdir() not affect results
PR-URL: https://github.com/nodejs/node/pull/56057
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2024-12-12 21:25:53 +00:00
Rafael Gonzaga
53356c37b7
lib: fix fs.readdir recursive async
Fixes: https://github.com/nodejs/node/issues/56006
PR-URL: https://github.com/nodejs/node/pull/56041
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
2024-12-05 21:25:25 +01:00
Gürgün Dayıoğlu
ba912ee310
fs: lazily load ReadFileContext
PR-URL: https://github.com/nodejs/node/pull/55998
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Jason Zhang <xzha4350@gmail.com>
2024-11-28 12:00:52 +00:00
Juan José
c9bf257180
lib: avoid excluding symlinks in recursive fs.readdir with filetypes
Fixes: https://github.com/nodejs/node/issues/52663
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/55714
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
Reviewed-By: James M Snell <jasnell@gmail.com>
2024-11-25 05:07:13 +00:00
Livia Medeiros
b02cd411c2
fs: runtime deprecate fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK
PR-URL: https://github.com/nodejs/node/pull/49686
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2024-11-14 23:34:02 +00:00
Gürgün Dayıoğlu
7788999ac1
lib: remove unnecessary optional chaining
PR-URL: https://github.com/nodejs/node/pull/55728
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2024-11-07 15:59:12 +00:00
Rod Vagg
7b01758ded
Revert "fs,win: fix bug in paths with trailing slashes"
This reverts commit 00b2f07f9d.

PR-URL: https://github.com/nodejs/node/pull/55527
Fixes: https://github.com/nodejs/node/issues/17801
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
2024-11-02 16:24:29 +00:00
Hüseyin Açacak
00b2f07f9d
fs,win: fix bug in paths with trailing slashes
Fixes: https://github.com/nodejs/node/issues/17801
Refs: https://github.com/nodejs/node/pull/33831
PR-URL: https://github.com/nodejs/node/pull/54160
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2024-10-10 11:14:56 +00:00
Carlos Espa
f5d454ac7e
src: add receiver to fast api callback methods
When creating an fast api the callback might use the receiver. In that
case if the internal binding is destructured the method won't have
access to the reciver and it will throw. Passing the receiver as second
argument ensures the receiver is available.

PR-URL: https://github.com/nodejs/node/pull/54408
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2024-09-28 09:46:03 +00:00
Sonny
090add7864
fs: refactoring declaratively with Array.fromAsync
Refs: https://github.com/nodejs/node/pull/51912
PR-URL: https://github.com/nodejs/node/pull/54644
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
2024-09-27 11:59:09 +02:00
Jonas
3ed9f989b8
fs: remove unnecessary option argument validation
PR-URL: https://github.com/nodejs/node/pull/53958
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
2024-08-06 18:43:41 +00:00
Rafael Gonzaga
358ff748ea
lib,permission: support Buffer to permission.has
PR-URL: https://github.com/nodejs/node/pull/54104
Fixes: https://github.com/nodejs/node/issues/54100
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2024-08-03 16:46:57 +00:00
Yagiz Nizipli
7168295e7a
fs: move rmSync implementation to c++
PR-URL: https://github.com/nodejs/node/pull/53617
Reviewed-By: Daniel Lemire <daniel@lemire.me>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2024-07-18 20:02:49 +00:00
Jonas
bcec922e3e
fs: remove unnecessary option argument validation
PR-URL: https://github.com/nodejs/node/pull/53861
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
2024-07-17 23:29:56 +00:00
Daniel Bayley
953abf4887
lib: refactor platform utility methods
PR-URL: https://github.com/nodejs/node/pull/53817
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2024-07-15 18:58:11 +00:00
RafaelGSS
b9289a6e29 lib,permission: support fs.lstat
PR-URL: https://github.com/nodejs-private/node-private/pull/486/
Fixes: https://hackerone.com/bugs?subject=nodejs&report_id=2145862
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
CVE-ID: CVE-2024-22018
2024-07-08 15:38:52 -03:00
RafaelGSS
01e9eac912 lib,permission: disable fchmod/fchown when pm enabled
PR-URL: https://github.com/nodejs-private/node-private/pull/584
Refs: https://hackerone.com/reports/2472071
CVE-ID: CVE-2024-36137
2024-07-08 15:38:33 -03:00
Yagiz Nizipli
f1ac7df535
fs: fix typings
PR-URL: https://github.com/nodejs/node/pull/53626
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2024-07-04 11:04:37 +00:00
Yagiz Nizipli
399eb338f1
fs: move ToNamespacedPath to c++
Co-Authored-By: Daniel Lemire <daniel@lemire.me>
PR-URL: https://github.com/nodejs/node/pull/52135
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Reviewed-By: Daniel Lemire <daniel@lemire.me>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2024-06-20 02:11:10 +00:00
Feng Yu
eae75fe635 doc: add err param to fs.cp callback
PR-URL: https://github.com/nodejs/node/pull/53234
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2024-06-03 22:51:17 +00:00
Feng Yu
f3c714b223 doc: add err param to fs.copyFile callback
PR-URL: https://github.com/nodejs/node/pull/53234
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2024-06-03 22:51:16 +00:00
Livia Medeiros
f202322ea4
fs: adjust typecheck for type in fs.symlink()
Throws `TypeError` instead of `Error`
Enables autodetection on Windows if `type === undefined`
Explicitly disallows unknown strings and non-string values

PR-URL: https://github.com/nodejs/node/pull/49741
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2024-05-06 13:18:42 +00:00
Antoine du Hamel
231548b5cf
lib: enforce ASCII order in error code imports
PR-URL: https://github.com/nodejs/node/pull/52625
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
2024-04-23 17:05:38 +00:00
Ruy Adorno
5548928cb4
fs: fix read / readSync positional offset types
This changeset fixes the types in comments to match the implementation.

PR-URL: https://github.com/nodejs/node/pull/52603
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: James M Snell <jasnell@gmail.com>
2024-04-22 06:06:30 +00:00
Tobias Nießen
8c0b723ccb
fs,permission: make handling of buffers consistent
Commit 2000c267dd added explicit handling
of Buffers to fs.symlink, but not to fs.symlinkSync or
fs.promises.symlink. This change adapts the latter two functions to
behave like fs.symlink.

Refs: https://github.com/nodejs/node/pull/49156
Refs: https://github.com/nodejs/node/pull/51212
PR-URL: https://github.com/nodejs/node/pull/52348
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2024-04-06 07:37:04 +00:00
Yagiz Nizipli
61e5de1268
fs: refactor maybeCallback function
PR-URL: https://github.com/nodejs/node/pull/52129
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2024-03-19 18:32:16 +00:00
Yagiz Nizipli
639c096004 fs: validate fd from cpp on fchown
PR-URL: https://github.com/nodejs/node/pull/52051
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
2024-03-14 02:01:26 +00:00
Yagiz Nizipli
9ac1fe05d7 fs: validate fd from cpp on close
PR-URL: https://github.com/nodejs/node/pull/52051
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
2024-03-14 02:01:25 +00:00
Yagiz Nizipli
3ec20f25df
fs: validate file mode from cpp
PR-URL: https://github.com/nodejs/node/pull/52050
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Reviewed-By: Daniel Lemire <daniel@lemire.me>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2024-03-14 01:22:55 +00:00
Moshe Atlow
151d365ad1
fs: expose glob and globSync
PR-URL: https://github.com/nodejs/node/pull/51912
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Nitzan Uziely <linkgoron@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2024-03-03 23:15:35 +00:00
Jungku Lee
27d839f468
fs: update jsdoc for filehandle.createWriteStream and appendFile
PR-URL: https://github.com/nodejs/node/pull/51494
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
2024-01-20 15:55:00 +00:00
Rafael Gonzaga
22f4482587
fs,test: add URL to string to fs.watch
Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
PR-URL: https://github.com/nodejs/node/pull/51346
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2024-01-05 00:49:07 +00:00
Yagiz Nizipli
5155238064
fs: add missing jsdoc parameters to readSync
PR-URL: https://github.com/nodejs/node/pull/51225
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-12-22 00:09:08 +01:00
Rafael Gonzaga
2000c267dd
lib,permission: handle buffer on fs.symlink
PR-URL: https://github.com/nodejs/node/pull/51212
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
2023-12-21 17:36:13 +00:00
Yagiz Nizipli
202c87222c
fs: improve mkdtemp performance for buffer prefix
PR-URL: https://github.com/nodejs/node/pull/51078
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-12-20 10:44:12 +00:00
Yagiz Nizipli
65e70bf54e
fs: validate fd synchronously on c++
PR-URL: https://github.com/nodejs/node/pull/51027
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2023-12-18 22:06:45 +00:00
Yagiz Nizipli
3551dc07eb
fs: throw fchownSync error from c++
PR-URL: https://github.com/nodejs/node/pull/51075
Refs: https://github.com/nodejs/performance/issues/106
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-12-12 00:34:47 +00:00
Jungku Lee
42b238ec9a
fs: update params in jsdoc for createReadStream and createWriteStream
PR-URL: https://github.com/nodejs/node/pull/51063
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
2023-12-07 19:42:45 +00:00
IlyasShabi
27b2ce5ba6
fs: improve error performance of readvSync
PR-URL: https://github.com/nodejs/node/pull/50100
Refs: https://github.com/nodejs/performance/issues/106
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-12-05 18:31:23 +00:00
Murilo Kakazu
7bfb087727
fs: use default w flag for writeFileSync with utf8 encoding
PR-URL: https://github.com/nodejs/node/pull/50990
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
2023-12-03 13:49:50 +00:00