Open zhixiaoqiang opened 4 months ago
The latest updates on your projects. Learn more about Vercel for Git βοΈ
Name | Status | Preview | Comments | Updated (UTC) |
---|---|---|---|---|
sfc-playground-vant | β Ready (Inspect) | Visit Preview | π¬ Add feedback | Nov 19, 2024 3:34am |
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
β» Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below:
/opt/containerbase/tools/pnpm/3.4.1/22.11.0/node_modules/pnpm/lib/node_modules/graceful-fs/polyfills.js:285
if (cb) cb.apply(this, arguments)
^
TypeError: cb.apply is not a function
at /opt/containerbase/tools/pnpm/3.4.1/22.11.0/node_modules/pnpm/lib/node_modules/graceful-fs/polyfills.js:285:20
at /opt/containerbase/tools/pnpm/3.4.1/22.11.0/node_modules/pnpm/lib/node_modules/graceful-fs/polyfills.js:285:20
at FSReqCallback.oncomplete (node:fs:198:5)
Node.js v22.11.0
Latest commit: 10a3437203a56cee4d052a9285db9e9aca22fd2c
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
This PR contains the following updates:
7.2.2
->8.2.2
Release Notes
google/zx (zx)
### [`v8.2.2`](https://togithub.com/google/zx/releases/tag/8.2.2) [Compare Source](https://togithub.com/google/zx/compare/8.2.1...8.2.2) #### What's Changed - test: stdio inherit by [@antongolub](https://togithub.com/antongolub) in [https://github.com/google/zx/pull/941](https://togithub.com/google/zx/pull/941) - fix: handle nullable stdout/stderr by [@antongolub](https://togithub.com/antongolub) in [https://github.com/google/zx/pull/943](https://togithub.com/google/zx/pull/943) **Full Changelog**: https://github.com/google/zx/compare/8.2.1...8.2.2 ### [`v8.2.1`](https://togithub.com/google/zx/releases/tag/8.2.1) [Compare Source](https://togithub.com/google/zx/compare/8.2.0...8.2.1) - [#936](https://togithub.com/google/zx/pull/936) fixes endless streams piping - [#930](https://togithub.com/google/zx/pull/930) enables custom extensions support ### [`v8.2.0`](https://togithub.com/google/zx/releases/tag/8.2.0) [Compare Source](https://togithub.com/google/zx/compare/8.1.9...8.2.0) Pipes supercharge today! π #### Features - Delayed piping. You can fill dependent streams at any time during the origin process lifecycle (even when finished) without losing data. [#914](https://togithub.com/google/zx/pull/914) ```ts const result = $`echo 1; sleep 1; echo 2; sleep 1; echo 3` const piped1 = result.pipe`cat` let piped2 setTimeout(() => { piped2 = result.pipe`cat` }, 1500) await piped1 assert.equal((await piped1).toString(), '1\n2\n3\n') assert.equal((await piped2).toString(), '1\n2\n3\n') ``` - Promisified streams. [#921](https://togithub.com/google/zx/pull/921) [#922](https://togithub.com/google/zx/pull/922) [#923](https://togithub.com/google/zx/pull/923) [#928](https://togithub.com/google/zx/pull/928) ```ts const file = tempfile() const fileStream = fs.createWriteStream(file) const p = $`echo "hello"` .pipe( new Transform({ transform(chunk, encoding, callback) { callback(null, String(chunk).toUpperCase()) }, }) ) .pipe(fileStream) p instanceof WriteStream // true await p === fileStream // true (await fs.readFile(file)).toString() // 'HELLO\n' ``` #### Chore - Code improvements [#924](https://togithub.com/google/zx/pull/924) [#925](https://togithub.com/google/zx/pull/925) - Tests enhancements [#919](https://togithub.com/google/zx/pull/919) [#920](https://togithub.com/google/zx/pull/920) [#926](https://togithub.com/google/zx/pull/926) [#927](https://togithub.com/google/zx/pull/927) ### [`v8.1.9`](https://togithub.com/google/zx/releases/tag/8.1.9) [Compare Source](https://togithub.com/google/zx/compare/8.1.8...8.1.9) Today's release is a minor update that includes: #### Enhancements - We have replaced `ProcessOutput` fields with lazy getters to reduce mem consumption [#903](https://togithub.com/google/zx/pull/903), [#908](https://togithub.com/google/zx/pull/908) - Reduced ReDos risks for codeblock patterns [#906](https://togithub.com/google/zx/pull/906) - Kept `argv` reference on update [#916](https://togithub.com/google/zx/pull/916) - Strengthened `Shell` interface to properly handle `sync` mode [#915](https://togithub.com/google/zx/pull/915): ```ts expectType[#824](https://togithub.com/google/zx/pull/824), [#827](https://togithub.com/google/zx/pull/827), [#828](https://togithub.com/google/zx/pull/828) ```ts import {$} from 'zx' ``` - `zx/cli` exports its inners to allow more advanced usage. Imagine, your own CLI tool that uses `zx` as a base:
[#828](https://togithub.com/google/zx/pull/838) ```ts #!/usr/bin/env node import './index.mjs' import {main} from 'zx/cli' main() ``` - Provide intermediate store configuration for fine-grained control of memory usage.
[#650](https://togithub.com/google/zx/pull/650), [#849](https://togithub.com/google/zx/pull/849) ```ts const getFixedSizeArray = (size) => { const arr = [] return new Proxy(arr, { get: (target, prop) => prop === 'push' && arr.length >= size ? () => {} : target[prop], }) } const store = { stdout: getFixedSizeArray(1), stderr: getFixedSizeArray(1), stdall: getFixedSizeArray(0), } const p = await $({ store })`echo foo` p.stdout.trim() // 'foo' p.toString() // '' ``` - Introduced sync methods for `ps`:
[#840](https://togithub.com/google/zx/pull/840) ```ts import { ps } from 'zx' const list1 = await ps() const list2 = await tree() // new methods const list3 = ps.sync() const list4 = tree.sync() ``` #### Chore - `$.log` accepts `kind: 'custom'` [#834](https://togithub.com/google/zx/pull/834) - Describe [`$.verbose` and `$.quiet` modes internals](https://google.github.io/zx/faq#verbose-and-quiet) [#835](https://togithub.com/google/zx/pull/835) - Mention `quotePowerShell` in docs [#851](https://togithub.com/google/zx/pull/851) - Finally fixed the annoying flaky problem of the process end detection in Bun [#839](https://togithub.com/google/zx/pull/839), [coderef](https://togithub.com/webpod/zurk/pull/10/files#diff-d32293984327495f7762a47d34fd13d89e57732be64a76d01b1d5edd6c2d316cR185) - Suppress `async_hooks.createHook` warning on bun [#848](https://togithub.com/google/zx/pull/848) - Remove node-abort-controller in favor of built-in node-fetch polyfill [#842](https://togithub.com/google/zx/pull/842) - Add missing global types [#853](https://togithub.com/google/zx/pull/853) ### [`v8.1.2`](https://togithub.com/google/zx/releases/tag/8.1.2) [Compare Source](https://togithub.com/google/zx/compare/8.1.1...8.1.2) Every new zx version is better than previous one. What have we here? #### Features - Added `ProcessPromise.verbose()` to enhance debugging experience.
[#820](https://togithub.com/google/zx/pull/820), [#710](https://togithub.com/google/zx/pull/710) ```js const p = $`echo foo` p.quiet() // enable silent mode p.quiet(false) // then disable p.verbose() // enable verbose/debug mode p.verbose(false) // and turn it off await p ``` - Aligned `ProcessPromise.isSmth()` API:
[#823](https://togithub.com/google/zx/pull/823) ```js const p = $`echo foo` p.isHalted() p.isVerbose() p.isQuiet() p.isNothrow() ``` #### Bug Fixes - fix: apply EOL ensurer to the last chunk only [#825](https://togithub.com/google/zx/pull/825) - fix(cli): return exit code 1 on incorrect inputs [#826](https://togithub.com/google/zx/pull/826) - fix: set cjs bundle as legacy `main` entrypoint [#827](https://togithub.com/google/zx/pull/827) #### Chore - Published with [npm provenance](https://docs.npmjs.com/generating-provenance-statements/) [#818](https://togithub.com/google/zx/pull/818) - Minor polyfills optimizations [#821](https://togithub.com/google/zx/pull/821) ### [`v8.1.1`](https://togithub.com/google/zx/releases/tag/8.1.1) [Compare Source](https://togithub.com/google/zx/compare/8.1.0...8.1.1) This release brings a pinch of sugar and minor fixes. ##### Features - Introduced `$.preferLocal` option to prefer `node_modules/.bin` located binaries over globally system installed ones.
[#798](https://togithub.com/google/zx/issues/798) ```js $.preferLocal = true await $`c8 npm test` await $({ preferLocal: true })`eslint .` ``` - Added some formatter shortcuts for `ProcessPromise`:
[#764](https://togithub.com/google/zx/issues/764), [#811](https://togithub.com/google/zx/issues/811), [#815](https://togithub.com/google/zx/issues/815) ```js const p = $`echo 'foo\nbar'` await p.text() // foo\n\bar\n await p.text('hex') // 666f6f0a0861720a await p.buffer() // Buffer.from('foo\n\bar\n') await p.lines() // ['foo', 'bar'] await $`echo '{"foo": "bar"}'`.json() // {foo: 'bar'} ``` - `ProcessPromise` now exposes its `signal` reference.
[#816](https://togithub.com/google/zx/issues/816) ```js const p = $`sleep 999` const {signal} = p const res = fetch('https://example.com', {signal}) setTimeout(() => p.abort('reason'), 1000) ``` ##### Fixes - CLI flag `--quiet` is mapped to `$.quiet` option. [#813](https://togithub.com/google/zx/pull/813) - Module conditional exports are properly sorted now. [#812](https://togithub.com/google/zx/pull/812) - A newline character is appended to the output of `ProcessPromise` if it's missing. [#810](https://togithub.com/google/zx/pull/810) ### [`v8.1.0`](https://togithub.com/google/zx/releases/tag/8.1.0) [Compare Source](https://togithub.com/google/zx/compare/8.0.2...8.1.0) This new release is a big deal. It brings significant improvements in reliability and compatibility. - Switched to [hybrid-scheme](https://2ality.com/2019/10/hybrid-npm-packages.html) package: both ESM and CJS entry points are provided. - Extended Node.js supported versions range: from [12.17.0 to the latest 22.x.x](https://togithub.com/google/zx/blob/main/.github/workflows/test.yml#L101). - [Added](https://togithub.com/google/zx/blob/main/.github/workflows/test.yml#L84) compatibility with Deno 1.x. - zx libdefs are now compatible with [TS 4.0+](https://togithub.com/google/zx/pull/801). #### New features Added `usePwsh()` helper to switch to PowerShell v7+ [#790](https://togithub.com/google/zx/pull/790) ```js import {usePwsh, useBash} from 'zx' usePwsh() $.shell // 'pwsh' useBash() $.shell // 'bash' ``` `timeout` is now configurable `$` opts [#796](https://togithub.com/google/zx/pull/796) ```js import {$} from 'zx' await $({ timeout: 100 })`sleep 999` $.timeout = 1000 // Sets default timeout for all commands $.timeoutSignal = 'SIGKILL' // Sets signal to send on timeout await $`sleep 999` ``` Added `--cwd` option for CLI [#804](https://togithub.com/google/zx/pull/804) ```bash zx --cwd=/some/path script.js ``` Introduced `tmpdir` and `tmpfile` helpers [#803](https://togithub.com/google/zx/pull/803) ```js import {tmpdir, tmpfile} from 'zx' t1 = tmpdir() // /os/based/tmp/zx-1ra1iofojgg/ t2 = tmpdir('foo') // /os/based/tmp/zx-1ra1iofojgg/foo/ f1 = tmpfile() // /os/based/tmp/zx-1ra1iofojgg f2 = tmpfile('f.txt') // /os/based/tmp/zx-1ra1iofojgg/foo.txt f3 = tmpfile('f.txt', 'string or buffer') ``` - Support CRLF for markdown script [#788](https://togithub.com/google/zx/pull/788) - Added help digest for [man](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#man) [#806](https://togithub.com/google/zx/pull/806) - Added compatibility with Deno 1.x. β zx seems to be working with Deno 1.x. ### [`v8.0.2`](https://togithub.com/google/zx/releases/tag/8.0.2) [Compare Source](https://togithub.com/google/zx/compare/8.0.1...8.0.2) **In this release:** - Added configurable `detached` option ([#782](https://togithub.com/google/zx/issues/782)) - Fixed pkg typings entries for tsd tests ([#780](https://togithub.com/google/zx/issues/780)) ### [`v8.0.1`](https://togithub.com/google/zx/releases/tag/8.0.1) [Compare Source](https://togithub.com/google/zx/compare/8.0.0...8.0.1) **In this release**: - Added feature: add `stdio` option ([#772](https://togithub.com/google/zx/issues/772)) - Added feature: support `signal` opt ([#769](https://togithub.com/google/zx/issues/769)) - Fixed: additional `process.kill` fallback for bun ([#770](https://togithub.com/google/zx/issues/770)) ### [`v8.0.0`](https://togithub.com/google/zx/releases/tag/8.0.0) [Compare Source](https://togithub.com/google/zx/compare/7.2.3...8.0.0) 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](https://togithub.com/evanw/esbuild) with custom plugins to forge js bundles and [dts-bundle-generator](https://togithub.com/timocov/dts-bundle-generator) for typings [2acb0f](https://togithub.com/google/zx/commit/2acb0f2c786bcfe4f0ed1ac0dfc4c818d96d6c30), [#722](https://togithub.com/google/zx/pull/722) More safety, more stability and significantly reduced installation time. Zx now is **~20x** smaller. ```bash npx zx@8.0.0 npm install zx@8.0.0 ``` Options presets are here. To implement this, we have also completely refactored the `zx` core, and now it's available as a separate package β [zurk](https://togithub.com/webpod/zurk)\ [aeec7a](https://togithub.com/google/zx/commit/aeec7ae84b814d7134f88b3455e144b39429d8b6), [#733](https://togithub.com/google/zx/pull/733), [#600](https://togithub.com/google/zx/pull/600) ```ts const $$ = $({quiet: true}) await $$`echo foo` $({nothrow: true})`exit 1` ``` We have introduced `$.sync()` API\ [1f8c8b](https://togithub.com/google/zx/commit/1f8c8b85d301607faedf0ba820a742a53c6e41b2), [#738](https://togithub.com/google/zx/pull/738), [#681](https://togithub.com/google/zx/pull/681), [1d8aa9](https://togithub.com/google/zx/commit/1d8aa9356968d8e7f523f3cddac10e8b457c0ecc), [#739](https://togithub.com/google/zx/pull/739) ```ts import {$} from 'zx' const { output } = $.sync`echo foo` // foo ``` You can also override the internal API to implement pools, test mocking, etc. ```ts $.spawnSync = () => {} // defaults to `child_process.spawnSync` ``` The `input` option is now available to pass data to the command.\ [b38972](https://togithub.com/google/zx/commit/b38972e8001782f88a04feabeb89271523654e3f), [#736](https://togithub.com/google/zx/pull/736) ```ts const p1 = $({ input: 'foo' })`cat` const p2 = $({ input: Readable.from('bar') })`cat` const p3 = $({ input: Buffer.from('baz') })`cat` const p4 = $({ input: p3 })`cat` const p5 = $({ input: await p3 })`cat` ``` `AbortController` has been introduced to abort the command execution. It's available via the `ac` option.\ [fa4a7b](https://togithub.com/google/zx/commit/fa4a7b404b34986b51ad9a941c1a17ac473d0d7d), [#734](https://togithub.com/google/zx/pull/734), [#527](https://togithub.com/google/zx/pull/527) ```ts const ac = new AbortController() const p = $({ ac })`sleep 9999` setTimeout(() => ac.abort(), 100) ``` If not specified, the default instance will be used. Abortion trigger is also available via `PromiseResponse`: ```ts const p = $`sleep 9999` setTimeout(() => p.abort(), 100) ``` `kill` method is exposed now. To terminate any (not only zx starter) process: ```ts import { kill } from 'zx' await kill(123) await kill(123, 'SIGKILL') ``` Btw, we have replaced `ps-tree` with [@webpod/ps](https://togithub.com/webpod/ps) & [@webpod/ingrid](https://togithub.com/webpod/ingrid), and exposed `ps` util: ```ts import {ps} from 'zx' const children = await ps.tree(123) /** [ {pid: 124, ppid: 123}, {pid: 125, ppid: 123} ] */ const children2 = await ps.tree({pid: 123, recursive: true}) /** [ {pid: 124, ppid: 123}, {pid: 125, ppid: 123}, {pid: 126, ppid: 124}, {pid: 127, ppid: 124}, {pid: 128, ppid: 124}, {pid: 129, ppid: 125}, {pid: 130, ppid: 125}, ] */ ``` Introduced `$.postfix` option. It's like a `$.prefix`, but for the end of the command. [fb9554](https://togithub.com/google/zx/commit/fb9554f322d5b1fa013ee27fe21ab92558a7ed4b), [#756](https://togithub.com/google/zx/pull/756), [#536](https://togithub.com/google/zx/pull/#536) ```ts import {$} from 'zx' $.postfix = '; exit $LastExitCode' // for PowerShell compatibility ``` `minimist` API exposed\ [#661](https://togithub.com/google/zx/pull/661) ```ts import { minimist } from 'zx' const argv = minimist(process.argv.slice(2), {}) ``` Fixed npm package name pattern on `--install` mode [956dcc](https://togithub.com/google/zx/commit/956dcc3bbdd349ac4c41f8db51add4efa2f58456), [#659](https://togithub.com/google/zx/pull/659), [#660](https://togithub.com/google/zx/pull/660), [#663](https://togithub.com/google/zx/pull/663) ```ts import '@qux/pkg' // valid import '@qux/pkg/entry' // was invalid before and valid now ``` ##### β οΈ Breaking changes > We've tried our best to avoid them, but it was necessary. 1. `$.verbose` is set to `false` by default, but errors are still printed to `stderr`. Set `$.quiet = true` to suppress all output.\ [cafb90](https://togithub.com/google/zx/commit/cafb90dafe30a12dda9ff6b9b9e0ff9550e1272b), [#745](https://togithub.com/google/zx/pull/745), [#569](https://togithub.com/google/zx/pull/569) ```ts $.verbose = true // everything works like in v7 $.quiet = true // to completely turn off logging ``` 2. `ssh` API was dropped. Install [webpod](https://togithub.com/webpod/webpod) package instead.\ [8925a1](https://togithub.com/google/zx/commit/8925a127e4bcf7e9a2e0cf5e443076f4473eedd0), [#750](https://togithub.com/google/zx/pull/750) ```ts // import {ssh} from 'zx' β import {ssh} from 'webpod' const remote = ssh('user@host') await remote`echo foo` ``` 3. zx is not looking for `powershell` anymore, on Windows by default. If you still need it, use the `usePowerShell` helper:\ [24dcf3](https://togithub.com/google/zx/commit/24dcf3a2953777b70cc54effe2989621a9133886), [#757](https://togithub.com/google/zx/pull/757) ```ts import { usePowerShell, useBash } from 'zx' usePowerShell() // to enable powershell useBash() // switch to bash, the default ``` 4. Process cwd synchronization between `$` invocations is disabled by default. This functionality is provided via an async hook and can now be controlled directly.\ [d79a63](https://togithub.com/google/zx/commit/d79a63888352eda47a30c018c9734fb9a3347746), [#765](https://togithub.com/google/zx/pull/765) ```ts import { syncProcessCwd } from 'zx' syncProcessCwd() // restores legacy v7 behavior ``` ##### π§° Other Improvements - added dev (snapshot publish) releases [0c97b9](https://togithub.com/google/zx/commit/0c97b9f1752b8cf9fdd8178e5798b70f6440d8e4) [#723](https://togithub.com/google/zx/issues/723) - tsconfig: dropped `lib DOM` [fe0356](https://togithub.com/google/zx/commit/fe0356fd14ee8d448c74d9bba2412e70b7644ad2) [#735](https://togithub.com/google/zx/issues/735), [#619](https://togithub.com/google/zx/issues/619), [#722](https://togithub.com/google/zx/issues/722)) - implemented `ProcessPromise.valueOf()` to simplify value comparisons [0640b8](https://togithub.com/google/zx/commit/0640b80c978ba7c5c1fcb57b42f774de79181721), [#737](https://togithub.com/google/zx/issues/737), [#690](https://togithub.com/google/zx/issues/690) - enhanced `--install` API: use [depkeek](https://togithub.com/antongolub/misc/tree/master/packages/dep/depseek) for deps extraction [1a03a6](https://togithub.com/google/zx/commit/1a03a62cd17565eb181527aa2dec5b9c1d308d81) - removed `--experimental` toggle, all APIs are available by default [8a7a8f](https://togithub.com/google/zx/commit/8a7a8feb829c71ad623195f2c8391c3203c7a58e), [#751](https://togithub.com/google/zx/issues/751) - added minute support in duration [b02fd5](https://togithub.com/google/zx/commit/b02fd5279e79af44b83eb0e20d53bb9ee57c988d), [#703](https://togithub.com/google/zx/issues/703), [#704](https://togithub.com/google/zx/issues/704) - enhanced stack extraction to support bun [2026d4](https://togithub.com/google/zx/commit/2026d4a4451f963064b0b340cd8ff91cf2a5d8fd), [#752](https://togithub.com/google/zx/issues/752) - fixed `spinner` issue on weird TTY [1124e3](https://togithub.com/google/zx/commit/1124e31c9cb9f2b087aa26e019f49caebcc2aa0e), [#755](https://togithub.com/google/zx/issues/755), [#607](https://togithub.com/google/zx/issues/607) - migrated tests to native `node:test` [cd1835](https://togithub.com/google/zx/commit/cd18352320de3873a1d1473c037632212557757a) ### [`v7.2.3`](https://togithub.com/google/zx/releases/tag/7.2.3) [Compare Source](https://togithub.com/google/zx/compare/7.2.2...7.2.3) #### What's Changed - docs: fix example for within function by [@mdrobny](https://togithub.com/mdrobny) in [https://github.com/google/zx/pull/625](https://togithub.com/google/zx/pull/625) - enhance: cd to accept ProcessOutput by [@quexxon](https://togithub.com/quexxon) in [https://github.com/google/zx/pull/642](https://togithub.com/google/zx/pull/642) #### New Contributors - [@mdrobny](https://togithub.com/mdrobny) made their first contribution in [https://github.com/google/zx/pull/625](https://togithub.com/google/zx/pull/625) - [@quexxon](https://togithub.com/quexxon) made their first contribution in [https://github.com/google/zx/pull/642](https://togithub.com/google/zx/pull/642) **Full Changelog**: https://github.com/google/zx/compare/7.2.2...7.2.3
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 Renovate Bot.