
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@bygdle/cmdlang
Advanced tools
simple command-line language with support for embed mathematical expressions
A command-line language.
npm i @bygdle/cmdlang
The package exposes four main classes: the program and compiler, and a parser for the language instructions and expressions.
The most basic usage requires a program and a compiler, as follows:
/// CREATING THE PROGRAM
// a basic program for creating squares and
// calculating their perimeter
// First, an array will store the created squares,
// this will be the program "context"
const squares: { w: number, h: number }[] = []
// Then, the program is created by passing the context,
// and the commands tree.
const program = new Program(squares, {
"square": {
name: "square",
children: {
"add": {
name: "add",
arguments: "[width=] [height=]",
compile({ named }, { context }) {
// this function will be executed only
// when the code string is initially parsed.
// as a result, the function will return
// another function, which will be executed
// every time the compiled code is called.
// so this is executed once
const { width, height } = named
const w = Number(width).valueOf()
const h = Number(height).valueOf()
return () => {
// and this is executed every time
// the compiled code is called
context.push({ w, h })
}
}
},
"perimeter": {
name: "perimeter",
arguments: "index",
compile({ values }, { context }) {
const index = Number(values[0]).valueOf()
return () => {
const square = context[index]
return square.w * 2 + square.h * 2
}
}
}
}
}
})
Now, the compiler:
/// THE COMPILER CODE
// Creating a compiler requires a program.
// A language parser and expression parser are
// created by default.
const compiler = new Compiler(program)
// the main function compiles a string into
// a callable function.
const cmd = compiler.compileString(`
const $pi {22/7}
square add width=5 height=7 // instruction 1
square add width={ // instruction 2
2+2
} height={
1 + $pi^2
}
square perimeter 0 # instruction 3
square perimeter { 5/5 } /* instruction 4 */
`)
// if we call the compiled function, it will
// return the result of all the instructions in the code
const result = cmd()
FAQs
simple command-line language with support for embed mathematical expressions
We found that @bygdle/cmdlang 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.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.