@locker/eslint-plugin-locker
Version:
Lightning Web Security ESLint rules
48 lines (47 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const eslint_rule_maker_1 = require("@locker/eslint-rule-maker");
const util_1 = require("../util");
exports.default = (0, eslint_rule_maker_1.createRule)({
meta: {
docs: {
description: `disallow blocked Document properties`,
category: 'Lightning Web Security',
recommended: true,
url: (0, util_1.docURL)('distorted-document-blocked-properties'),
},
type: 'problem',
},
rule: {
message({ pattern }) {
const documentDot = 'document.';
const lastIndex = pattern.lastIndexOf(documentDot);
const property = pattern.slice(lastIndex + documentDot.length);
return `Document.prototype.${property} is prohibited by Lightning Web Security.`;
},
search: [
'document.createProcessingInstruction',
'document.exitFullscreen',
'document.fullscreen',
'document.fullscreenElement',
'document.fullscreenEnabled',
'document.mozCancelFullScreen',
'document.mozFullScreen',
'document.mozFullScreenElement',
'document.mozFullScreenEnabled',
'document.onfullscreenchange',
'document.onfullscreenerror',
'document.onmozfullscreenchange',
'document.onmozfullscreenerror',
'document.onrejectionhandled',
'document.onunhandledrejection',
'document.parseHTMLUnsafe',
'document.releaseCapture',
'document.releaseEvents',
'document.requestStorageAccess',
'document.webkitFullScreenKeyboardInputAllowed',
'document.write',
'document.writeln',
],
},
});