
Research
/Security News
Popular Go Decimal Library Targeted by Long-Running Typosquat with DNS Backdoor
A long-running Go typosquat impersonated the popular shopspring/decimal library and used DNS TXT records to execute commands.
interactjs
Advanced tools
Drag and drop, resizing and multi-touch gestures with inertia and snapping for modern browsers (and also IE9+)
Features include:
npm install interactjs<script src="https://cdn.jsdelivr.net/npm/interactjs/dist/interact.min.js"></script><script src="https://unpkg.com/interactjs/dist/interact.min.js"></script>yarn add interactjs//= require interactjs/interactlibraryDependencies ++= Seq("org.webjars.npm" % "interactjs" % version)The project is written in Typescript and the npm package includes the type definitions, but if you need the typings alone, you can install them with:
npm install --save-dev @interactjs/types
var pixelSize = 16;
interact('.rainbow-pixel-canvas')
.origin('self')
.draggable({
modifiers: [
interact.modifiers.snap({
// snap to the corners of a grid
targets: [
interact.snappers.grid({ x: pixelSize, y: pixelSize }),
],
})
],
listeners: {
// draw colored squares on move
move: function (event) {
var context = event.target.getContext('2d'),
// calculate the angle of the drag direction
dragAngle = 180 * Math.atan2(event.dx, event.dy) / Math.PI;
// set color based on drag angle and speed
context.fillStyle = 'hsl(' + dragAngle + ', 86%, '
+ (30 + Math.min(event.speed / 1000, 1) * 50) + '%)';
// draw squares
context.fillRect(event.pageX - pixelSize / 2, event.pageY - pixelSize / 2,
pixelSize, pixelSize);
}
}
})
// clear the canvas on doubletap
.on('doubletap', function (event) {
var context = event.target.getContext('2d');
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
});
function resizeCanvases () {
[].forEach.call(document.querySelectorAll('.rainbow-pixel-canvas'), function (canvas) {
canvas.width = document.body.clientWidth;
canvas.height = window.innerHeight * 0.7;
});
}
// interact.js can also add DOM event listeners
interact(document).on('DOMContentLoaded', resizeCanvases);
interact(window).on('resize', resizeCanvases);
See the above code in action at https://codepen.io/taye/pen/tCKAm
interact.js is released under the MIT License.
Dragula is a drag-and-drop library that focuses on simplicity and ease of use. It provides a straightforward API for creating drag-and-drop interfaces but lacks the advanced features like resizing and gestures that Interact.js offers.
React-Draggable is a React component for making elements draggable. It is specifically designed for React applications and offers a simpler API compared to Interact.js, but it does not support resizing or gestures.
jQuery UI is a popular library that provides a wide range of UI interactions, including drag-and-drop, resizing, and more. It is more heavyweight compared to Interact.js and requires jQuery as a dependency.
FAQs
Drag and drop, resizing and multi-touch gestures with inertia and snapping for modern browsers (and also IE9+)
The npm package interactjs receives a total of 498,223 weekly downloads. As such, interactjs popularity was classified as popular.
We found that interactjs 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.
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
A long-running Go typosquat impersonated the popular shopspring/decimal library and used DNS TXT records to execute commands.

Research
Active npm supply chain attack compromises @antv packages in a fast-moving malicious publish wave tied to Mini Shai-Hulud.

Security News
/Research
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.