Skip to content

refactor: Bump lodash-es from 4.17.23 to 4.18.1#3314

Merged
mtrezza merged 1 commit intoalphafrom
dependabot/npm_and_yarn/lodash-es-4.18.1
Apr 3, 2026
Merged

refactor: Bump lodash-es from 4.17.23 to 4.18.1#3314
mtrezza merged 1 commit intoalphafrom
dependabot/npm_and_yarn/lodash-es-4.18.1

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 2, 2026

Bumps lodash-es from 4.17.23 to 4.18.1.

Release notes

Sourced from lodash-es's releases.

4.18.1

Bugs

Fixes a ReferenceError issue in lodash lodash-es lodash-amd and lodash.template when using the template and fromPairs functions from the modular builds. See lodash/lodash#6167

These defects were related to how lodash distributions are built from the main branch using https://github.com/lodash-archive/lodash-cli. When internal dependencies change inside lodash functions, equivalent updates need to be made to a mapping in the lodash-cli. (hey, it was ahead of its time once upon a time!). We know this, but we missed it in the last release. It's the kind of thing that passes in CI, but fails bc the build is not the same thing you tested.

There is no diff on main for this, but you can see the diffs for each of the npm packages on their respective branches:

4.18.0

v4.18.0

Full Changelog: lodash/lodash@4.17.23...4.18.0

Security

_.unset / _.omit: Fixed prototype pollution via constructor/prototype path traversal (GHSA-f23m-r3pf-42rh, fe8d32e). Previously, array-wrapped path segments and primitive roots could bypass the existing guards, allowing deletion of properties from built-in prototypes. Now constructor and prototype are blocked unconditionally as non-terminal path keys, matching baseSet. Calls that previously returned true and deleted the property now return false and leave the target untouched.

_.template: Fixed code injection via imports keys (GHSA-r5fr-rjxr-66jc, CVE-2026-4800, 879aaa9). Fixes an incomplete patch for CVE-2021-23337. The variable option was validated against reForbiddenIdentifierChars but importsKeys was left unguarded, allowing code injection via the same Function() constructor sink. imports keys containing forbidden identifier characters now throw "Invalid imports option passed into _.template".

Docs

  • Add security notice for _.template in threat model and API docs (#6099)
  • Document lower > upper behavior in _.random (#6115)
  • Fix quotes in _.compact jsdoc (#6090)

lodash.* modular packages

Diff

We have also regenerated and published a select number of the lodash.* modular packages.

These modular packages had fallen out of sync significantly from the minor/patch updates to lodash. Specifically, we have brought the following packages up to parity w/ the latest lodash release because they have had CVEs on them in the past:

Commits
  • cb0b9b9 release(patch): bump main to 4.18.1 (#6177)
  • 75535f5 chore: prune stale advisory refs (#6170)
  • 62e91bc docs: remove n_ Node.js < 6 REPL note from README (#6165)
  • 59be2de release(minor): bump to 4.18.0 (#6161)
  • af63457 fix: broken tests for _.template 879aaa9
  • 1073a76 fix: linting issues
  • 879aaa9 fix: validate imports keys in _.template
  • fe8d32e fix: block prototype pollution in baseUnset via constructor/prototype traversal
  • 18ba0a3 refactor(fromPairs): use baseAssignValue for consistent assignment (#6153)
  • b819080 ci: add dist sync validation workflow (#6137)
  • 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.

Summary by CodeRabbit

  • Chores
    • Updated lodash-es dependency to version 4.18.1

Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Bot label; pull requests that updates a dependency file javascript Pull requests that update javascript code labels Apr 2, 2026
@parse-github-assistant
Copy link
Copy Markdown

I will reformat the title to use the proper commit message syntax.

@parse-github-assistant parse-github-assistant Bot changed the title refactor: bump lodash-es from 4.17.23 to 4.18.1 refactor: Bump lodash-es from 4.17.23 to 4.18.1 Apr 2, 2026
@mtrezza
Copy link
Copy Markdown
Member

mtrezza commented Apr 3, 2026

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 3, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 3, 2026

📝 Walkthrough

Walkthrough

Updated the lodash-es dependency version from 4.17.23 to 4.18.1 in package-lock.json, including corresponding updates to the resolved tarball URL and integrity hash.

Changes

Cohort / File(s) Summary
Dependency Update
package-lock.json
Bumped lodash-es from version 4.17.23 to 4.18.1 with updated resolved URL and integrity hash values.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning PR description lacks required template sections (Issue, Approach, Tasks) and does not follow the specified format. Add missing template sections including Issue description, Approach explanation, and Tasks checklist to match the repository's PR template requirements.
Engage In Review Feedback ⚠️ Warning PR author did not engage with reviewer feedback regarding lodash-es manifest/lockfile mismatch or implement a fix. Add lodash-es to package.json dependencies and commit, or discuss with reviewer to justify the mismatch.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed PR title begins with 'refactor:' prefix and clearly describes the dependency bump from version 4.17.23 to 4.18.1.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Security Check ✅ Passed lodash-es updated from 4.17.23 to 4.18.1, patching CVE-2026-4800 and prototype pollution vulnerabilities.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dependabot/npm_and_yarn/lodash-es-4.18.1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@package-lock.json`:
- Around line 20967-20969: The lockfile contains an entry for lodash-es version
4.18.1 that is not declared in package.json; update them to match by either
adding "lodash-es": "4.18.1" (or an appropriate semver range) to package.json
dependencies/devDependencies (so tools and npm install will persist the lock
entry), or remove the lodash-es section from package-lock.json and then run npm
install (or npm ci) to regenerate the lockfile; locate references to "lodash-es"
in package-lock.json and package.json to make the corresponding change and
ensure package.json and package-lock.json stay in sync.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1965144c-4a0d-4b54-9ff4-948c0b33f751

📥 Commits

Reviewing files that changed from the base of the PR and between 21bea2f and 378065e.

📒 Files selected for processing (1)
  • package-lock.json

Comment thread package-lock.json
Comment on lines +20967 to +20969
"version": "4.18.1",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz",
"integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

python - <<'PY'
import json
from pathlib import Path

pkg = json.loads(Path("package.json").read_text())
lock = json.loads(Path("package-lock.json").read_text())

dep = None
dep_scope = None
for scope in ("dependencies", "devDependencies", "optionalDependencies"):
    v = (pkg.get(scope) or {}).get("lodash-es")
    if v is not None:
        dep, dep_scope = v, scope
        break

lock_pkg = ((lock.get("packages") or {}).get("node_modules/lodash-es") or {})
lock_ver = lock_pkg.get("version")
resolved = lock_pkg.get("resolved")
integrity = lock_pkg.get("integrity")

print(f"package.json scope: {dep_scope}")
print(f"package.json lodash-es: {dep}")
print(f"package-lock lodash-es version: {lock_ver}")
print(f"package-lock resolved: {resolved}")
print(f"package-lock integrity present: {bool(integrity)}")

# quick duplicate check in lockfile dependency tree
def walk(obj, path="root"):
    if isinstance(obj, dict):
        for k,v in obj.items():
            if k == "lodash-es" and isinstance(v, dict) and "version" in v:
                print(f"found tree entry at {path}.lodash-es -> {v['version']}")
            walk(v, f"{path}.{k}")
    elif isinstance(obj, list):
        for i,v in enumerate(obj):
            walk(v, f"{path}[{i}]")

walk(lock.get("dependencies", {}), "dependencies")
PY

Repository: parse-community/parse-dashboard

Length of output: 287


Manifest ↔ lockfile mismatch: lodash-es 4.18.1 declared in lock file but not in package.json.

The lockfile entry for lodash-es 4.18.1 at lines 20967-20969 exists in package-lock.json but lodash-es is not declared in package.json's dependencies, devDependencies, or optionalDependencies. Either:

  • Add lodash-es to the appropriate section of package.json with the correct version/range, or
  • Remove the lodash-es entry from package-lock.json if it is no longer needed

The package-lock.json and package.json must stay in sync.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package-lock.json` around lines 20967 - 20969, The lockfile contains an entry
for lodash-es version 4.18.1 that is not declared in package.json; update them
to match by either adding "lodash-es": "4.18.1" (or an appropriate semver range)
to package.json dependencies/devDependencies (so tools and npm install will
persist the lock entry), or remove the lodash-es section from package-lock.json
and then run npm install (or npm ci) to regenerate the lockfile; locate
references to "lodash-es" in package-lock.json and package.json to make the
corresponding change and ensure package.json and package-lock.json stay in sync.

@mtrezza mtrezza merged commit 6ae5a36 into alpha Apr 3, 2026
10 checks passed
@mtrezza mtrezza deleted the dependabot/npm_and_yarn/lodash-es-4.18.1 branch April 3, 2026 15:32
@parseplatformorg
Copy link
Copy Markdown
Contributor

🎉 This change has been released in version 9.1.0-alpha.12

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Apr 7, 2026
@parseplatformorg
Copy link
Copy Markdown
Contributor

🎉 This change has been released in version 9.1.0

@parseplatformorg parseplatformorg added the state:released Released as stable version label Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Bot label; pull requests that updates a dependency file javascript Pull requests that update javascript code state:released Released as stable version state:released-alpha Released as alpha version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants