UNPKG

@locker/eslint-plugin-locker

Version:
48 lines (47 loc) 1.83 kB
"use strict"; 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', ], }, });