
Research
/Security News
CanisterWorm: npm Publisher Compromise Deploys Backdoor Across 29+ Packages
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.
redis-filtered-sort
Advanced tools
Exports LUA script, which is able to perform multi filter operations, as well as sorts
Exports LUA script, which is able to perform multi filter operations, as well as sorts
This basically replicates http://redis.io/commands/sort but with extra features and ability to run it in clustered mode with
hashed keys, which resolve to the same slot
npm i redis-filtered-sort -S
const { filter: strFilter, attach } = require('redis-filtered-sort');
const Redis = require('ioredis');
const redis = new Redis();
// adds redis.sortedFilteredList command to redis instance
attach(redis, 'fsort');
// raw Buffer of lua script
// filteredSort.script
const filter = strFilter({
// only ids with `!mamba%` in them will be presented. Internally it uses lua string.find, so regexp is possible. Escape special chars
// with % or use escape helper for that
'#': '!mamba%',
priority: {
gte: 10, // only ids, which have priority greater or equal to 10 will be returned
},
name: 'love', // only ids, which have 'name' containing 'love' in their metadata will be returned
});
const offset = 10;
const limit = 20;
const sortBy = 'priority';
const expiration = 30000; // ms
// perform op
const currentTime = Date.now();
redis
.fsort('set-of-ids', 'metadata*', sortBy, 'DESC', filter, currentTime, offset, limit, expiration)
.then(data => {
// how many items in the complete list
// rest of the data is ids from the 'set-of-ids'
const sortedListLength = parseInt(data.pop(), 10);
// at this point you might want to populate ids with actual data about them
// for instance, like this:
return Promise.map(data, function populateData(id) {
return Promise.props({
id,
data: redis.hgetall('metadata' + id),
});
});
});
redis
.fsortAggregate(ID_LIST_KEY, META_KEY_PATTERN, mod.filter({
age: 'sum'
}))
.then(JSON.parse)
.get('age')
FAQs
Exports LUA script, which is able to perform multi filter operations, as well as sorts
We found that redis-filtered-sort demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.

Research
/Security News
Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.

Security News
ENISA’s new package manager advisory outlines the dependency security practices companies will need to demonstrate as the EU’s Cyber Resilience Act begins enforcing software supply chain requirements.