
Research
Namastex.ai npm Packages Hit with TeamPCP-Style CanisterWorm Malware
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.
esbuild-plugin-replace
Advanced tools
🚀 A Esbuild plugin which replaces targeted strings in files while bundling
This package is based on @rollup/plugin-replace
using npm:
npm install esbuild-plugin-replace --save-dev
using yarn:
yarn add esbuild-plugin-replace -D
const { build } = require('esbuild');
const { replace } = require('esbuild-plugin-replace');
build({
// other build options
plugins: [
replace({
'__buildVersion': '"1.0.0"',
'__author__': `'naecoo'`
})
]
});
The configuration above will replace every instance of __buildVersion with "1.0.0" and __author with 'naecoo'
Note: Values must be either primitives (e.g. string, number) or function that returns a string. For complex values, use JSON.stringify. To replace a target with a value that will be evaluated as a string, set the value to a quoted string (e.g. "test") or use JSON.stringify to preprocess the target string safely.
In addition to the properties and values specified for replacement, users may also specify the options below.
includeType: RegExp
default: /.*/
Filters files that do not match RegExp expressions. By default all files are matched.
excludeType: RegExp
default: null
Filters files that do match the exclude RegExp expressions. When include and exclude are set at the same time, include is used first, and exclude doesn't work.
valuesType: { [key: String]: Replacement }, where Replacement is either a string or a function that returns a string.
Default: {}
To avoid mixing replacement strings with the other options, you can specify replacements in the values option. For example, the following signature:
replace({
include: /\.js$/,
changed: "replaced"
});
Can be replaced with:
replace({
include: /\.js$/,
values: {
changed: "replaced"
}
});
delimitersType: Array[String, String]
Default: ['\b', '\b']
Specifies the boundaries around which strings will be replaced. By default, delimiters are word boundaries. See Word Boundaries below for more information.
FAQs
Replace strings in files while bundling
We found that esbuild-plugin-replace 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
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.