
Research
/Security News
DuckDB npm Account Compromised in Continuing Supply Chain Attack
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Build environment checking for node.js.
This allows for autoconf-like functionality for node addons/build scripts.
Note: Obsolete and/or exotic build environments or platforms not supported by node.js are not supported.
npm install buildcheck
'use strict';
const BuildEnvironment = require('buildcheck');
const buildEnv = new BuildEnvironment();
console.log(buildEnv.checkFunction('c', 'preadv2'));
'use strict';
const BuildEnvironment = require('buildcheck');
const buildEnv = new BuildEnvironment();
console.log(buildEnv.checkHeader('c', 'linux/io_uring.h'));
'use strict';
const BuildEnvironment = require('buildcheck');
const buildEnv = new BuildEnvironment();
// Should be a successful compile
console.log(buildEnv.tryCompile('c', 'int main() { return 0; }'));
// Should be a failed compile
console.log(buildEnv.tryCompile('c', 'int main() { return z; }'));
The exported value is BuildEnvironment
, the main class for dealing with a build environment.
(constructor)([< object >config]) - Creates and returns a new BuildEnvironment instance. config
may contain:
compilerC - string - C compiler command to use. Note: this is ignored on Windows. Default: process.env.CC
or 'cc'
compilerCXX - string - C++ compiler command to use. Note: this is ignored on Windows. Default: process.env.CXX
or 'c++'
msvs_version - mixed - A string or number containing the year of the Visual Studio compiler to use. Note: this is for Windows only. Default: newest version installed
checkDeclared(< string >lang, < string >symbolName[, < object >options]) - boolean - Checks if a symbol symbolName
is declared where lang
is either 'c'
or 'c++'
. Returns true
if symbol exists, false
otherwise. options
may contain:
headers - array - A list of headers to try when checking if the symbol is declared. checkFunction()
will always first try without a library. If not supplied, a default list of common (platform-specific) headers will be used.
searchLibs - array - A list of library names (without the '-l'
prefix) to try when checking if the symbol is declared. checkDeclared()
will always first try without a library.
checkFunction(< string >lang, < string >functionName[, < object >options]) - boolean - Checks if a function functionName
exists and is linkable where lang
is either 'c'
or 'c++'
. Returns true
if function exists, false
otherwise. options
may contain:
'-l'
prefix) to try when checking for this function. checkFunction()
will always first try without a library.checkFeature(< string >featureName) - mixed - Executes a special test for a "feature" and returns the result. Supported values for featureName
:
'strerror_r'
- Returns an object containing:
declared
- boolean - Whether strerror_r()
is declared
returnsCharPtr
- boolean - If strerror_r()
is declared, whether it returns char*
(a GNU extension) or not.
checkHeader(< string >lang, < string >headerName) - boolean - Checks if the header headerName
exists and is usable where lang
is either 'c'
or 'c++'
. Returns true
if the header exists and is usable, false
otherwise.
defines([< string >lang[, < boolean >rendered]]) - array - Returns a list of features, functions, headers, and symbols known to be defined by this build environment instance. lang
is either 'c'
or 'c++'
If lang
is not set, defines for both 'c'
and 'c++'
will be returned. If rendered
is true
(defaults to false
), autoconf-style defines (e.g. "HAVE_FOO=1") will be returned instead. Defines coming from features utilize base strings/names from autoconf for better compatibility.
libs([< string >lang]) - array - Returns a list of ('-l'
-prefixed) libraries known to be required for features and functions defined by this build environment instance. lang
is either 'c'
or 'c++'
If lang
is not set, defines for both 'c'
and 'c++'
will be returned.
tryCompile(< string >lang, < string >code[, < array >compilerParams]) - mixed - Attempts to compile code
where lang
is either 'c'
or 'c++'
. compilerParams
is an optional array of compiler/linker flags to include. Returns true
on successful compilation, or an Error instance with an output
property containing the compiler error output.
FAQs
Build environment checking (a la autoconf) for node.js
We found that buildcheck 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
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.
Product
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.