Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Node.js/Typescript types and services for [Biarity/Sieve](https://github.com/Biarity/Sieve).
Node.js/Typescript types and services for Biarity/Sieve.
If you use the Sieve package for filtering in your (.NET) back-end then you probably only have to look at the SieveFilterService
.
If however, you use this package for multiple back-ends you can use the HttpParamFilterService
as the fall-back to use "regular" HTTP-params
install & import the package:
yarn add sieve-ts
import { Filter, SieveFilterService } from "sieve-ts";
construct a filter using the models:
const filter = new Filter({
pageIndex: 2,
pageSize: 45,
sorts: [
{
field: "testField",
direction: SortDirection.Ascending,
},
],
filters: [
{
fields: ["firstField", "secondField"],
values: ["singleValue"],
operator: Operators.CONTAINS,
},
],
})
create a service and use it:
// user either one, both will return a string
const service = new SieveFilterService();
const service = new HttpParamService();
use the service to create a usable value:
console.log(service.toValue(filter));
Observe the output:
// The Sieve service will have combined the fields together into a single filter:
page=3&pageSize=45&Filters=(firstField|secondField)@=singleValue&Sorts=testField
// the HTTP service will simply pass both variables:
page=3&pageSize=45&firstField=singleValue&secondField=singleValue&testField=+
You can also give the FilterService the URL query parameter string and have it figure out the filter structure.
Let's try it with a rather complicated query param string: page=3&pageSize=45&Filters=(firstField|secondField)@=singleValue&Sorts=testField
// create service
const sieveService = new SieveFilterService();
// parse filter
const filters = sieveService.parse(
"page=3&pageSize=45&Filters=(firstField|secondField)@=singleValue&Sorts=testField",
);
// output
console.log(JSON.stringify(filters, null, 2));
To include extra/custom parameters simply call the toValue
or getFilterValue
functions with the optional second argument (key:value):
console.log(service.toValue(filter, {firstKey: "firstValue", secondKey: "secondValue"}));
If you have customized parts of your back-end Sieve you can also pass along the custom options to the SieveService.
Let's say we've customized the word "page" to someOtherWordForPage
and the character to split filter keys from |
to ~
, our config would look like this:
const sieveService = new SieveFilterService({
...SIEVE_CONSTANTS,
page: "someOtherWordForPage",
keySplitChar: "~",
});
Which would result in the following result instead:
someOtherWordForPage=3&pagesize=45&Filters=(firstField~secondField)@=singleValue&Sorts=testField
FAQs
Node.js/Typescript types and services for [Biarity/Sieve](https://github.com/Biarity/Sieve).
The npm package sieve-ts receives a total of 44 weekly downloads. As such, sieve-ts popularity was classified as not popular.
We found that sieve-ts 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
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.