Back to Explore

mattphillips/deep-object-diff

GitHub
1 watchersOpen source

Last release:

Deep-object-diff is a small JavaScript library for computing deep differences between two objects, including nested arrays and nested objects. It returns the overall diff, or you can get only added, deleted, updated, or a detailed breakdown of added, deleted, and updated changes. Useful for comparing complex object states and generating change sets.

Project status

  • The source shows evidence of prior maintenance (multiple patch updates, including a security fix), but based on the last recorded upstream push in 2024-03-04 and no update entries after 2022-11-12, it appears quiet or in maintenance mode as of 2026-08-13.
  • Update cadence is not active recently, with a cluster of updates on 2022-11-12 (v1.19 through v1.1.6/v1.1.5) and then no further captured updates in the provided summaries for a long period.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v1.19

    This release is a vulnerability patch for prototype pollution in deep-object-diff, specifically addressing pollution via the returned diff object. The fix ensures the intermediate accumulator objects used to build diffs are created without a prototype, preventing __proto__-based poisoning. Tests were updated to cover diff/addedDiff/updatedDiff/deletedDiff and nested cases.

    Security
  • v1.1.8

    v1.1.8 is a small patch release focused on TypeScript typing improvements and packaging metadata. It updates the TypeScript definitions for ESM/TypeScript resolution and refines the return type of detailedDiff.

  • v1.1.7

    Release v1.1.7 is described as a fix for a broken publish. The actual code diff shows only a package version bump in package.json, with no other code changes.

  • v1.1.6

    v1.1.6 is a small patch release focused on performance and ESM compatibility. The code changes primarily remove object spread usage in diff construction to reduce allocations, and update internal import statements to include the .js extension for ES module builds.

  • v1.1.5

    Across v1.1.1 to v1.1.5, the project moved toward a dual ESM/CJS publishing setup, added GitHub Actions based CI, and refactored internal diff utilities to correctly handle object keys that collide with Object.prototype. v1.1.5 is documented as a fix for broken imports, but the code diff also includes functional behavior changes in the diff algorithm.

    Features
  • v1.1.0

    Release v1.1.0 primarily adds a new TypeScript declaration file (index.d.ts) and updates package metadata so TypeScript consumers get types from the package. However, the code diff also includes substantial new implementation code and sizable dev tooling dependency upgrades, which are not mentioned in the release notes.

    Features
  • v1.0.4

    v1.0.4 primarily fixes date comparison behavior and refreshes the project toolchain. The code changes switch Date equality checking to be based on the underlying timestamp rather than Date stringification, and the repository build and CI/testing scripts were adjusted to improve coverage reporting and exclude tests from the published dist.

  • v1.0.3

    v1.0.3 fixes the deep diff algorithms so they no longer throw when given objects that do not have a .hasOwnProperty method (for example, Object.create(null)). The release also switches the project test suite from Mocha to Jest and adds yarn.lock and yarn-based scripts.

  • v1.0.2

    This release updates the project to include an MIT LICENSE file and changes the package license metadata to MIT. It also bumps the package version to 1.0.2 and updates .gitignore to ignore npm debug logs.

  • v1.0.1

    Version 1.0.1 adds support for comparing JavaScript Date objects when computing deep diffs (diff, addedDiff, deletedDiff, updatedDiff). The code introduces explicit Date handling so Date differences are not treated as empty objects.

    Features