Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
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
The npm package buildcheck receives a total of 2,424,271 weekly downloads. As such, buildcheck popularity was classified as popular.
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
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.