Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@finnair/diff
Advanced tools
@finnair/diff
library offers paths and values (Map<Path, any>) based configurable object difference utility. Use Diff
class to analyze differences of two objects, or Versioninfo
to compare and transform two versions of the same object.
Diff
supports only primitive, array and plain object values.
JSON serialization of VersionInfo
offers nice representation of the new version (current
) with changedPaths
and configurable set of old values (previous
). Old values are useful for example in cases where natural identifier of an object changes and the old identifier is needed for targeting an update. VersionInfo
is great for change based triggers configurable by a PathMatcher
.
Install v-validation using yarn
:
yarn add @finnair/diff
Or npm
:
npm install @finnair/diff
Diff.changeset<T>(a:T, b: T)
analyzes changes between a
and b
and returns a Map<string, Change> of changed paths to Change
objects. A Change
object contains a path
(as Path), oldValue
and newValue
. Changeset can be used to patch/revert changes with Path.set
:
const diff = new Diff();
const a = {...};
const b = {...};
// patch a into b - for revert, use set change.oldValue
diff.changeset(a, b).forEach((change) => change.path.set(a, change.newValue));
VersionInfo.matches
and matchesAny
can be used to trigger functionality based on what has changed. Use PathMatcher
to specify paths of interest.
Diff
has a configurable filter that can be used to include/exclude properties/values. This can be used to for example exclude metadata fields from changeset. The default filter excludes undefined
values.
VersionInfo
supports both sync and async transformations. Both old and new values are transformed and the resulting VersionInfo
reflects the changes of transformed objects. This helps in conversions from internal to external model.
VersionInfo
is designed to be serialized as JSON. It contains the current
value, changedPaths
and configurable old values as previous
. Only matching previous values are included and only if they have changed.
7.0.0-alpha.3 (2024-11-11)
FAQs
Object Diff Based on Paths And Valudes of an Object
The npm package @finnair/diff receives a total of 8 weekly downloads. As such, @finnair/diff popularity was classified as not popular.
We found that @finnair/diff demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.