module.exports = { meta: { type: 'problem', docs: { description: 'disallow unescaped HTML literals', url: require('../url')(module) }, schema: [] }, create(context) { const htmlOpenTag = /^<[a-zA-Z]/ const message = 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.' return { Literal(node) { if (!htmlOpenTag.test(node.value)) return context.report({ node, message }) }, TemplateLiteral(node) { if (!htmlOpenTag.test(node.quasis[0].value.raw)) return if (!node.parent.tag || node.parent.tag.name !== 'html') { context.report({ node, message }) } } } } }