Skip to content

chore(deps): bump immutable from 3.8.2 to 4.3.9 - #7974

Open
dependabot[bot] wants to merge 3 commits into
mainfrom
dependabot/npm_and_yarn/immutable-4.3.9
Open

chore(deps): bump immutable from 3.8.2 to 4.3.9#7974
dependabot[bot] wants to merge 3 commits into
mainfrom
dependabot/npm_and_yarn/immutable-4.3.9

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 3, 2026

Copy link
Copy Markdown
Contributor

Bumps immutable from 3.8.2 to 4.3.9.

Release notes

Sourced from immutable's releases.

v4.3.9

What's changed

Full Changelog: immutable-js/immutable-js@v4.3.8...v4.3.9

v4.3.8

Fix Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') in immutable

v4.3.7

What's Changed

Full Changelog: immutable-js/immutable-js@v4.3.6...v4.3.7

v4.3.6

What's Changed

Internals

New Contributors

Full Changelog: immutable-js/immutable-js@v4.3.5...v4.3.6

v4.3.5

What's Changed

New Contributors

Full Changelog: immutable-js/immutable-js@v4.3.4...v4.3.5

4.3.4

What's Changed

... (truncated)

Changelog

Sourced from immutable's changelog.

4.3.9

5.1.7

  • fix(Repeat): lastIndexOf returned size instead of size - 1 by @​chatman-media in immutable-js/immutable-js#2227. Fixes CVE CVE-2026-29063
  • fix(IndexedCollection): has(index) on a lazy Seq of unknown size now checks index existence instead of searching for a value equal to the index #2203
  • [TypeScript]: reduce/reduceRight without an initial value now infer the result type from the collection's values when the reducer returns a value (e.g. list.reduce((a, b) => a + b) infers number), matching Array#reduce. Previously an explicit type argument was required. #2205

5.1.6

  • fix(reverseFactory): read reversedSequence.size in __iterator instead of this #2196

5.1.5

  • Fix Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') in immutable

5.1.4

Documentation

Internal

5.1.3

TypeScript

Documentation

... (truncated)

Commits
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for immutable since your current version.


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.

Bumps [immutable](https://github.com/immutable-js/immutable-js) from 3.8.2 to 4.3.9.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](immutable-js/immutable-js@v3.8.2...v4.3.9)

---
updated-dependencies:
- dependency-name: immutable
  dependency-version: 4.3.9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from a team as a code owner September 3, 2026 19:43
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Sep 3, 2026
@netlify

netlify Bot commented Sep 3, 2026

Copy link
Copy Markdown

Deploy Preview for decap-cms ready!

Name Link
🔨 Latest commit 2295a11
🔍 Latest deploy log https://app.netlify.com/projects/decap-cms/deploys/6a9a88dcb2196e000867a093
😎 Deploy Preview https://deploy-preview-7974--decap-cms.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

martinjagodic and others added 2 commits September 4, 2026 10:36
Bumping immutable to 4.3.9 broke the build and silently corrupted entry
data. This adapts the codebase to the new behaviour and type definitions.

Runtime fixes:

- immutable 4's `mergeDeep` concatenates Lists instead of merging them by
  index, even when both sides are the same List instance. Because
  `serializeEntryValues` merged the serialized data back over the original
  values with `mergeDeep`, every save of an entry with a list field
  duplicated its items, growing on each save. A shallow `merge` is correct
  here: `serializedData` already holds the fully recursed value for each
  known field, so only unknown fields need preserving.
- The same hazard applied to `fieldsMetaData` in the entry draft reducer,
  which relation widgets populate with entry data that can contain lists.
  Replaced `mergeDeepIn` with a merge that recurses Maps but replaces any
  other value, matching immutable 3's observable behaviour.

Type fixes for the stricter definitions (`getIn` returning `unknown`,
`get`/`find` returning `V | undefined`, `fromJS`/`toJS` no longer
resolving through the `StaticallyTypedRecord` shim, and precise literal
key inference from `Map(obj)`).

Also fixes two latent bugs the stricter types exposed:

- `hasIntegration` wrapped its argument in `fromJS`, but `getIntegrations`
  has taken a plain `CmsConfig` since #4960, so it always returned false
  and disabled the `list-entries` integration check added in #4849.
- `MediaLibraryInstance.show` declared `config` as an immutable record,
  but the caller passes `config.toJS()` and every implementation spreads
  it as a plain object.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
immutable 4's `fromJS` recurses into any iterable, where immutable 3 only
descended into plain objects and arrays. `unsentRequest` ran the whole
request object through `fromJS`, so a `FormData` body - which is iterable
- was converted into a Map, and the `toJS()` in `toFetchArguments` then
handed `fetch` a plain object instead of the original body.

Bitbucket is the only backend that sends a `FormData` body, which is why
every Bitbucket write failed: media upload, entry persist and delete. The
other backends send JSON strings and were unaffected.

Convert only `params` and `headers`, the two keys the request helpers
actually traverse, and pass every other value through by reference.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@martinjagodic
martinjagodic requested review from yanthomasdev and removed request for a team September 4, 2026 09:12
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.

1 participant