
Security News
Open VSX Unblocks Extension IDs Used in Malware Campaign
Open VSX has removed three extension IDs from its malicious-extension list as the legitimate publishers they impersonated move to claim the names for themselves.
multi-tool
Advanced tools
Install multiple versions of NPM packages at runtime. Use any semver ranges which are also a valid (Li|U)nix directory
names as your versions and require them intuitively (e.g. require('ramda@0.23.x'), require('ramda@~0.22.1'),
require('ramda@latest')). Leverage custom invalidators to automatically keep installed packages up-to-date.
$ npm install --save multi-tool
A path to the node_modules directory you wish to install against is required. You will be given a partially applied
set of functions upon require that will then act against said path.
const install = require('multi-tool')(path);
const installed = await install('ramda', 'latest'); // 'ramda@latest'
const R = require('ramda@latest');
R.identity(0);
const installed = await install('ramda', '0.23.0'); // 'ramda@0.23.0'
const R = require('ramda@0.23.0');
R.identity(0);
const installed = await install('ramda', '0.23.x'); // 'ramda@0.23.x'
const R = require('ramda@0.23.x');
R.identity(0);
const installed = await install('ramda', '~0.22.1'); // 'ramda@~0.22.1'
const R = require('ramda@~0.22.1');
R.identity(0);
const installed = await install('package-doesnt-exist', 'latest'); // ''
const installed = await install('ramda', '99.99.99'); // ''
It is possible to use custom invalidators to customize when multi-tool should assume an already successfully
installed package should be reinstalled. This is accomplished via a higher-order function passed as an argument upon
require. The invalidator function is executed upon each install. The invalidator function is provided the package
name, the package version, and how many milliseconds ago the package at hand was last successfully installed.
The invalidator function should return a Boolean value which when true will invalidate the previously successfully
installed package and reinstall. The default invalidator behavior is to always invalidate.
const invalidator = (name, version, ago) => ago >= 0;
const install = require('multi-tool')(path, invalidator);
const invalidator = (name, version, ago) => ago >= Number.MAX_SAFE_INTEGER;
const install = require('multi-tool')(path, invalidator);
const invalidator = (name, version, ago) => version === 'latest' && ago >= 600000;
const install = require('multi-tool')(path, invalidator);
FAQs
Install and require multiple simultaneous versions of any NPM package
The npm package multi-tool receives a total of 1 weekly downloads. As such, multi-tool popularity was classified as not popular.
We found that multi-tool demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Open VSX has removed three extension IDs from its malicious-extension list as the legitimate publishers they impersonated move to claim the names for themselves.

Product
Socket’s PHP and Composer support is now in Beta for all customers, with PHP reachability analysis generally available.

Product
Socket is bringing experimental protection to Firefox, scanning 97,000+ extensions in Mozilla's official directory for malware and risky updates.