
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
logic-query-parser
Advanced tools
Visit http://anyfetch.com for details about AnyFetch.
Generate binary tree with a logic query string as input
npm install
Check everything is working with npm test
.
This lib provides a function parser whick take an optional options object and a string parameter, then returning a binary tree. As binary trees are not easy to use, this lib also provides an utility function which convert said binaryTree to a more usable query form
Avalaible options are for now :
spaces
: String / array containing all spaces characters. Default : " \n\t"defaultOperator
: Default operator to use between two strings. Default : 'and'Available operators for now : AND, OR, parens, double quote
var parser = require('logic-query-parser');
var binaryTree = parser.parse('hello AND welcome');
The binaryTree for this example will be :
{
lexeme: {
type: 'and'
},
left: {
lexeme: {
type: 'string',
value: 'hello'
},
left: null,
right: null
},
right: {
lexeme: {
type: 'string',
value: 'welcome'
},
left: null,
right: null
}
}
Another example, slightly more complex:
var parser = require('logic-query-parser');
var binaryTree = parser.parse('(welcome OR bye) AND (hello OR ahoy)');
And the binary tree :
{
lexeme: {
type: "and"
},
left: {
lexeme: {
type: "or"
},
left: {
lexeme: {
type: "string",
value: "welcome"
},
left: null,
right: null
},
right: {
lexeme: {
type: "string",
value: "bye"
},
left: null,
right: null
}
},
right: {
lexeme: {
type: "or"
},
left: {
lexeme: {
type: "string",
value: "hello"
},
left: null,
right: null
},
right: {
lexeme: {
type: "string",
value: "ahoy"
},
left: null,
right: null
}
}
}
As said before, trees are useful but not easy to use. You can also get the "query form":
var parser = require('logic-query-parser');
var binaryTree = parser.parse('(welcome OR bye) AND (hello OR ahoy)');
var query = parser.utils.binaryTreeToQueryJson(binaryTree);
Returning:
{
type: "and",
values: [
{
type: "or",
values: [
{
type: "string",
value: "welcome"
},
{
type: "string",
value: "bye"
}
]
},
{
type: "or",
values: [
{
type: "string",
value: "hello"
},
{
type: "string",
value: "ahoy"
}
]
}
]
}
Take a look at config/tests.js
for more samples
Support: support@anyfetch.com
.
FAQs
A parser for logic search string
The npm package logic-query-parser receives a total of 3,153 weekly downloads. As such, logic-query-parser popularity was classified as popular.
We found that logic-query-parser 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
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.