chore(deps): update dependency execa to v9 #598
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^8.0.0
->^9.0.0
Release Notes
sindresorhus/execa (execa)
v9.0.2
Compare Source
v9.0.1
Compare Source
v9.0.0
Compare Source
This major release brings many important features including:
Please check the release post for a high-level overview! For the full list of breaking changes, features and bug fixes, please read below.
Thanks @younggglcy, @koshic, @am0o0 and @codesmith-emmy for your help!
One of the maintainers @ehmicky is looking for a remote full-time position. Specialized in Node.js back-ends and CLIs, he led Netlify Build, Plugins and Configuration for 2.5 years. Feel free to contact him on his website or on LinkedIn!
Breaking changes
Minimal supported Node.js version is now
18.19.0
. (834e372
)When the
encoding
option is'buffer'
, the output (result.stdout
,result.stderr
,result.all
) is now anUint8Array
instead of aBuffer
. For more information, see this blog post. (by @younggglcy) (#586)encoding
option. (#586, #928)subprocess.pipeStdout()
,subprocess.pipeStderr()
andsubprocess.pipeAll()
has been removed. Instead, a{file: './path'}
object should be passed to thestdout
orstderr
option. (#752)subprocess.pipeStdout()
,subprocess.pipeStderr()
andsubprocess.pipeAll()
has been removed. Instead, the stream should be passed to thestdout
orstderr
option. If the stream does not have a file descriptor,['pipe', stream]
should be passed instead. (#752)subprocess.pipeStdout()
,subprocess.pipeStderr()
andsubprocess.pipeAll()
methods have been renamed tosubprocess.pipe()
. The command and its arguments can be passed tosubprocess.pipe()
directly, without callingexeca()
a second time. Thefrom
piping option can specify'stdout'
(the default value),'stderr'
or'all'
. (#757)signal
option tocancelSignal
. (#880)error.killed
toerror.isTerminated
. (#625)subprocess.cancel()
has been removed. Please use eithersubprocess.kill()
or thecancelSignal
option instead. (#711)forceKillAfterTimeout
option toforceKillAfterDelay
. Also, it is now passed toexeca()
instead ofsubprocess.kill()
. (#714, #723)verbose
option is now a string enum instead of a boolean.false
has been renamed to'none'
andtrue
has been renamed to'short'
. (#884)execPath
option has been renamed tonodePath
. It is now a noop unless thenode
option istrue
. Also, it now works even if thepreferLocal
option isfalse
. (#812, #815)serialization
option is now'advanced'
instead of'json'
. In particular, when callingsubprocess.send(object)
with an object that contains functions or symbols, those were previously silently removed. Now this will throw an exception. (#905)subprocess.stdout
,subprocess.stderr
orsubprocess.all
is manually piped, the.pipe()
call must now happen as soon assubprocess
is created. Otherwise, the output at the beginning of the subprocess might be missing. (#658, #747)subprocess.kill()
and to thekillSignal
option cannot be lowercase anymore. (#1025)Features
Execution
execa()
), as opposed to only$
. Conversely,$
can now use the regular array syntax. (#933)execa(options)
. (#933, #965)execa()
,execaNode()
, theinputFile
option, thenodePath
option or theshell
option. (#630, #631, #632, #635)Text lines
lines
option. (#741, #929, #931, #948, #951, #957)Piping multiple subprocesses
subprocess.pipe()
without callingexeca()
. A template string can also be used. (#840, #859, #864)result.pipedFrom
anderror.pipedFrom
. (#834)stdin
/stdout
/stderr
by using thefrom
andto
piping options. (#757, #834, #903, #920)unpipeSignal
piping option. (#834, #852)Input/output
stdin
,stdout
andstderr
options. For example,stdout: ['inherit', 'pipe']
prints the output to the terminal while still returning it asresult.stdout
. (#643, #765, #941, #954){file: './path'}
object or a file URL to thestdin
,stdout
orstderr
option. (#610, #614, #621, #671, #1004)stdin
,stdout
orstderr
option. (#693, #697, #698, #699, #709, #736, #737, #739, #740, #746, #748, #755, #756, #780, #783, #867, #915, #916, #917, #919, #924, #926, #945, #969)Uint8Array
to theinput
orstdin
option. (834e372
, #670, #1029)stdin
option. (#604, #944)stdin
,input
andinputFile
options. (#666)result.stdout
andresult.stderr
by usingresult.stdio
. (#676)stdout
andstderr
with the following options:verbose
,lines
,stripFinalNewline
,maxBuffer
,buffer
. (#966, #970, #971, #972, #973, #974)Streams
ReadableStream
orWritableStream
to thestdin
,stdout
orstderr
option. (#615, #619, #645)Duplex
, Node.jsTransform
or webTransformStream
to thestdin
,stdout
orstderr
option. (#937, #938)subprocess.readable()
,subprocess.writable()
orsubprocess.duplex()
. (#912, #922, #958)Verbose mode
verbose: 'short'
orverbose: 'full'
option. (#887, #890)verbose: 'full'
option. (#884, #950, #962, #990)verbose
option. (#883, #893, #894)Debugging
result.durationMs
anderror.durationMs
. (#896)result.cwd
. Previously onlyerror.cwd
was available. Also,result.cwd
anderror.cwd
are now normalized to absolute file paths. (#803)result.escapedCommand
in a terminal is now safe. (#875)Errors
ExecaError
andExecaSyncError
classes are now exported. (#911)error.cause
. (#911)maxBuffer
option by usingerror.isMaxBuffer
. (#963)error.message
:error.stdout
anderror.stderr
are now interleaved if theall
option istrue
. Additional file descriptors are now printed too. Also, the formatting has been improved. (#676, #705, #991, #992)error.message
are now escaped, so they don't result in visual bugs when printed in a terminal. (#879)error
event is emitted onsubprocess.stdout
orsubprocess.stderr
. (#814)Termination
subprocess.kill()
. (#811, #836, #1023)forceKillAfterDelay
andkillSignal
options now apply to terminations due not only tosubprocess.kill()
but also to thecancelSignal
,timeout
,maxBuffer
andcleanup
options. (#714, #728)Node.js files
nodePath
andnodeOptions
options with any method, as opposed to onlyexecaNode()
, by passing thenode: true
option. (#804, #812, #815)execaNode()
or thenode: true
option, the current Node.js version is now inherited deeply. If the subprocess spawns other subprocesses, they will all use the same Node.js version. (#812, #815, #1011)Synchronous execution
all
andbuffer: false
options withexecaSync()
, as opposed to onlyexeca()
. (#953, #956)$.s
alias for$.sync
. (#594)Inter-process communication
ipc: true
option, as opposed to the more verbosestdio: ['pipe', 'pipe', 'pipe', 'ipc']
option. (#794)Input validation
input
,timeout
,cwd
,detached
,cancelSignal
andencoding
options. (#668, #715, #803, #928, #940)execa()
and the other exported methods. (#838, #873, #899)subprocess.kill()
and to thekillSignal
option. (#1025)Bug fixes
undefined
values as options. This now uses the option's default value. (#712)inputFile
option points to a missing file. (#609)buffer
option isfalse
andsubprocess.stdout
errors. (#729)'overlapped'
to thestdout
orstderr
option withexecaSync()
. (#949)'error'
events are emitted on the subprocess. (#790)reject: false
option not being used when the subprocess fails to spawn. (#734)error.isTerminated
. (#625, #719)true
when the subprocess fails due to thetimeout
option.true
when callingprocess.kill(subprocess.pid)
, except on Windows.false
when using non-terminating signals such assubprocess.kill(0)
.error.signal
anderror.signalDescription
when the subprocess is terminated by thecancelSignal
option. (#724)execa()
call might be modified by anotherexeca()
call. (#796, #806, #911)verbose
option printing the command in the wrong order. (#600)maxBuffer
andencoding
options. For example, when usingencoding: 'hex'
,maxBuffer
will now be measured in hexadecimal characters. Also,error.stdout
,error.stderr
anderror.all
were previously not applying themaxBuffer
option. (#652, #696)maxBuffer
option not truncatingresult.stdout
andresult.stderr
when usingexecaSync()
. (#960)buffer: true
option (its default value) and iterating oversubprocess.stdout
orsubprocess.stderr
. (#908)subprocess.all
stream incorrectly being in object mode. (#717)subprocess.stdout
andsubprocess.stderr
are properly flushed when the subprocess fails. (#647)timeout
option. (#727)Types (breaking changes)
CommonOptions
type toOptions
(forexeca()
) andSyncOptions
(forexecaSync()
). (#678, #682)NodeOptions
type toOptions
. (#804)KillOptions
type toOptions
. (#714)Options
andSyncOptions
types. (#681)ExecaChildProcess
type toResultPromise
. This is the type ofexeca()
's return value, which is both aPromise<Result>
and aSubprocess
. (#897, #1007, #1009)ExecaChildPromise
type toSubprocess
. This is the type of the subprocess instance. (#897, #1007, #1009)ExecaReturnBase
,ExecaReturnValue
andExecaSyncReturnValue
type toResult
(forexeca()
) andSyncResult
(forexecaSync()
). (#897, #1009)stdin
option fromStdioOption
toStdinOption
(forexeca()
) andStdinSyncOption
(forexecaSync()
). (#942, #1008, #1012)stdout
andstderr
options fromStdioOption
toStdoutStderrOption
(forexeca()
) andStdoutStderrSyncOption
(forexecaSync()
). (#942, #1008, #1012)stdio
option fromStdioOption[]
toOptions['stdio']
(forexeca()
) andSyncOptions['stdio']
(forexecaSync()
). (#942, #1008)Result
,SyncResult
,ExecaError
,ExecaSyncError
,ResultPromise
andSubprocess
types is now anOptions
type. (#681)Types (improvements)
stdin
,stdout
,stderr
andstdio
options. (#634, #943, #952)result.stdout
,result.stderr
,result.all
,subprocess.stdout
,subprocess.stderr
andsubprocess.all
. (#681, #684, #687, #689, #833)execaSync()
. (#678, #939)reject
option. (#688)error.signal
and thekillSignal
option. (#1025)error.exitCode
, since that field is sometimesundefined
. (#680)Documentation
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.