Skip to content

build(deps): bump effect from 3.19.14 to 3.20.0#17

Open
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/npm_and_yarn/effect-3.20.0
Open

build(deps): bump effect from 3.19.14 to 3.20.0#17
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/npm_and_yarn/effect-3.20.0

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 20, 2026

Bumps effect from 3.19.14 to 3.20.0.

Release notes

Sourced from effect's releases.

effect@3.20.0

Minor Changes

Patch Changes

  • #6107 fc82e81 Thanks @​gcanti! - Backport Types.VoidIfEmpty to 3.x

  • #6088 82996bc Thanks @​taylorOntologize! - Schema: fix Schema.omit producing wrong result on Struct with optionalWith({ default }) and index signatures

    getIndexSignatures now handles Transformation AST nodes by delegating to ast.to, matching the existing behavior of getPropertyKeys and getPropertyKeyIndexedAccess. Previously, Schema.omit on a struct combining Schema.optionalWith (with { default }, { as: "Option" }, etc.) and Schema.Record would silently take the wrong code path, returning a Transformation with property signatures instead of a TypeLiteral with index signatures.

  • #6086 4d97a61 Thanks @​taylorOntologize! - Schema: fix getPropertySignatures crash on Struct with optionalWith({ default }) and other Transformation-producing variants

    SchemaAST.getPropertyKeyIndexedAccess now handles Transformation AST nodes by delegating to ast.to, matching the existing behavior of getPropertyKeys. Previously, calling getPropertySignatures on a Schema.Struct containing Schema.optionalWith with { default }, { as: "Option" }, { nullable: true }, or similar options would throw "Unsupported schema (Transformation)".

  • #6097 f6b0960 Thanks @​gcanti! - Fix TupleWithRest post-rest validation to check each tail index sequentially.

effect@3.19.19

Patch Changes

effect@3.19.18

Patch Changes

effect@3.19.17

Patch Changes

  • #6040 a8c436f Thanks @​jacobconley! - Fix Stream.decodeText to correctly handle multi-byte UTF-8 characters split across chunk boundaries.

effect@3.19.16

Patch Changes

  • #6018 e71889f Thanks @​codewithkenzo! - fix(Match): handle null/undefined in Match.tag and Match.tagStartsWith

    Added null checks to discriminator and discriminatorStartsWith predicates to prevent crashes when matching nullable union types.

    Fixes #6017

effect@3.19.15

Patch Changes

... (truncated)

Changelog

Sourced from effect's changelog.

3.20.0

Minor Changes

Patch Changes

  • #6107 fc82e81 Thanks @​gcanti! - Backport Types.VoidIfEmpty to 3.x

  • #6088 82996bc Thanks @​taylorOntologize! - Schema: fix Schema.omit producing wrong result on Struct with optionalWith({ default }) and index signatures

    getIndexSignatures now handles Transformation AST nodes by delegating to ast.to, matching the existing behavior of getPropertyKeys and getPropertyKeyIndexedAccess. Previously, Schema.omit on a struct combining Schema.optionalWith (with { default }, { as: "Option" }, etc.) and Schema.Record would silently take the wrong code path, returning a Transformation with property signatures instead of a TypeLiteral with index signatures.

  • #6086 4d97a61 Thanks @​taylorOntologize! - Schema: fix getPropertySignatures crash on Struct with optionalWith({ default }) and other Transformation-producing variants

    SchemaAST.getPropertyKeyIndexedAccess now handles Transformation AST nodes by delegating to ast.to, matching the existing behavior of getPropertyKeys. Previously, calling getPropertySignatures on a Schema.Struct containing Schema.optionalWith with { default }, { as: "Option" }, { nullable: true }, or similar options would throw "Unsupported schema (Transformation)".

  • #6097 f6b0960 Thanks @​gcanti! - Fix TupleWithRest post-rest validation to check each tail index sequentially.

3.19.19

Patch Changes

3.19.18

Patch Changes

3.19.17

Patch Changes

  • #6040 a8c436f Thanks @​jacobconley! - Fix Stream.decodeText to correctly handle multi-byte UTF-8 characters split across chunk boundaries.

3.19.16

Patch Changes

  • #6018 e71889f Thanks @​codewithkenzo! - fix(Match): handle null/undefined in Match.tag and Match.tagStartsWith

    Added null checks to discriminator and discriminatorStartsWith predicates to prevent crashes when matching nullable union types.

... (truncated)

Commits
  • aa47393 Version Packages (#6089)
  • 8798a84 fix(effect): isolate scheduler runners per fiber (#6124)
  • fc82e81 Backport Types.VoidIfEmpty to 3.x (#6107)
  • f6b0960 Backport: Fix TupleWithRest post-rest index drift validation bug (#6097)
  • 82996bc fix(Schema): handle Transformation in getIndexSignatures for correct omit beh...
  • 4d97a61 Schema: fix getPropertySignatures crash on Struct with optionalWith({ default...
  • ab3b64c Version Packages (#6080)
  • 2d2bb13 fix semaphore race condition where permits could be leaked (#6081)
  • 4eb5c00 build ManagedRuntime synchronously if possible (#6079)
  • 4f21075 Version Packages (#6063)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Greptile Summary

This is a Dependabot-generated PR that bumps the effect library from 3.19.14 to 3.20.0 in packages/tools/exa. The new version includes a minor fix for AsyncLocalStorage isolation across fibers in the scheduler, plus several Schema-related bug fixes. The change is low risk for the application code.

Key changes:

  • packages/tools/exa/package.json: effect peer dependency specifier updated from ^3.19.14^3.20.0
  • pnpm-lock.yaml: effect and @effect/platform snapshots updated to reflect the new version
  • Side effect — jsdom downgrade: The lockfile regeneration also switched the optional jsdom peer resolved for vitest@4.0.16 from 28.1.026.1.0, removing a large set of packages that required Node.js >= 20.19.0 (undici@7.22.0, cssstyle@6.2.0, @asamuzakjp/dom-selector, etc.). This is unrelated to the effect bump and should be verified against the test suite.
  • Several other optional/transitive packages were incidentally updated (graphql 16.12.0 → 16.13.1, tough-cookie 6.0.0 → 6.0.1, tldts/tldts-core 7.0.19 → 7.0.27, type-fest 5.4.1 → 5.5.0).

Confidence Score: 4/5

  • Safe to merge; the effect bump is routine and low-risk, but the unintended jsdom downgrade (28 → 26) in the lockfile is worth verifying against the test suite.
  • The core change is a well-scoped minor version bump of effect with only bug fixes and one scheduler improvement. No application source files were modified. The small concern is the collateral jsdom 28→26 downgrade in the lockfile, which only affects the test environment and is likely benign, but is worth a quick CI check before merging.
  • pnpm-lock.yaml — review the jsdom version change (28.1.0 → 26.1.0) and ensure tests still pass.

Important Files Changed

Filename Overview
packages/tools/exa/package.json Bumps the effect peer dependency specifier from ^3.19.14 to ^3.20.0 — straightforward and expected change.
pnpm-lock.yaml Lockfile updated for effect 3.20.0, but also includes a notable downgrade of the vitest optional peer jsdom from 28.1.0 to 26.1.0, with the removal of several Node >= 20.19.0 packages that were jsdom@28's dependencies.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[packages/tools/exa/package.json\neffect ^3.19.14 → ^3.20.0] --> B[pnpm-lock.yaml regenerated]
    B --> C[effect 3.19.14 → 3.20.0\nCore dependency bump]
    B --> D[effect/platform 0.94.1\nPeer resolution updated\n3.19.14 → 3.20.0]
    B --> E[Collateral lockfile changes]
    E --> F[jsdom 28.1.0 → 26.1.0\nvitest optional peer downgrade]
    E --> G[graphql 16.12.0 → 16.13.1\ntough-cookie 6.0.0 → 6.0.1\ntldts 7.0.19 → 7.0.27\ntype-fest 5.4.1 → 5.5.0]
    F --> H[Removed Node ≥20.19 packages\nundici, cssstyle, data-urls\nwhatwg-url@16, etc.]
Loading

Comments Outside Diff (1)

  1. pnpm-lock.yaml, line 43 (link)

    P2 Unexpected jsdom downgrade in vitest peer resolution

    While the stated goal of this PR is only to bump effect from 3.19.14 to 3.20.0, the regenerated lockfile also downgrades the optional jsdom peer used by vitest@4.0.16 from 28.1.026.1.0 — a two-major-version rollback.

    jsdom@28 (and its dependency chain: @acemir/cssom, @asamuzakjp/dom-selector@6.8.1, cssstyle@6.2.0, undici@7.22.0, whatwg-url@16.0.1, data-urls@7.0.0, etc.) required Node.js ^20.19.0 || ^22.12.0 || >=24.0.0. All of those packages have been removed from the lockfile. jsdom@26 has a more relaxed engine requirement and was already present in the lockfile.

    This change is likely benign (both are optional dev dependencies used only in tests), but it is an unintended side effect that isn't mentioned in the PR description. If your CI or local environment runs Node < 20.19.0, this might actually be an improvement; however, if you rely on any jsdom@28-specific behaviour in your test suite (e.g. newer DOM/CSS APIs), tests could start behaving differently. It is worth verifying that the test suite still passes after this change.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: pnpm-lock.yaml
    Line: 43
    
    Comment:
    **Unexpected jsdom downgrade in vitest peer resolution**
    
    While the stated goal of this PR is only to bump `effect` from `3.19.14` to `3.20.0`, the regenerated lockfile also downgrades the optional `jsdom` peer used by `vitest@4.0.16` from `28.1.0``26.1.0` — a two-major-version rollback.
    
    `jsdom@28` (and its dependency chain: `@acemir/cssom`, `@asamuzakjp/dom-selector@6.8.1`, `cssstyle@6.2.0`, `undici@7.22.0`, `whatwg-url@16.0.1`, `data-urls@7.0.0`, etc.) required Node.js `^20.19.0 || ^22.12.0 || >=24.0.0`. All of those packages have been removed from the lockfile. `jsdom@26` has a more relaxed engine requirement and was already present in the lockfile.
    
    This change is likely benign (both are optional dev dependencies used only in tests), but it is an unintended side effect that isn't mentioned in the PR description. If your CI or local environment runs Node `< 20.19.0`, this might actually be an improvement; however, if you rely on any `jsdom@28`-specific behaviour in your test suite (e.g. newer DOM/CSS APIs), tests could start behaving differently. It is worth verifying that the test suite still passes after this change.
    
    How can I resolve this? If you propose a fix, please make it concise.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: pnpm-lock.yaml
Line: 43

Comment:
**Unexpected jsdom downgrade in vitest peer resolution**

While the stated goal of this PR is only to bump `effect` from `3.19.14` to `3.20.0`, the regenerated lockfile also downgrades the optional `jsdom` peer used by `vitest@4.0.16` from `28.1.0``26.1.0` — a two-major-version rollback.

`jsdom@28` (and its dependency chain: `@acemir/cssom`, `@asamuzakjp/dom-selector@6.8.1`, `cssstyle@6.2.0`, `undici@7.22.0`, `whatwg-url@16.0.1`, `data-urls@7.0.0`, etc.) required Node.js `^20.19.0 || ^22.12.0 || >=24.0.0`. All of those packages have been removed from the lockfile. `jsdom@26` has a more relaxed engine requirement and was already present in the lockfile.

This change is likely benign (both are optional dev dependencies used only in tests), but it is an unintended side effect that isn't mentioned in the PR description. If your CI or local environment runs Node `< 20.19.0`, this might actually be an improvement; however, if you rely on any `jsdom@28`-specific behaviour in your test suite (e.g. newer DOM/CSS APIs), tests could start behaving differently. It is worth verifying that the test suite still passes after this change.

How can I resolve this? If you propose a fix, please make it concise.

Last reviewed commit: "build(deps): bump ef..."

Bumps [effect](https://github.com/Effect-TS/effect/tree/HEAD/packages/effect) from 3.19.14 to 3.20.0.
- [Release notes](https://github.com/Effect-TS/effect/releases)
- [Changelog](https://github.com/Effect-TS/effect/blob/main/packages/effect/CHANGELOG.md)
- [Commits](https://github.com/Effect-TS/effect/commits/effect@3.20.0/packages/effect)

---
updated-dependencies:
- dependency-name: effect
  dependency-version: 3.20.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Mar 20, 2026
@vercel
Copy link

vercel bot commented Mar 20, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
better-registry Ready Ready Preview, Comment Mar 20, 2026 10:05pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants