
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
hapi-query-qs
Advanced tools
Hapi Plugin to parse query Params in the qs format that acepts [] square brackets
The purpose of this plugin isparse the query parameters into a object that is accessible via request.queryqs.
the onjetive is to allow 'brackets' '[]' in the querystring an permit the quind of query string parsed by the qs package:
// GET /search?q=tobi+ferret
console.dir(req.query.q)
// => 'tobi ferret'
// GET /shoes?order=desc&shoe[color]=blue&shoe[type]=converse
console.dir(req.query.order)
// => 'desc'
console.dir(req.query.shoe.color) // => 'blue'
console.dir(req.query.shoe.type) // => 'converse'
// GET /shoes?color[]=blue&color[]=black&color[]=red
console.dir(req.query.color)
// => ['blue', 'black', 'red']
var Hapi = require('@hapi/hapi');
var server = new Hapi.Server();
server.register([
{
register: require('hapi-query-qs'),
options: {
ignoredKeys: ['count', 'offset'], // Array of query parameters not to convert to filter object
defaultEnabled: true // if true plugin will be used on all routes
}
}
], function (err) {
// An error will be available here if anything goes wrong
});
You can ignore keys to have them stay at the root level of request.query. A configuration of:
var Hapi = require('@hapi/hapi');
var server = new Hapi.Server();
server.register([
{
register: require('hapi-query-qs'),
options: {
ignoredKeys: ['count', 'offset'], // Array of query parameters not to convert to filter object
defaultEnabled: true // if true plugin will be used on all routes
}
}
], function (err) {
// An error will be available here if anything goes wrong
});
Will cause a request like /shoes?order=desc&shoe[color]=blue&shoe[type]=converse to create a request.queryqs that looks like:
{
order: 'desc',
shoe: {
color: 'blue',
type: 'converse'
}
}
If defaultEnabled: false you will need to enable the plugin an a per-route basis by doing the following:
var Hapi = require('@hapi/hapi');
var server = new Hapi.Server();
server.register([
{
register: require('hapi-query-qs')
}
], function (err) {
// An error will be available here if anything goes wrong
});
server.route({
method: 'GET',
path: '/test',
handler: function (request, reply) { ... },
config: {
plugins: {
queryFilter: {
enabled: true,
ignoredKey: ['count', 'offset'], // Array will be concatenated with the ignoredKeys set at register
params: ['test_param'] // Array of request.params that will be put into filter object
}
}
}
})
FAQs
Hapi Plugin to parse query Params in the qs format that acepts [] square brackets
We found that hapi-query-qs 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
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.