chore(deps): update dependency zx to v8 #614
Open
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.
Note
Mend has cancelled the proposed renaming of the Renovate GitHub app being renamed to
mend[bot]
.This notice will be removed on 2025-10-07.
This PR contains the following updates:
^7.2.3
->^8.0.0
Release Notes
google/zx (zx)
v8.8.4
: — Flange CouplingCompare Source
It's time. This release updates zx internals to make the
ps
API and related methodsProcessPromise.kill()
,kill()
work on Windows systems withoutwmic
.#1344 webpod/ps#15
https://github.blog/changelog/2025-07-31-github-actions-new-apis-and-windows-latest-migration-notice/#windows-latest-image-label-migration
v8.8.3
: — Sealing GasketCompare Source
Continues #1339 to prevent injections via
Proxy
input or customtoString()
manipulations.v8.8.2
: — Leaking ValveCompare Source
Fixes potential cmd injection via
kill()
method for Windows platform. #1337 #1339. Affects the versions range8.7.1...8.8.1
.v8.8.1
: — Turbo FlushCompare Source
We keep improving the projects internal infra to bring more stability, safety and performance for artifacts.
Featfixes
kill()
event logging #1312SIGTERM
askill()
fallback signal #1313stdio()
arg be an array #1311Enhancements
ProcessPromise[asyncIterator]
inners #1307shell
setters #1314v8.8.0
: — Pressure TestedCompare Source
This release enhances the coherence between the ProcessPromise and the Streams API, eliminating the need for certain script-level workarounds.
✨ New Features
unpipe()
— Selectively stop pipingYou can now call
.unpipe()
to stop data transfer from a source to a destination without closing any of the pair. #1302Many-to-one piping
Multiple sources can now stream into a single destination. All sources complete before the destination closes. #1300
Piping from rejected processes
Processes that exit with errors can now still pipe their output. The internal recorder retains their stream, status, and exit code. #1296
Components versions
Since zx bundles third-party libraries without their package.jsons, their versions weren’t previously visible. You can now access them via the
versions
static map — including zx itself. #1298 #1295v8.7.2
: — Copper CrafterCompare Source
Stability and customizability improvements
nothrow
option onProcessPromise
init stage #1288_snapshot.killSignal
value onkill()
#1287Fail
class #1285$
as type #1283Internal tweak ups #1276 #1277 #1278 #1279 #1280 #1281 #1282 #1286 #1289
Described the zx architecture basics. This section helps to better understand the zx concepts and internal logic, and will be useful for those who want to become a project contributor, make tools based on it, or create something similar from scratch. #1290 #1291 #1292
v8.7.1
: — Pipe WhispererCompare Source
Continues v8.7.0: handles new
ps()
corner case and improves$.kill
mechanics on Windows #1266 #1267 #1269 webpod/ps#14v8.7.0
: — Solder SaviorCompare Source
Important fixes for annoying flaky bugs
kill() 🐞
We've found an interesting case #1262
If we kill the process again, the result might be unexpected:
This happens because the
pid
may be reused by the system for another process, so we've added extra assertions to prevent indeterminacy:ps() 🐛
ps()
uses wmic internally on Windows, it relies on fragile heuristics to parse the output. We have improved this logic to handle more format variants, but over time (in v9 maybe) we're planning to change the approach.#1256 #1263 webpod/ps#12 webpod/ingrid#6
v8.6.2
: — Flow UnstoppableCompare Source
Fixes
$.prefix
&$.postfix
values settings via env variables #1261 #1260v8.6.1
: — Drain HeroCompare Source
process.env.SHELL
as default shell if defined #1252parseDuration()
arg #1249node:24-alpine
#1239v8.6.0
: — Valve VanguardCompare Source
thenable
params processing for$
literals #1237v8.5.5
: — PVC WizardCompare Source
Minor feature polish.
ProcessPromise
andProcessOutput
lines()
getters now accept a custom delimiter #1220 #1218.nothrow()
option inProcessProcess[AsyncIterator]
#1216 #1217v8.5.4
: — Pipe DreamerCompare Source
pipe(file: string)
signature type declaration #1208 #1209v8.5.3
: — Trap MasterCompare Source
expBackoff
implementation$.log.output
as defaultspinner()
outputquestion()
I/Ov8.5.2
: — Threaded PerfectionCompare Source
v8.5.0
: — Flow SplitterCompare Source
In this release we're significantly expanding the zx setup capabilities.
zx@lite
Just core functions without extras, ~7x smaller than the full version.
#1131
Detailed comparison: zx/versions
Channels
We have completely reforged the distribution flow. Now zx is available in multiple formats:
#1141...
#1157
Docker
If you'd prefer to run zx in a container, you can pull the image from the GH docker registry.
node:22-alpine is used as a base. #1142 #1145
docker pull ghcr.io/google/zx:8.5.0 docker run -t ghcr.io/google/zx:8.5.0 -e="await \$({verbose: true})\`echo foo\`" docker run -t -i -v ./:/script ghcr.io/google/zx:8.5.0 script/t.js
Chores
glob.sync
shortcut #1135ZX_REGISTRY='https://custom-registry.example.com' zx script.js
v8.4.2
Compare Source
v8.4.1
: – Rusty ElbowCompare Source
Logger enhancements are arriving in this release. #1119 #1122 #1123 #1125
v8.4.0
: – Drip DetectiveCompare Source
Try the new batch of enhancements:
npm i [email protected]
https://www.npmjs.com/package/zx/v/8.4.0Changes
--prefer-local
now allows linking both external binaries and packages #1116 #1117quote
has been slightly changed for a conner case, when zx literal gets an array.#999 #1113
nothrow
option to suppress any errors #1108 #1109@types/node
and@types/fs-extra
deps replaced with triple-slash typing refs #1102ProcessOutput
iterable #1101ProcessPromise
instantiation #1097 #1098ProcessOuput
cause #1110ProcessOutput
inners #1096 #1095.ts
extensions for relative imports #1111v8.3.2
: – Clogged DrainCompare Source
Restrics unsafe vals usage on
dotenv.stringify
#1093 #1094v8.3.1
: – Perfect SealCompare Source
The release essence: introduced full-featured
.env
support #461 → #1060 #1052 #1043 #1037 #1032 #1030 #1022API
envapi is a tiny 100 LOC dotenv-inspired parser and serializer that we've integrated into zx.
CLI
QnA
— Why not use
dotenv
directly?— 1) Size does matter 2) We'd like to avoid internal vaults.
— Why not load
.env
by default?— 1) Explicit is better than implicit 2) Runtime itself (like bun) may provide the feature.
Chore
stdall
piping #1033fullCmd
and uniqueid
#1035halt
andrun
API in docs #1046timeout
option handling for corner cases #1049killSignal
setting via env vars #1054diagnostic_channel
to built-ins list #1056id
field and introducedend
event #1057 #1058nothrown()
toggleable #1066 #1029ZX_REPL_HISTORY
envvar #1065file://
protocol check #1064mode
option fortmpdir
andtmpfile
#1063_timeoutSignal
override #1075ProcessPromise
stage #1077 #967v8.3.0
: – Pipes of SteelCompare Source
A few weeks ago zx took a part in OSS Library Night 🎉
Many thanks to the organizers and contributors who have boosted the project with their pull requests!
Today we are releasing the zx with a huge bunch of new features and improvements.
Features
API
[Symbol.asyncIterator]
API forProcessPromise
#984 #998 #1000Now you can iterate over the process output using
for await
loop from any point of the process execution.Pipes
pipe()
#1023signal
handling on piping #992CLI
$.defaults
setting viaZX_
-prefixed environment variables #988 #998ZX_VERBOSE=true ZX_SHELL='/bin/bash' zx script.mjs
--env
option to load dotenvs 1022 #1030--prefer-local
option #1015Fixes
process.exit()
#993 #997ZX_SHELL
env handling #1024Docs
main
branch #985Chores
.node_version
to improve contributors devx #1012chalk
updated to v5.4.1 #1019Merry Christmas! 🎄🎅🎁
v8.2.4
: – Leaky FaucetCompare Source
v8.2.3
: – Golden WrenchCompare Source
This release continues the work on pipe API enhancements:
ProcessOutput
data to promisified pipe values #954 #949We've also slightly tweaked up dist contents for better compatibility with bundlers #957
v8.2.2
Compare Source
What's Changed
Full Changelog: google/zx@8.2.1...8.2.2
v8.2.1
Compare Source
v8.2.0
Compare Source
Pipes supercharge today! 🚀
Features
Chore
v8.1.9
Compare Source
Today's release is a minor update that includes:
Enhancements
ProcessOutput
fields with lazy getters to reduce mem consumption #903, #908argv
reference on update #916Shell
interface to properly handlesync
mode #915:Fixes
stdall
fill for$.sync
calls: #911, #912v8.1.8
Compare Source
TeplateStringArray
detection #904, #905PromiseProcess
got lazy getters to optimize mem usage #903v8.1.7
Compare Source
Step by step on the road to improvements
Fixes
Finally, we've fixed the issue with piped process rejection #640 #899:
Enhancements
Added
cmd
display toProcessPromise
#891:and
duration
field toProcessOutput
#892:Enabled zurk-like pipe string literals #900:
v8.1.6
Compare Source
Improvements & Fixes
$.preferLocal
option now also accepts a directory #886, #887.Why not just
$.env['PATH'] = 'extra:' + '$.env['PATH']
?Well, the API internally does the same, but also handles the win paths peculiarities.
$.killSignal
option for the symmetry with the$.timeoutSignal
. You can override the default termination flow #885:$
opt presets became chainable #883:Duration
parser #884:v8.1.5
Compare Source
We've rolled out a new release!
Fixes
API. #870 #879
Chores
cd()
,within()
andsyncProcessCwd()
interactions. #878cwd
option in the documentation. #868v8.1.4
Compare Source
We continue optimizing bundles and CI/CD pipelines.
zx/core
entry size. #856defaults
. #864Which gives us: 897 kB → 829 kB (-7.58%)
v8.1.3
Compare Source
Nothing special today. We just keep improving the implementation.
Features
#824, #827, #828
zx/cli
exports its inners to allow more advanced usage.Imagine, your own CLI tool that uses
zx
as a base:#828
#650, #849
ps
:#840
Chore
$.log
acceptskind: 'custom'
#834$.verbose
and$.quiet
modes internals #835quotePowerShell
in docs #851async_hooks.createHook
warning on bun #848v8.1.2
Compare Source
Every new zx version is better than previous one. What have we here?
Features
ProcessPromise.verbose()
to enhance debugging experience.#820, #710
ProcessPromise.isSmth()
API:#823
Bug Fixes
main
entrypoint #827Chore
v8.1.1
Compare Source
This release brings a pinch of sugar and minor fixes.
Features
$.preferLocal
option to prefernode_modules/.bin
located binaries over globally system installed ones.#798
ProcessPromise
:#764, #811, #815
ProcessPromise
now exposes itssignal
reference.#816
Fixes
--quiet
is mapped to$.quiet
option. #813ProcessPromise
if it's missing. #810v8.1.0
Compare Source
This new release is a big deal. It brings significant improvements in reliability and compatibility.
New features
Added
usePwsh()
helper to switch to PowerShell v7+ #790timeout
is now configurable$
opts #796Added
--cwd
option for CLI #804Introduced
tmpdir
andtmpfile
helpers #803v8.0.2
Compare Source
In this release:
detached
option (#782)v8.0.1
Compare Source
In this release:
stdio
option (#772)signal
opt (#769)process.kill
fallback for bun (#770)v8.0.0
Compare Source
We are thrilled to announce the release of
zx
v8.0.0! 🎉With this release, we have introduced a lot of new features, improvements, and bug fixes.
We have also made some breaking changes, so please read the following release notes carefully.
🚀 New Shiny Features
Squashed deps: we use esbuild with custom plugins to forge js bundles and dts-bundle-generator for typings 2acb0f, #722
More safety, more stability and significantly reduced
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, on day 1 of the month ( * 0-3 1 * * ) (UTC), 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.
This PR was generated by Mend Renovate. View the repository job log.