
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
Run and simulate string-based BDScript language in JavaScript
This project requires a JavaScript runtime which supports ES2020 and ESModules.
Install bds.js with npm:
$ npm install bds.js
or getting releases from github
Environments are used to define variables outside BDScript code
Example of usage:
const Environment = require("bds.js").Environments.Environment;
const env = new Environment();
The use of Environments are to define variables and functions. These "identifiers" can be created by static value or using a function, it doesn't matter if you need extra arguments or not.
Inputting arguments to a identifier (example $sum) is to use brackets ([ and ]) Example > $sum[2;3;4] is (2 + 3 + 4)
Creating identifiers:
env.set("hello", "world!"); // A string value identifier
env.set("age", 24); // Number value identifier
env.set("random", () => Math.random()); // Function without argument (The use of [])
env.set("random50", (handler) => {
// Getting raw arguments
const raw_arguments = handler.getArgs(0, 2);
// Waiting for arguments to run
const arguments = handler.waitForArguments(...raw_arguments);
// Calling functions
const chance = handler.callIdentifier("random") * 100;
if (chance > 50) return args[1];
return args[0];
});
Create a file with name index.bds and fill with BDScript code
Preparing a Script for the file:
const FileScript = require("bds.js").Scripts.FileScript;
const Script = new FileScript("./index.bds");
Script.getFileInput();
A way to utilize multiple environments without the need to chain. It is also to support third-party libraries
Initializing Environment Manager:
const lib = require("bds.js");
const { Arithmetics, Utility } = lib.Modules;
const envManager = lib.Environments.EnvironmentManager;
// Adding arithmetics and utility modules
envManager.add("math", new Arithmetics()).add("util", new Utility());
You can use console.log() to print the output to console
const runScript = Script.prepareModules(envManager);
runScript.run();
These are modules / environments ready-for-use to help your development:
Functions can return non-string Objects as long as it is not interferred by other type.
Functions are case-sensitive, if the function is not found the runtime will error
As example with $pi (from Arithmetics module) and $typeof (Utility):
$typeof[$pi] # number
$typeof[Pi is $pi] #string
License can be found here
FAQs
A simple interpreter written to simulate and run BDScript Language in JavaScript
The npm package bds.js receives a total of 11 weekly downloads. As such, bds.js popularity was classified as not popular.
We found that bds.js 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
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.