This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) |
[`1.24.1` ->
`1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.1/1.24.2)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
| [nestjs-pino](https://redirect.github.com/iamolegga/nestjs-pino) |
[`4.3.1` ->
`4.4.0`](https://renovatebot.com/diffs/npm/nestjs-pino/4.3.1/4.4.0) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.6.4` ->
`10.6.5`](https://renovatebot.com/diffs/npm/pnpm/10.6.4/10.6.5) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.7` ->
`3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.0.9) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.3.2` ->
`8.4.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.4.1) |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
<details>
<summary>Urigo/graphql-scalars (graphql-scalars)</summary>
###
[`v1.24.2`](https://redirect.github.com/Urigo/graphql-scalars/blob/HEAD/CHANGELOG.md#1242)
[Compare
Source](https://redirect.github.com/Urigo/graphql-scalars/compare/v1.24.1...v1.24.2)
##### Patch Changes
-
[#​2791](https://redirect.github.com/graphql-hive/graphql-scalars/pull/2791)
[`3e1e924`](3e1e924b93)
Thanks [@​dotansimha](https://redirect.github.com/dotansimha)! -
Enable npm provenance
</details>
<details>
<summary>iamolegga/nestjs-pino (nestjs-pino)</summary>
###
[`v4.4.0`](https://redirect.github.com/iamolegga/nestjs-pino/releases/tag/4.4.0):
: allow publishing source map files
[Compare
Source](https://redirect.github.com/iamolegga/nestjs-pino/compare/4.3.1...4.4.0)
#### What's Changed
- build(deps-dev): bump prettier from 3.5.1 to 3.5.2 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2255](https://redirect.github.com/iamolegga/nestjs-pino/pull/2255)
- build(deps-dev): bump
[@​eslint/js](https://redirect.github.com/eslint/js) from 9.20.0
to 9.21.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2256](https://redirect.github.com/iamolegga/nestjs-pino/pull/2256)
- build(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from
22.13.4 to 22.13.5 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2257](https://redirect.github.com/iamolegga/nestjs-pino/pull/2257)
- build(deps-dev): bump ts-jest from 29.2.5 to 29.2.6 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2258](https://redirect.github.com/iamolegga/nestjs-pino/pull/2258)
- build(deps-dev): bump
[@​eslint/eslintrc](https://redirect.github.com/eslint/eslintrc)
from 3.2.0 to 3.3.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2261](https://redirect.github.com/iamolegga/nestjs-pino/pull/2261)
- build(deps-dev): bump
[@​eslint/compat](https://redirect.github.com/eslint/compat) from
1.2.6 to 1.2.7 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2262](https://redirect.github.com/iamolegga/nestjs-pino/pull/2262)
- build(deps-dev): bump rxjs from 7.8.1 to 7.8.2 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2259](https://redirect.github.com/iamolegga/nestjs-pino/pull/2259)
- build(deps-dev): bump eslint from 9.20.1 to 9.21.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2260](https://redirect.github.com/iamolegga/nestjs-pino/pull/2260)
- build(deps-dev): bump
[@​typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.24.1 to 8.25.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2263](https://redirect.github.com/iamolegga/nestjs-pino/pull/2263)
- build(deps-dev): bump
[@​typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.24.1 to 8.25.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2264](https://redirect.github.com/iamolegga/nestjs-pino/pull/2264)
- build(deps-dev): bump eslint-config-prettier from 10.0.1 to 10.0.2 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2265](https://redirect.github.com/iamolegga/nestjs-pino/pull/2265)
- build(deps-dev): bump
[@​nestjs/testing](https://redirect.github.com/nestjs/testing)
from 11.0.10 to 11.0.11 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2267](https://redirect.github.com/iamolegga/nestjs-pino/pull/2267)
- build(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from
22.13.5 to 22.13.8 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2268](https://redirect.github.com/iamolegga/nestjs-pino/pull/2268)
- build(deps-dev): bump
[@​nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
from 11.0.10 to 11.0.11 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2269](https://redirect.github.com/iamolegga/nestjs-pino/pull/2269)
- build(deps-dev): bump prettier from 3.5.2 to 3.5.3 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2271](https://redirect.github.com/iamolegga/nestjs-pino/pull/2271)
- build(deps-dev): bump
[@​nestjs/core](https://redirect.github.com/nestjs/core) from
11.0.10 to 11.0.11 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2272](https://redirect.github.com/iamolegga/nestjs-pino/pull/2272)
- build(deps-dev): bump
[@​nestjs/platform-fastify](https://redirect.github.com/nestjs/platform-fastify)
from 11.0.10 to 11.0.11 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2273](https://redirect.github.com/iamolegga/nestjs-pino/pull/2273)
- build(deps-dev): bump
[@​nestjs/common](https://redirect.github.com/nestjs/common) from
11.0.10 to 11.0.11 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2274](https://redirect.github.com/iamolegga/nestjs-pino/pull/2274)
- build(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from
22.13.8 to 22.13.9 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2275](https://redirect.github.com/iamolegga/nestjs-pino/pull/2275)
- build(deps-dev): bump
[@​typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.25.0 to 8.26.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2276](https://redirect.github.com/iamolegga/nestjs-pino/pull/2276)
- build(deps-dev): bump
[@​typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.25.0 to 8.26.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2277](https://redirect.github.com/iamolegga/nestjs-pino/pull/2277)
- build(deps-dev): bump eslint from 9.21.0 to 9.22.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2278](https://redirect.github.com/iamolegga/nestjs-pino/pull/2278)
- build(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from
22.13.9 to 22.13.10 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2280](https://redirect.github.com/iamolegga/nestjs-pino/pull/2280)
- build(deps-dev): bump eslint-config-prettier from 10.0.2 to 10.1.1 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2281](https://redirect.github.com/iamolegga/nestjs-pino/pull/2281)
- build(deps-dev): bump
[@​typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.26.0 to 8.26.1 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2284](https://redirect.github.com/iamolegga/nestjs-pino/pull/2284)
- build(deps-dev): bump
[@​typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.26.0 to 8.26.1 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2285](https://redirect.github.com/iamolegga/nestjs-pino/pull/2285)
- build(deps-dev): bump typescript from 5.7.3 to 5.8.2 by
[@​dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2270](https://redirect.github.com/iamolegga/nestjs-pino/pull/2270)
- chore(package): allow publishing source map files by
[@​H4ad](https://redirect.github.com/H4ad) in
[https://github.com/iamolegga/nestjs-pino/pull/2288](https://redirect.github.com/iamolegga/nestjs-pino/pull/2288)
#### New Contributors
- [@​H4ad](https://redirect.github.com/H4ad) made their first
contribution in
[https://github.com/iamolegga/nestjs-pino/pull/2288](https://redirect.github.com/iamolegga/nestjs-pino/pull/2288)
**Full Changelog**:
https://github.com/iamolegga/nestjs-pino/compare/4.3.1...4.4.0
</details>
<details>
<summary>pnpm/pnpm (pnpm)</summary>
###
[`v10.6.5`](https://redirect.github.com/pnpm/pnpm/compare/v10.6.4...v10.6.5)
[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.6.4...v10.6.5)
</details>
<details>
<summary>vitest-dev/vitest (vitest)</summary>
###
[`v3.0.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.9)
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)
##### 🐞 Bug Fixes
- Typings of `ctx.skip()` as `never` - by
[@​sirlancelot](https://redirect.github.com/sirlancelot) in
[https://github.com/vitest-dev/vitest/issues/7608](https://redirect.github.com/vitest-dev/vitest/issues/7608)
[<samp>(09f35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/09f35301)
- Cleanup vitest in public `resolveConfig` API - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7623](https://redirect.github.com/vitest-dev/vitest/issues/7623)
[<samp>(db14a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db14ab71)
- Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined`
arguments - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7624](https://redirect.github.com/vitest-dev/vitest/issues/7624)
[<samp>(0fb21)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb21faa)
- Race condition in RPC filesystem cache. - by
[@​dts](https://redirect.github.com/dts) in
[https://github.com/vitest-dev/vitest/issues/7531](https://redirect.github.com/vitest-dev/vitest/issues/7531)
[<samp>(b7f55)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b7f55261)
- Fix `getState().testPath` during collection with no isolation - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7640](https://redirect.github.com/vitest-dev/vitest/issues/7640)
[<samp>(3fb3f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3fb3fbf8)
- Support custom toString method in %s format - by
[@​pengooseDev](https://redirect.github.com/pengooseDev) in
[https://github.com/vitest-dev/vitest/issues/7637](https://redirect.github.com/vitest-dev/vitest/issues/7637)
[<samp>(46d93)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/46d93a2e)
- **browser**:
- Fail playwright timeouts earlier than a test timeout - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) and
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7565](https://redirect.github.com/vitest-dev/vitest/issues/7565)
[<samp>(5eb4c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5eb4cd1f)
- Remove
[@​testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies
[#​7555](https://redirect.github.com/vitest-dev/vitest/issues/7555))"
- by [@​sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7628](https://redirect.github.com/vitest-dev/vitest/issues/7628)
and
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(94b27)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/94b27af5)
- **coverage**:
- Browser mode + `coverage.all` - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7597](https://redirect.github.com/vitest-dev/vitest/issues/7597)
[<samp>(422ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/422ba66b)
- **runner**:
- Show stacktrace on hook timeout error - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7502](https://redirect.github.com/vitest-dev/vitest/issues/7502)
[<samp>(268a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/268a19e1)
- **vite-node**:
- Fix source map of inlined node_modules - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7557](https://redirect.github.com/vitest-dev/vitest/issues/7557)
[<samp>(34aa3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/34aa322b)
- Fix missing `buildStart` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7652](https://redirect.github.com/vitest-dev/vitest/issues/7652)
[<samp>(29f5a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/29f5a848)
- **web-worker**:
- Ensure `removeEventListener` is bound to worker - by
[@​joelgallant](https://redirect.github.com/joelgallant) in
[https://github.com/vitest-dev/vitest/issues/7631](https://redirect.github.com/vitest-dev/vitest/issues/7631)
[<samp>(ff42b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ff42bcb3)
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)
###
[`v3.0.8`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.8)
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)
##### 🐞 Bug Fixes
- Fix fetch cache multiple writes - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7546](https://redirect.github.com/vitest-dev/vitest/issues/7546)
[<samp>(1a8b4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1a8b4337)
- Use browser.isolate instead of config.isolate - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7560](https://redirect.github.com/vitest-dev/vitest/issues/7560)
[<samp>(4b5ed)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4b5ed902)
- Remove vestigial spy stub, import directly from `@vitest/spy` - by
[@​mrginglymus](https://redirect.github.com/mrginglymus) in
[https://github.com/vitest-dev/vitest/issues/7575](https://redirect.github.com/vitest-dev/vitest/issues/7575)
[<samp>(7f7ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7f7ff11c)
- Correctly split the argv string - by
[@​btea](https://redirect.github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/7533](https://redirect.github.com/vitest-dev/vitest/issues/7533)
[<samp>(4325a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4325ac67)
- **browser**:
- Remove
[@​testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(5387a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5387a5b3)
- Improve source map handling for bundled files - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7534](https://redirect.github.com/vitest-dev/vitest/issues/7534)
[<samp>(e2c57)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e2c570b6)
- Print related test file and potential test in unhandled errors - by
[@​sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7564](https://redirect.github.com/vitest-dev/vitest/issues/7564)
[<samp>(fee90)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fee90d85)
- **runner**:
- Fix `beforeEach/All` cleanup callback timeout - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7500](https://redirect.github.com/vitest-dev/vitest/issues/7500)
[<samp>(0c292)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0c2924b7)
- Fix and simplify `Task.suite` initialization - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7414](https://redirect.github.com/vitest-dev/vitest/issues/7414)
[<samp>(ca9ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ca9ffac5)
- **snapshot**:
- Allow inline snapshot calls on same location with same snapshot - by
[@​jycouet](https://redirect.github.com/jycouet) and
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7464](https://redirect.github.com/vitest-dev/vitest/issues/7464)
[<samp>(d5cb8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d5cb8212)
- **vite-node**:
- Fix `buildStart` on Vite 6 - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7480](https://redirect.github.com/vitest-dev/vitest/issues/7480)
[<samp>(c0f47)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c0f47e03)
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)
</details>
<details>
<summary>google/zx (zx)</summary>
###
[`v8.4.1`](https://redirect.github.com/google/zx/releases/tag/8.4.1): –
Rusty Elbow
[Compare
Source](https://redirect.github.com/google/zx/compare/8.4.0...8.4.1)
Logger enhancements are arriving in this release.
[#​1119](https://redirect.github.com/google/zx/issues/1119)
[#​1122](https://redirect.github.com/google/zx/pull/1122)
[#​1123](https://redirect.github.com/google/zx/pull/1123)
[#​1125](https://redirect.github.com/google/zx/pull/1125)
- You can customize the output by defining your own formatters for each
log entry kind.
```ts
$.log.formatters = {
cmd: (entry: LogEntry) => `CMD: ${entry.cmd}`,
fetch: (entry: LogEntry) => `FETCH: ${entry.url}`
//...
}
```
- Cmd highlighter now *should* properly detect bins and arguments. If
still not, please report it in
[#​1122](https://redirect.github.com/google/zx/pull/1122)
- Switched to TS 5.8
[#​1120](https://redirect.github.com/google/zx/pull/1120)
- Applied [zizmor](https://woodruffw.github.io/zizmor/) to check GHA
workflows
[#​1126](https://redirect.github.com/google/zx/pull/1126)
- Prettier is now enabled as a pre-commit hook
[#​1118](https://redirect.github.com/google/zx/pull/1118)
###
[`v8.4.0`](https://redirect.github.com/google/zx/releases/tag/8.4.0): –
Drip Detective
[Compare
Source](https://redirect.github.com/google/zx/compare/8.3.2...8.4.0)
Try the new batch of enhancements: `npm i zx@8.4.0`
https://www.npmjs.com/package/zx/v/8.4.0
#### Changes
- The CLI option `--prefer-local` now allows linking both external
binaries and packages
[#​1116](https://redirect.github.com/google/zx/pull/1116)
[#​1117](https://redirect.github.com/google/zx/pull/1117)
```js
const cwd = tmpdir()
const external = tmpdir()
await fs.outputJson(path.join(external, 'node_modules/a/package.json'), {
name: 'a',
version: '1.0.0',
type: 'module',
exports: './index.js',
})
await fs.outputFile(
path.join(external, 'node_modules/a/index.js'),
`
export const a = 'AAA'
`
)
const script = `
import {a} from 'a'
console.log(a);
`
const out = await $`zx --cwd=${cwd} --prefer-local=${external} --test <<< ${script}`
assert.equal(out.stdout, 'AAA\n')
```
- The `quote` has been slightly changed for a conner case, when zx
literal gets an array.
[#​999](https://redirect.github.com/google/zx/issues/999)
[#​1113](https://redirect.github.com/google/zx/issues/1113)
```js
const p = $({prefix: '', postfix: ''})`echo ${[1, '', '*', '2']}`
// before
p.cmd // `echo 1 $'*' 2`)
// after
p.cmd // `echo 1 $'' $'*' 2`)
```
- Provided support for custom script extensions via CLI
[#​1104](https://redirect.github.com/google/zx/pull/1104)
[#​1105](https://redirect.github.com/google/zx/pull/1105)
```bash
zx script.zx # Unknown file extension "\.zx"
zx --ext=mjs script.zx # OK
```
- Enhanced `nothrow` option to suppress any errors
[#​1108](https://redirect.github.com/google/zx/pull/1108)
[#​1109](https://redirect.github.com/google/zx/pull/1109)
```js
const err = new Error('BrokenSpawn')
const o = await $({
nothrow: true,
spawn() {
throw err
},
})`echo foo`
o.ok // false
o.exitCode // null
o.message // BrokenSpawn...
o.cause // err
```
- `@types/node` and `@types/fs-extra` deps replaced with triple-slash
typing refs
[#​1102](https://redirect.github.com/google/zx/pull/1102)
- Made `ProcessOutput` iterable
[#​1101](https://redirect.github.com/google/zx/pull/1101)
- Handle inappropriate `ProcessPromise` instantiation
[#​1097](https://redirect.github.com/google/zx/pull/1097)
[#​1098](https://redirect.github.com/google/zx/pull/1098)
- Pass origin error as `ProcessOuput` cause
[#​1110](https://redirect.github.com/google/zx/pull/1110)
- Separated build and release steps
[#​1106](https://redirect.github.com/google/zx/pull/1106)
- Internal improvements
- Introduced API bus
[#​1083](https://redirect.github.com/google/zx/pull/1083)
- Optimized `ProcessOutput` inners
[#​1096](https://redirect.github.com/google/zx/pull/1096)
[#​1095](https://redirect.github.com/google/zx/pull/1095)
- Pinned deps
[#​1099](https://redirect.github.com/google/zx/pull/1099)
[#​1100](https://redirect.github.com/google/zx/pull/1100)
- Switched to explicit `.ts` extensions for relative imports
[#​1111](https://redirect.github.com/google/zx/pull/1111)
</details>
---
### 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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] <!-- 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/unraid/api).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Unraid Plugin Builder
Tool for building and testing Unraid plugins locally as well as packaging them for deployment.
Development Workflow
1. Watch for Changes
The watch command will automatically sync changes from the API, UI components, and web app into the plugin source:
# Start watching all components
pnpm run watch:all
# Or run individual watchers:
pnpm run api:watch # Watch API changes
pnpm run ui:watch # Watch Unraid UI component changes
pnpm run wc:watch # Watch web component changes
This will copy:
- API files to
./source/dynamix.unraid.net/usr/local/unraid-api - UI components to
./source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components - Web components to the same UI directory
2. Build the Plugin
Once your changes are ready, build the plugin package:
# Build using Docker - on non-Linux systems
pnpm run docker:build-and-run
# Or build with the build script
pnpm run build:validate
This will create the plugin files in ./deploy/release/
3. Serve and Install
Start a local HTTP server to serve the plugin files:
# Serve the plugin files
pnpm run http-server
Then install the plugin on your Unraid development machine by visiting:
http://SERVER_NAME.local/Plugins
Then paste the following URL into the Unraid Plugins page:
http://YOUR_LOCAL_DEV_MACHINE_IP:8080/plugins/local/dynamix.unraid.net.plg
Replace SERVER_NAME with your development machine's hostname.
Development Tips
- Run watchers in a separate terminal while developing
- The http-server includes CORS headers for local development
- Check the Unraid system log for plugin installation issues
Environment Setup
-
Initialize environment:
pnpm run env:init -
Validate environment:
pnpm run env:validate
Available Commands
Build Commands
build- Build the plugin packagebuild:validate- Build with environment validationdocker:build- Build the Docker containerdocker:run- Run the builder in Dockerdocker:build-and-run- Build and run in Docker
Watch Commands
watch:all- Watch all component changesapi:watch- Watch API changesui:watch- Watch UI component changeswc:watch- Watch web component changes
Server Commands
http-server- Serve the plugin files locally
Environment Commands
env:init- Create initial .env fileenv:validate- Validate environment setupenv:clean- Remove .env file
Troubleshooting
-
Watch not updating files
- Check that source directories exist
- Verify file permissions
-
Build failures
- Ensure .env file exists
- Check Docker setup if using containerized build
- Verify source files are present
-
Installation issues
- Confirm http-server is running
- Check your local IP is correct
- Verify plugin file permissions