Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@clr/eslint-plugin-clarity-adoption
Advanced tools
A set of ESLint rules for Clarity Core adoption.
npm install --save-dev @clr/eslint-plugin-clarity-adoption @typescript-eslint/parser eslint
Configure in your ESLint config file like you see below. The overrides section is important to enable it to parse HTML files as well.
.eslintrc.json
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2015
},
"plugins": ["@clr/clarity-adoption"],
"rules": {
"@clr/clarity-adoption/no-clr-accordion": "warn",
"@clr/clarity-adoption/no-clr-alert": "warn",
"@clr/clarity-adoption/no-clr-badge": "warn",
"@clr/clarity-adoption/no-clr-button": "warn",
"@clr/clarity-adoption/no-clr-card": "warn",
"@clr/clarity-adoption/no-clr-checkbox": "warn",
"@clr/clarity-adoption/no-clr-datalist": "warn",
"@clr/clarity-adoption/no-clr-form": "warn",
"@clr/clarity-adoption/no-clr-icon": "warn",
"@clr/clarity-adoption/no-clr-input": "warn",
"@clr/clarity-adoption/no-clr-label": "warn",
"@clr/clarity-adoption/no-clr-list": "warn",
"@clr/clarity-adoption/no-clr-modal": "warn",
"@clr/clarity-adoption/no-clr-password": "warn",
"@clr/clarity-adoption/no-clr-radio": "warn",
"@clr/clarity-adoption/no-clr-range": "warn",
"@clr/clarity-adoption/no-clr-select": "warn",
"@clr/clarity-adoption/no-clr-textarea": "warn",
"@clr/clarity-adoption/no-clr-toggle": "warn"
},
"overrides": [
{
"files": ["*.html"],
"parser": "@clr/eslint-plugin-clarity-adoption/html-parser"
}
]
}
Note: If you don't have ESLint config file, create a new file named .eslintrc.json in the root of your project and copy the content above.
Finally, you'll need to run eslint with the --ext
flag to enable HTML scanning like npx eslint --ext=ts,html src/
.
npm install
npm run watch
dist
directory and execute npm link
:cd ../../dist/lib
npm link
ng new linter-test-project
cd linter-test-project
npm link @clr/eslint-plugin-clarity-adoption
npm i -D @typescript-eslint/parser eslint
npm i
.eslintrc.json
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2015
},
"plugins": ["@clr/clarity-adoption"],
"rules": {
"@clr/clarity-adoption/no-clr-accordion": "warn",
"@clr/clarity-adoption/no-clr-alert": "warn",
"@clr/clarity-adoption/no-clr-badge": "warn",
"@clr/clarity-adoption/no-clr-button": "warn",
"@clr/clarity-adoption/no-clr-card": "warn",
"@clr/clarity-adoption/no-clr-checkbox": "warn",
"@clr/clarity-adoption/no-clr-datalist": "warn",
"@clr/clarity-adoption/no-clr-form": "warn",
"@clr/clarity-adoption/no-clr-icon": "warn",
"@clr/clarity-adoption/no-clr-input": "warn",
"@clr/clarity-adoption/no-clr-label": "warn",
"@clr/clarity-adoption/no-clr-list": "warn",
"@clr/clarity-adoption/no-clr-modal": "warn",
"@clr/clarity-adoption/no-clr-password": "warn",
"@clr/clarity-adoption/no-clr-radio": "warn",
"@clr/clarity-adoption/no-clr-range": "warn",
"@clr/clarity-adoption/no-clr-select": "warn",
"@clr/clarity-adoption/no-clr-textarea": "warn",
"@clr/clarity-adoption/no-clr-toggle": "warn"
},
"overrides": [
{
"files": ["*.html"],
"parser": "@clr/eslint-plugin-clarity-adoption/html-parser"
}
]
}
# Lint both the TypeScript and HTML files
npx eslint --ext=ts,html src/
Currently, the plugin contains a single rule - no-clr-button
. This rule reports the usage of <button class="btn btn-primary"></button>
inside HTML files or inside inlined Angular components templates (TS files).
For parsing the TS files in the project, the plugin uses @typescript-eslint/plugin
. Then, it parses the HTML within the component template with node-html-parser
. Using the AST tree provided from node-html-parser it detects the usage of <button class="btn btn-primary">
.
For parsing the HTML files, the plugin uses an internalized version of eslint-html-parser. The original package is patched to work with HTML files containing more than one root element, such as:
<div>...</div>
<div>...</div>
FAQs
A set of ESLint rules for Clarity Core adoption.
We found that @clr/eslint-plugin-clarity-adoption demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.