
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
@bloque/differ
Advanced tools
wraps objects and arrays and keeps track of global changes around wrapped objects
This library allows wrapping up objects to track whether they have changed or
not. It uses jsum
to calculate the checksum
of an object.
This library should be able to run under any Node.js version, but we strongly encourage using the latest LTS version or a more recent one.
npm install @bloque/differ
import { differ, hasChanged } from "@bloque/differ";
const target = differ({
a: 1,
b: "orange",
});
console.log(hasChanged(target)); // false
a = 2;
console.log(hasChanged(target)); // true
a = 1;
console.log(hasChanged(target)); // false
differAll
It also supports managing lists, using the differAll
method, to determine
whether the items in the list are new.
import { differAll, hasChanged, isNew } from "@bloque/differ";
const list = differAll([
{ a: 1 },
]);
list.push({ a: 2 });
console.log(isNew(list[0])); // false
console.log(isNew(list[1])); // true
list[1].a = 3;
console.log(hasChanged(list[1])); // true
If needed, it's possible to use the methods inside Serializers
to save a
differ object so you can store it outside your program and then rebuild it to
match the state it was in before.
import { Serializers } from "@bloque/differ";
const target = differ({
a: 1,
b: 2,
});
target.b = 3;
const serialized = JSON.stringify(target, Serializers.replacer);
const reconstructed = JSON.stringify(target, Serializers.reviver);
console.log(hasChanged(reconstructed)); // true
target.b = 2;
console.log(hasChanged(reconstructed)); // true
reconstructed.b = 2;
console.log(hasChanged(reconstructed)); // false
To set it up on your local machine, you'll need the latest version of Node.js.
git clone https://github.com/bloque-app/differ.git
cd differ
npm install
npm run build
To check tests, run:
npm test
FAQs
wraps objects and arrays and keeps track of global changes around wrapped objects
We found that @bloque/differ demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 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.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.