Skip to content
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

chore(deps): update dependency zx to v8.3.0 #29

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 4, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
zx (source) 8.1.3 -> 8.3.0 age adoption passing confidence

Release Notes

google/zx (zx)

v8.3.0: – Pipes of Steel

Compare 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
  • Implemented [Symbol.asyncIterator] API for ProcessPromise #​984 #​998 #​1000
    Now you can iterate over the process output using for await loop from any point of the process execution.
const process = $`sleep 0.1; echo Chunk1; sleep 0.1; echo Chunk2; sleep 0.2; echo Chunk3; sleep 0.1; echo Chunk4;`
const chunks = []

await new Promise((resolve) => setTimeout(resolve, 250))
for await (const chunk of process) {
  chunks.push(chunk)
}

chunks.length //  4
chunks[0]     // 'Chunk1'
chunks[3]     // 'Chunk4'
  • zx version is available via JS API #​986
import { version } from 'zx'
const [major] = (version || '').split('.').map(Number)
if (major < 6)
  throw new Error('zx >= 6 is required')
Pipes
  • Enabled stream picking for pipe() #​1023
const p = $`echo foo >&2; echo bar`
const o1 = (await p.pipe.stderr`cat`).toString()
const o2 = (await p.pipe.stdout`cat`).toString()

assert.equal(o1, 'foo\n')  // <- piped from stderr
assert.equal(o2, 'bar\n')  // <- stdout
  • Added signal handling on piping #​992
const ac = new AbortController()
const { signal } = ac
const p = $({ signal, nothrow: true })`echo test`.pipe`sleep 999`
setTimeout(() => ac.abort(), 50)

try {
  await p
} catch ({ message }) {
  message // The operation was aborted
}
  • Added direct piping to file shortcut #​1001
// before
await $`echo "Hello, stdout!"`.pipe(fs.createWriteStream('/tmp/output.txt'))

// after
await $`echo "Hello, stdout!"`.pipe('/tmp/output.txt')
CLI
  • Provided $.defaults setting via ZX_-prefixed environment variables #​988 #​998
ZX_VERBOSE=true ZX_SHELL='/bin/bash' zx script.mjs
zx --env=/path/to/some.env script
  • Landed installation registry customization #​994
zx --insrall --registry=https://registry.yarnpkg.com script.mjs

Fixes

Docs

Chores

Merry Christmas! 🎄🎅🎁

v8.2.4: – Leaky Faucet

Compare Source

  • Fixed bun async_hooks compatibility #​959

v8.2.3: – Golden Wrench

Compare Source

This release continues the work on pipe API enhancements:

const { stdout } = await $({ halt: true })`echo "hello"`
 .pipe`awk '{print $1" world"}'`
 .pipe`tr '[a-z]' '[A-Z]'`
 .run()

stdout // 'HELLO WORLD'
  • Let $ be piped directly from streams #​953
const getUpperCaseTransform = () =>
  new Transform({
    transform(chunk, encoding, callback) {
      callback(null, String(chunk).toUpperCase())
    },
  })

// $ > stream (promisified) > $ 
const o1 = await $`echo "hello"`
  .pipe(getUpperCaseTransform())
  .pipe($`cat`)

o1.stdout //  'HELLO\n'

// stream > $
const file = tempfile()
await fs.writeFile(file, 'test')
const o2 = await fs
  .createReadStream(file)
  .pipe(getUpperCaseTransform())
  .pipe($`cat`)

o2.stdout //  'TEST'
const file = tempfile()
const fileStream = fs.createWriteStream(file)
const p = $`echo "hello"`
  .pipe(getUpperCaseTransform())
  .pipe(fileStream)
const o = await p

p instanceof WriteStream             // true
o instanceof WriteStream             // true
o.stdout                             // 'hello\n'
o.exitCode;                          // 0
(await fs.readFile(file)).toString() // 'HELLO\n'

We'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

  • #​936 fixes endless streams piping
  • #​930 enables custom extensions support

v8.2.0

Compare Source

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
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')
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

v8.1.9

Compare Source

Today's release is a minor update that includes:

Enhancements

  • We have replaced ProcessOutput fields with lazy getters to reduce mem consumption #​903, #​908
  • Reduced ReDos risks for codeblock patterns #​906
  • Kept argv reference on update #​916
  • Strengthened Shell interface to properly handle sync mode #​915:
expectType<ProcessPromise>($`cmd`)
expectType<ProcessPromise>($({ sync: false })`cmd`)
expectType<ProcessOutput>($({ sync: true })`cmd`)
expectType<ProcessOutput>($.sync`cmd`)

Fixes

v8.1.8

Compare Source

  • Apply the proper TeplateStringArray detection #​904, #​905
  • PromiseProcess got lazy getters to optimize mem usage #​903

v8.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:

const p1 = $`exit 1`.pipe($`echo hello`)
try {
  await p1
} catch (e) {
  assert.equal(e.exitCode, 1)
}

const p2 = await $({ nothrow: true })`echo hello && exit 1`.pipe($`cat`)
assert.equal(p2.exitCode, 0)
assert.equal(p2.stdout.trim(), 'hello')

Enhancements

Added cmd display to ProcessPromise #​891:

const foo = 'bar'
const p = $`echo ${foo}`

p.cmd // 'echo bar'

and duration field to ProcessOutput #​892:

const p = $`sleep 1`.nothrow()
const o = await p

o.duration // ~1000 (in ms)

Enabled zurk-like pipe string literals #​900:

const p = await $`echo foo`.pipe`cat`
p.stdout.trim() // 'foo'

v8.1.6

Compare Source

Improvements & Fixes
  • The $.preferLocal option now also accepts a directory #​886, #​887.
$.preferLocal = true             // injects node_modules/.bin to the $PATH
$.preferLocal = '/foo/bar'       // attaches /foo/bar to the $PATH
$.preferLocal = ['/bar', '/baz'] // now the $PATH includes both /bar and /baz

Why not just $.env['PATH'] = 'extra:' + '$.env['PATH']?
Well, the API internally does the same, but also handles the win paths peculiarities.

  • Provided $.killSignal option for the symmetry with the $.timeoutSignal. You can override the default termination flow #​885:
$.killSignal = 'SIGKILL'

const p = $({nothrow: true})`sleep 10000`
setTimeout(p.kill, 100)
  
(await p).signal // SIGKILL
  • $ opt presets became chainable #​883:
const $$ = $({ nothrow: true })
assert.equal((await $$`exit 1`).exitCode, 1)

const $$$ = $$({ sync: true }) // Both {nothrow: true, sync: true} are applied
assert.equal($$$`exit 2`.exitCode, 2)
  • Enhanced the internal Duration parser #​884:
const p = $({timeout: '1mss'})`sleep 999` // raises an error now
  • Abortion signal listeners are now removed after the process completes #​881, #​889, zurk#12, zurk#13.
  • Extended integration tests matrix, added nodejs-nightly builds and TS dev snapshots #​888

v8.1.5

Compare Source

We've rolled out a new release!

Fixes

  • Added the minimist typings to the dts bundle. #​872 brings the fix.
  • Re-enabled the YAML extra
    API. #​870 #​879

Chores

  • Clarified cd(), within() and syncProcessCwd() interactions. #​878
  • Included mention of the cwd option in the documentation. #​868
  • Test enhancements. #​877 #​880

v8.1.4

Compare Source

We continue optimizing bundles and CI/CD pipelines.

  • Update @​webpod/ps to v0.0.0-beta.7 to sync internal zurk version. #​855
  • Split vendor chunk to reduce the zx/core entry size. #​856
  • Add bundle size check. #​857
  • Refactor the testing flow, remove duplicated tasks. #​861
  • Add missing types for the global defaults. #​864
  • Omit redundant YAML API extras. #​866

Which gives us: 897 kB → 829 kB (-7.58%)


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 becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from f22fe4a to 8c620a4 Compare August 28, 2024 22:01
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.1.4 chore(deps): update dependency zx to v8.1.5 Aug 28, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from 8c620a4 to 4c67b34 Compare September 5, 2024 12:46
Copy link
Contributor Author

renovate bot commented Sep 5, 2024

⚠️ Artifact update problem

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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pnpm-lock.yaml
undefined
 ERROR  Couldn't get tarball URL from dependency path bluebird@https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz

Error: Couldn't get tarball URL from dependency path bluebird@https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz
    at getTarball (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:115229:17)
    at pkgSnapshotToResolution (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:115218:19)
    at getInfoFromLockfile (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:147827:101)
    at getDepsToResolve (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:147761:34)
    at /opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:147345:36
    at Array.map (<anonymous>)
    at resolveDependenciesOfImporters (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:147344:58)
    at resolveRootDependencies (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:147265:80)
    at resolveDependencyTree (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:148298:105)
    at resolveDependencies (/opt/containerbase/tools/pnpm/9.15.1/20.18.1/node_modules/pnpm/dist/pnpm.cjs:182338:219)

@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch 2 times, most recently from d90a4ff to 9f8c690 Compare September 11, 2024 17:20
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.1.5 chore(deps): update dependency zx to v8.1.6 Sep 11, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from 9f8c690 to 51950da Compare September 17, 2024 17:09
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.1.6 chore(deps): update dependency zx to v8.1.7 Sep 17, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from 51950da to a5e32e0 Compare September 19, 2024 17:06
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.1.7 chore(deps): update dependency zx to v8.1.8 Sep 19, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from a5e32e0 to a42a5c5 Compare October 6, 2024 22:27
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.1.8 chore(deps): update dependency zx to v8.1.9 Oct 6, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from a42a5c5 to bdd4a3d Compare November 1, 2024 08:21
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.1.9 chore(deps): update dependency zx to v8.2.0 Nov 1, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from bdd4a3d to b53c509 Compare November 9, 2024 10:16
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.2.0 chore(deps): update dependency zx to v8.2.1 Nov 9, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from b53c509 to a3095b2 Compare November 12, 2024 20:54
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.2.1 chore(deps): update dependency zx to v8.2.2 Nov 12, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from a3095b2 to 721401a Compare November 28, 2024 12:58
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.2.2 chore(deps): update dependency zx to v8.2.3 Nov 28, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from 721401a to 1da4286 Compare November 28, 2024 21:28
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.2.3 chore(deps): update dependency zx to v8.2.4 Nov 28, 2024
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.2.4 chore(deps): update dependency zx to v8.2.4 - autoclosed Dec 8, 2024
@renovate renovate bot closed this Dec 8, 2024
@renovate renovate bot deleted the renovate/zx-8.x-lockfile branch December 8, 2024 18:52
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.2.4 - autoclosed chore(deps): update dependency zx to v8.2.4 Dec 9, 2024
@renovate renovate bot reopened this Dec 9, 2024
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from 80509b7 to 1da4286 Compare December 9, 2024 07:39
@renovate renovate bot force-pushed the renovate/zx-8.x-lockfile branch from 1da4286 to c6c634e Compare December 24, 2024 11:10
@renovate renovate bot changed the title chore(deps): update dependency zx to v8.2.4 chore(deps): update dependency zx to v8.3.0 Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants