
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.
eslint-config-ts-mailonline
Advanced tools
eslint-config-ts-mailonlineMailOnline ESLint Typescript configuration for ESLint 9+ (flat config).
eslint-config-ts-mailonline, eslint, typescript, prettier, husky, and pretty-quick as development dependencies:yarn add --dev eslint-config-ts-mailonline eslint typescript prettier husky pretty-quick
tsconfig.eslint.json file at the root of your project:{
"extends": "./tsconfig.json",
"compilerOptions": {
"allowJs": true,
"noEmit": true
},
"include": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts", "**/*.js", "**/*.jsx", "**/*.mjs", "**/*.cjs"],
"exclude": ["node_modules", "dist", "coverage"]
}
Why is this needed? This configuration uses
@typescript-eslint/parserwith type-aware linting, which requires TypeScript to know about all files being linted. Many projects exclude test files and config files from their maintsconfig.jsonto avoid compiling them. Thetsconfig.eslint.jsonensures all files are included for linting purposes without affecting your build configuration.
tsconfig.eslint.jsonis now required: You must create atsconfig.eslint.jsonfile in your project root. This is necessary because the configuration uses@typescript-eslint/parserwithproject: './tsconfig.eslint.json'for type-aware linting rules.
eslint.config.mjs file at the root of your project using defineConfig (defineConfig is the standard way to define ESLint configurations since ESLint 9):import { defineConfig } from 'eslint/config';
import { baseConfig, reactConfig } from 'eslint-config-ts-mailonline';
// defineConfig accepts both a config object or an array of config objects
export default defineConfig({
// extends automatically flattens configuration arrays, so no spread operator needed
extends: [
baseConfig,
reactConfig // optional, only if using React
]
// your custom overrides here:
// rules: { 'no-console': 'warn' }
});
prettier.config.mjs at the root of your project:export { default } from 'eslint-config-ts-mailonline/prettierConfig';
package.json:{
"scripts": {
"lint": "tsc --noEmit && eslint ."
}
}
Pre-commit (.husky/pre-commit):
pretty-quick --staged && yarn run lint
Pre-push (.husky/pre-push):
yarn run test
With ESLint 9 flat config, ignores are defined in your eslint.config.mjs using globalIgnores:
import { defineConfig, globalIgnores } from 'eslint/config';
import { baseConfig } from 'eslint-config-ts-mailonline';
export default defineConfig([
// These ignores will be merged with the ones in baseConfig global ignores object
// ending up in: ['**/node_modules/**', '**/coverage/**', '**/dist/**', 'bin/**', 'legacy/**']
globalIgnores(['bin/**', 'legacy/**']),
{
extends: [
baseConfig
// other configs...
]
}
]);
This package includes the following ESLint plugins and configurations as direct dependencies. You should remove these from your project's devDependencies if you have them:
@typescript-eslint/eslint-plugin@typescript-eslint/parsereslint-config-prettiereslint-import-resolver-typescripteslint-plugin-importeslint-plugin-no-only-testseslint-plugin-prefer-arroweslint-plugin-reacteslint-plugin-react-hookseslint-plugin-unicornWhy? By bundling these dependencies, we:
Any changes to this package that might cause code using it to not validate anymore, will be a semver-major change.
See Migration Guide for instructions on upgrading from v4.x (ESLint 8) to v5.x (ESLint 9).
FAQs
ESLint TS config for MailOnline
The npm package eslint-config-ts-mailonline receives a total of 391 weekly downloads. As such, eslint-config-ts-mailonline popularity was classified as not popular.
We found that eslint-config-ts-mailonline demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers 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.