
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Mergician is a uniquely flexible and light-weight utility for deep (recursive) merging/cloning of JavaScript objects. Includes options to filter, inspect, and modify properties as well as merge, sort, and remove duplicate items from arrays. Properly handl
Mergician is a uniquely flexible and light-weight utility for deep (recursive) merging/cloning of JavaScript objects.
Unlike native methods and other merge/clone utilities, Mergician provides advanced options for customizing the merge/clone process. These options make it easy to filter properties, inspect and modify properties before/after merging, merge and sort arrays, and remove duplicate array items. Property accessors and descriptors are also handled properly, ensuring that getter/setter functions are retained and descriptor values are defined on the newly merged object.
Basic object cloning using default options:
const mergician = require('mergician');
const obj1 = { a: [1, 1], b: { c: 1, d: 1 } };
const clonedObj = mergician({}, obj1);
// Results
console.log(clonedObj); // { a: [1, 1], b: { c: 1, d: 1 } }
console.log(clonedObj === obj1); // false
console.log(clonedObj.a === obj1.a); // false
console.log(clonedObj.b === obj1.b); // false
Advanced object merging using custom options:
const mergician = require('mergician');
const obj1 = { a: [1, 1], b: { c: 1, d: 1 } };
const obj2 = { a: [2, 2], b: { c: 2 } };
const obj3 = { e: 3 };
const mergedObj = mergician({
skipKeys: ['d'],
appendArrays: true,
dedupArrays: true,
filter({ key, targetObj }) {
if (key === 'e') {
targetObj['hello'] = 'world';
console.log(targetObj);
return false;
}
}
})(obj1, obj2, obj3);
// Results
console.log(mergedObj); // { a: [1, 2], b: { c: 2 }, hello: 'world' }
Platform Support
Node 10+
Chrome 61+
Edge 16+
Firefox 60+
Safari 10.1+
npm install mergician
// ES module
import mergician from 'mergician';
// CommonJS module
const mergician = require('mergician');
Available on jsdelivr (below), unpkg, and other CDN services that auto-publish npm packages.
// ES module @ latest v1.x.x (see @ version in URL)
import mergician from 'https://cdn.jsdelivr.net/npm/mergician@1/dist/mergician.min.mjs';
<!-- Global "mergician" @ latest v1.x.x (see @ version in URL) -->
<script src="https://cdn.jsdelivr.net/npm/mergician@1/dist/mergician.min.js">
See the documentation site for details.
This project is licensed under the MIT license.
Copyright (c) John Hildenbiddle (@jhildenbiddle)
1.0.1 - 1.0.3
2022-07-28 - 2022-08-01
FAQs
Uniquely flexible and light-weight utility for cloning and deep (recursive) merging of JavaScript objects. Supports descriptor values, accessor functions, and custom prototypes. Provides advanced options for customizing the clone/merge process.
The npm package mergician receives a total of 7,801 weekly downloads. As such, mergician popularity was classified as popular.
We found that mergician demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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 uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.