
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
eslint-plugin-mso-email
Advanced tools
ESLint plugin for Outlook/HTML email markup — conditional comments, MSO CSS, VML, and layout tables
ESLint plugin for Outlook/HTML email markup: MSO conditional comments, Outlook CSS properties, VML namespaces, and layout table accessibility.
Extracts conditional comments into a virtual file for AST-based rules, and lints full HTML documents for MSO CSS, VML, and table semantics.
npm install eslint-plugin-mso-email --save-dev
Requires ESLint 9+ (flat config) and Node.js 22+.
// eslint.config.js
import mso from 'eslint-plugin-mso-email';
export default [mso.configs.recommended];
This lints **/*.html, **/*.amp, and **/*.ampscript files.
All rules use the mso/ plugin prefix.
| Rule | Default | Fixable | Description |
|---|---|---|---|
mso/valid-mso-condition | error | partial (deterministic typos) | Validate MSO conditional opener syntax |
mso/matching-mso-endif | error | no | Match openers and [endif] closers |
mso/matching-mso-endif-type | warn | yes | Match closer variant to opener style |
mso/no-unknown-mso-property | warn | partial (typo hints) | Disallow unknown mso-* CSS properties |
mso/vml-requires-namespace | warn | yes | Require xmlns:* on html when using VML |
mso/no-unknown-vml-tag | warn | yes | Disallow unknown VML tag names |
mso/no-unknown-vml-attribute | warn | partial (typo hints) | Disallow unknown VML attributes |
mso/table-presentation-role | warn | yes | Require role="presentation" on layout tables |
Fixable legend
| Value | Meaning |
|---|---|
| yes | ESLint can auto-fix every reported violation for that rule (with default options). |
| partial (deterministic typos) | Auto-fix only when the parser returns a single deterministic replacement for the condition substring (for example mos → mso). Invalid operators, unknown versions, and ambiguous conditions are reported without a fix. |
| partial (typo hints) | Auto-fix only when the property, tag, or attribute name has a close allowlist match within edit distance. Unknown names with no hint are still reported, but not auto-fixed. |
| no | Report only — inserting or removing structural comment markers is unsafe. |
MIT
FAQs
ESLint plugin for Outlook/HTML email markup — conditional comments, MSO CSS, VML, and layout tables
The npm package eslint-plugin-mso-email receives a total of 95 weekly downloads. As such, eslint-plugin-mso-email popularity was classified as not popular.
We found that eslint-plugin-mso-email demonstrated a healthy version release cadence and project activity because the last version was released less than 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.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.