-
Notifications
You must be signed in to change notification settings - Fork 1.2k
fix(deps): update dependency execa to v9 #9224
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
base: main
Are you sure you want to change the base?
Conversation
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 3a11aeb:
|
b3b4ce3 to
68dfab4
Compare
68dfab4 to
94f5b96
Compare
94f5b96 to
784d3c3
Compare
784d3c3 to
3a11aeb
Compare
3a11aeb to
cce3f93
Compare
cce3f93 to
8d33dee
Compare
8d33dee to
728c640
Compare
728c640 to
afdad1a
Compare
afdad1a to
ade2ceb
Compare
a8042f2 to
bc0a78a
Compare
d29f017 to
76882cd
Compare
76882cd to
8273414
Compare
8273414 to
67bd246
Compare
|
All alerts resolved. Learn more about Socket for GitHub. This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. |
67bd246 to
a293b01
Compare
a293b01 to
3989e59
Compare
3989e59 to
d9753ce
Compare
d9753ce to
0062a61
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
0062a61 to
a81073a
Compare
a81073a to
4736f38
Compare
4736f38 to
7de784a
Compare
This PR contains the following updates:
^5.1.1→^9.0.0Release Notes
sindresorhus/execa (execa)
v9.6.1Compare Source
VerboseOptiontype not being properly exported (#1215)7891c39v9.6.0Compare Source
d49104av9.5.3Compare Source
1ac5b91v9.5.2Compare Source
Bug fixes
v9.5.1Compare Source
Bug fixes
verbosemode on Windows (thanks @IIIMADDINIII). (#1167)v9.5.0Compare Source
Features
stdoutorstderrto a file, allow appending instead of overwriting. (#1166)v9.4.1Compare Source
Bug fixes
process.execPathwith Deno. Thanks @w3cj! (#1160)v9.4.0Compare Source
Features
Bug fixes
execaNode()and thepreferLocaloption modify thePATHenvironment variable. This release includes some minor improvements to ensure that environment variable remains small (sindresorhus/npm-run-path#20). It also handles a few related edge cases better (sindresorhus/npm-run-path#21).Documentation
v9.3.1Compare Source
Thanks @holic and @jimhigson for your contributions!
Bugs
Bugs (types)
envoption. It was currently failing for Remix or Next.js users. (by @holic) (#1141)Documentation
v9.3.0Compare Source
Features
verboseoption can now be a function to customize logging. (#1130)v9.2.0Compare Source
This release includes a new set of methods to exchange messages between the current process and a Node.js subprocess, also known as "IPC". This allows passing and returning almost any message type to/from a Node.js subprocess. Also, debugging IPC is now much easier.
Moreover, a new
gracefulCanceloption has also been added to terminate a subprocess gracefully.For a deeper dive-in, please check and share the release post!
Thanks @iiroj for your contribution, @SimonSiefke and @adymorz for reporting the bugs fixed in this release, and @karlhorky for improving the documentation!
Deprecations
'ipc'to thestdiooption has been deprecated. It will be removed in the next major release. Instead, theipc: trueoption should be used. (#1056)execaCommand()method has been deprecated. It will be removed in the next major release. If most cases, the template string syntax should be used instead.If the file and/or multiple arguments are supplied as a single string, parseCommandString(command) can split that string into an array. More info. (#1054)
Features
gracefulCanceloption andgetCancelSignal()method to terminate a subprocess gracefully.error.isGracefullyCanceledwas also added. (#1109)error.isForcefullyTerminated. It istruewhen the subprocess was terminated by theforceKillAfterDelayoption. (#1111)subprocess.sendMessage(message)and receives them withsubprocess.getOneMessage().subprocess.getEachMessage()listens to multiple messages.sendMessage(message),getOneMessage()andgetEachMessage()instead. Those are the same methods, but imported directly from the'execa'module.ipcInputoption sends an IPC message from the current process to the subprocess as it starts. This enables passing almost any input type to a Node.js subprocess. (#1068)result.ipcOutputarray contains all the IPC messages sent by the subprocess to the current process. This enables returning almost any output type from a Node.js subprocess. (#1067, #1071, #1075)verbose: 'full'option now logs every IPC message sent by the subprocess, for debugging. More info here and there. (#1063)Types
ExecaMethod,ExecaNodeMethodandExecaScriptMethod,ExecaSyncMethodandExecaScriptSyncMethodtypes. (#1066)Messagetype, for IPC. (#1059)forceKillAfterDelay: trueoption. (#1116)Bug fixes
{file}to both thestdinand thestdoutorstderroptions. (#1058)cancelSignaloption. (#1108)engines.nodefield inpackage.json. Supported Node.js version is^18.19.0or>=20.5.0. (by @iiroj) (#1101)v9.1.0Compare Source
Features (types)
TemplateExpressiontype. (#1049)v9.0.2Compare Source
Bug fixes (types)
--lib domfor TypeScript users (#1043, #1044)rejectoption (#1046)v9.0.1Compare Source
Bug fixes (types)
3bdab606cc519bfee011dv9.0.0Compare 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 (not types)
Dropped support for Node.js version
<18.19.0and20.0.0 - 20.4.0. (834e372)When the
encodingoption is'buffer', the output (result.stdout,result.stderr,result.all) is now anUint8Arrayinstead of aBuffer. For more information, see this blog post. (by @younggglcy) (#586)encodingoption. (#586, #928)subprocess.pipeStdout(),subprocess.pipeStderr()andsubprocess.pipeAll()has been removed. Instead, a{file: './path'}object should be passed to thestdoutorstderroption. (#752)subprocess.pipeStdout(),subprocess.pipeStderr()andsubprocess.pipeAll()has been removed. Instead, the stream should be passed to thestdoutorstderroption. 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. Thefrompiping option can specify'stdout'(the default value),'stderr'or'all'. (#757)signaloption tocancelSignal. (#880)error.killedtoerror.isTerminated. (#625)try { await execa('node', ['file.js']); } catch (error) { - if (error.killed) { + if (error.isTerminated) { // ... } }subprocess.cancel()has been removed. Please use eithersubprocess.kill()or thecancelSignaloption instead. (#711)forceKillAfterTimeoutoption toforceKillAfterDelay. Also, it is now passed toexeca()instead ofsubprocess.kill(). (#714, #723)verboseoption is now a string enum instead of a boolean.falsehas been renamed to'none'andtruehas been renamed to'short'. (#884)execPathoption has been renamed tonodePath. It is now a noop unless thenodeoption istrue. Also, it now works even if thepreferLocaloption isfalse. (#812, #815)serializationoption 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.stderrorsubprocess.allis manually piped, the.pipe()call must now happen as soon assubprocessis created. Otherwise, the output at the beginning of the subprocess might be missing. (#658, #747)const subprocess = execa('node', ['file.js']); - setTimeout(() => { subprocess.stdout.pipe(process.stdout); - }, 0);subprocess.kill()and to thekillSignaloption 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(), theinputFileoption, thenodePathoption or theshelloption. (#630, #631, #632, #635)Text lines
linesoption. (#741, #929, #931, #948, #951, #957)Piping multiple subprocesses
subprocess.pipe()without callingexeca(). A template string can also be used. (#840, #859, #864)result.pipedFromanderror.pipedFrom. (#834)stdin/stdout/stderrby using thefromandtopiping options. (#757, #834, #903, #920)unpipeSignalpiping option. (#834, #852)Input/output
stdin,stdoutandstderroptions. 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,stdoutorstderroption. (#610, #614, #621, #671, #1004)stdin,stdoutorstderroption. (#693, #697, #698, #699, #709, #736, #737, #739, #740, #746, #748, #755, #756, #780, #783, #867, #915, #916, #917, #919, #924, #926, #945, #969)Uint8Arrayto theinputorstdinoption. (834e372, #670, #1029)stdinoption. (#604, #944)stdin,inputandinputFileoptions. (#666)result.stdoutandresult.stderrby usingresult.stdio. (#676)stdoutandstderrwith the following options:verbose,lines,stripFinalNewline,maxBuffer,buffer. (#966, #970, #971, #972, #973, #974)Streams
ReadableStreamorWritableStreamto thestdin,stdoutorstderroption. (#615, #619, #645)Duplex, Node.jsTransformor webTransformStreamto thestdin,stdoutorstderroption. (#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)verboseoption. (#883, #893, #894)Debugging
result.durationMsanderror.durationMs. (#896)result.cwd. Previously onlyerror.cwdwas available. Also,result.cwdanderror.cwdare now normalized to absolute file paths. (#803)result.escapedCommandin a terminal is now safe. (#875)Errors
ExecaErrorandExecaSyncErrorclasses are now exported. (#911)error.cause. (#911)maxBufferoption by usingerror.isMaxBuffer. (#963)error.message:error.stdoutanderror.stderrare now interleaved if thealloption istrue. Additional file descriptors are now printed too. Also, the formatting has been improved. (#676, #705, #991, #992)error.messageare now escaped, so they don't result in visual bugs when printed in a terminal. (#879)errorevent is emitted onsubprocess.stdoutorsubprocess.stderr. (#814)Termination
subprocess.kill(). (#811, #836, #1023)forceKillAfterDelayandkillSignaloptions now apply to terminations due not only tosubprocess.kill()but also to thecancelSignal,timeout,maxBufferandcleanupoptions. (#714, #728)Node.js files
nodePathandnodeOptionsoptions with any method, as opposed to onlyexecaNode(), by passing thenode: trueoption. (#804, #812, #815)execaNode()or thenode: trueoption, 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
allandbuffer: falseoptions withexecaSync(), as opposed to onlyexeca(). (#953, #956)$.salias for$.sync. (#594)Inter-process communication
ipc: trueoption, as opposed to the more verbosestdio: ['pipe', 'pipe', 'pipe', 'ipc']option. (#794)Input validation
input,timeout,cwd,detached,cancelSignalandencodingoptions. (#668, #715, #803, #928, #940)execa()and the other exported methods. (#838, #873, #899)subprocess.kill()and to thekillSignaloption. (#1025)Bug fixes
undefinedvalues as options. This now uses the option's default value. (#712)inputFileoption points to a missing file. (#609)bufferoption isfalseandsubprocess.stdouterrors. (#729)'overlapped'to thestdoutorstderroption withexecaSync(). (#949)'error'events are emitted on the subprocess. (#790)reject: falseoption not being used when the subprocess fails to spawn. (#734)error.isTerminated. (#625, #719)truewhen the subprocess fails due to thetimeoutoption.truewhen callingprocess.kill(subprocess.pid), except on Windows.falsewhen using non-terminating signals such assubprocess.kill(0).error.signalanderror.signalDescriptionwhen the subprocess is terminated by thecancelSignaloption. (#724)execa()call might be modified by anotherexeca()call. (#796, #806, #911)verboseoption printing the command in the wrong order. (#600)maxBufferandencodingoptions. For example, when usingencoding: 'hex',maxBufferwill now be measured in hexadecimal characters. Also,error.stdout,error.stderranderror.allwere previously not applying themaxBufferoption. (#652, #696)maxBufferoption not truncatingresult.stdoutandresult.stderrwhen usingexecaSync(). (#960)buffer: trueoption (its default value) and iterating oversubprocess.stdoutorsubprocess.stderr. (#908)subprocess.allstream incorrectly being in object mode. (#717)subprocess.stdoutandsubprocess.stderrare properly flushed when the subprocess fails. (#647)timeoutoption. (#727)Breaking changes (types)
The minimum supported TypeScript version is now
5.1.6.Renamed
CommonOptionstype toOptions(forexeca()) andSyncOptions(forexecaSync()). (#678, #682)import type {Options} from 'execa'; - const options: CommonOptions = {timeout: 1000}; + const options: Options = {timeout: 1000};NodeOptionstype toOptions. (#804)import type {Options} from 'execa'; - const options: NodeOptions = {nodeOptions: ['--no-warnings']}; + const options: Options = {nodeOptions: ['--no-warnings']};KillOptionstype toOptions. (#714)import type {Options} from 'execa'; - const options: KillOptions = {forceKillAfterTimeout: 1000}; + const options: Options = {forceKillAfterDelay: 1000};OptionsandSyncOptionstypes. (#681)import type {Options} from 'execa'; - const options: Options<'utf8'> = {encoding: 'utf8'}; + const options: Options = {encoding: 'utf8'};ExecaChildProcesstype toResultPromise. This is the type ofexeca()'s return value, which is both aPromise<Result>and aSubprocess. (#897, #1007, #1009)import type {ResultPromise, Result} from 'execa'; - const promiseOrSubprocess: ExecaChildProcess = execa('node', ['file.js']); + const promiseOrSubprocess: Re </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 7am on Tuesday,before 7am on Wednesday" in timezone Australia/Sydney, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/keystonejs/keystone). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzguMCIsInVwZGF0ZWRJblZlciI6IjQyLjY2LjE0IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->