![Malicious npm Package Typosquats react-login-page to Deploy Keylogger](https://cdn.sanity.io/images/cgdhsj6q/production/007b21d9cf9e03ae0bb3f577d1bd59b9d715645a-1024x1024.webp?w=400&fit=max&auto=format)
Research
Security News
Malicious npm Package Typosquats react-login-page to Deploy Keylogger
Socket researchers unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
gifsicle
Advanced tools
Package description
The gifsicle npm package is a Node.js wrapper for the Gifsicle command-line tool, which is used for manipulating GIF images. It allows you to optimize, resize, and edit GIFs programmatically.
Optimize GIF
This feature allows you to optimize a GIF file to reduce its size. The code sample demonstrates how to use the gifsicle package to optimize an input GIF and save the optimized version as output.gif.
const gifsicle = require('gifsicle');
const execFile = require('child_process').execFile;
execFile(gifsicle, ['--optimize', '--output', 'output.gif', 'input.gif'], (err) => {
if (err) throw err;
console.log('GIF optimized');
});
Resize GIF
This feature allows you to resize a GIF to specified dimensions. The code sample demonstrates how to resize an input GIF to 200x200 pixels and save the resized version as output.gif.
const gifsicle = require('gifsicle');
const execFile = require('child_process').execFile;
execFile(gifsicle, ['--resize', '200x200', '--output', 'output.gif', 'input.gif'], (err) => {
if (err) throw err;
console.log('GIF resized');
});
Extract Frames
This feature allows you to extract individual frames from a GIF. The code sample demonstrates how to extract frames from an input GIF, which will be saved as separate files.
const gifsicle = require('gifsicle');
const execFile = require('child_process').execFile;
execFile(gifsicle, ['--explode', 'input.gif'], (err) => {
if (err) throw err;
console.log('Frames extracted');
});
The gifencoder package is used for creating GIFs from a series of images or canvas frames. Unlike gifsicle, which focuses on optimizing and editing existing GIFs, gifencoder is more suited for generating new GIFs programmatically.
The gif-frames package allows you to extract frames from a GIF as images. While gifsicle can also extract frames, gif-frames provides more control over the extraction process, such as selecting specific frames or ranges.
The sharp package is a high-performance image processing library that supports multiple image formats, including GIF. It can resize, crop, and manipulate images, but it is more general-purpose compared to gifsicle, which is specialized for GIFs.
Readme
gifsicle manipulates GIF image files in many different ways. Depending on command line options, it can merge several GIFs into a GIF animation; explode an animation into its component frames; change individual frames in an animation; turn interlacing on and off; add transparency and much more.
$ npm install --save gifsicle
var execFile = require('child_process').execFile;
var gifsicle = require('gifsicle');
execFile(gifsicle, ['-o', 'output.gif', 'input.gif'], function (err) {
console.log('Image minified!');
});
$ npm install --global gifsicle
$ gifsicle --help
MIT © imagemin
FAQs
Unknown package
We found that gifsicle demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 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 unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
Security News
The JavaScript community has launched the e18e initiative to improve ecosystem performance by cleaning up dependency trees, speeding up critical parts of the ecosystem, and documenting lighter alternatives to established tools.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.