Bug 1668274 - update eslint, eslint-plugin-no-unsanitized and mocha to allow use of logical assignment operators, r=Standard8

Differential Revision: https://phabricator.services.mozilla.com/D91933
This commit is contained in:
Gijs Kruitbosch 2020-10-02 18:00:40 +00:00
parent f68646e734
commit 1aa2c4d5db
10 changed files with 582 additions and 361 deletions

View file

@ -56,6 +56,7 @@ SimpleTest.waitForExplicitFinish();
// Import all the test cases // Import all the test cases
const tests = const tests =
// eslint-disable-next-line no-unsanitized/method
(await Promise.all(testFiles.map(f => import(f).then(data => data.default)))).flat(); (await Promise.all(testFiles.map(f => import(f).then(data => data.default)))).flat();
for (const { for (const {

88
package-lock.json generated
View file

@ -157,6 +157,35 @@
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
} }
}, },
"@eslint/eslintrc": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz",
"integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.1.1",
"espree": "^7.3.0",
"globals": "^12.1.0",
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
"js-yaml": "^3.13.1",
"lodash": "^4.17.19",
"minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1"
},
"dependencies": {
"globals": {
"version": "12.4.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
"integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
"dev": true,
"requires": {
"type-fest": "^0.8.1"
}
}
}
},
"@types/color-name": { "@types/color-name": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
@ -205,21 +234,21 @@
} }
}, },
"acorn": { "acorn": {
"version": "7.3.1", "version": "7.4.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
"integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
"dev": true "dev": true
}, },
"acorn-jsx": { "acorn-jsx": {
"version": "5.2.0", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
"integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
"dev": true "dev": true
}, },
"ajv": { "ajv": {
"version": "6.12.3", "version": "6.12.5",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz",
"integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==",
"dev": true, "dev": true,
"requires": { "requires": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
@ -562,12 +591,13 @@
"dev": true "dev": true
}, },
"eslint": { "eslint": {
"version": "7.5.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.8.0.tgz",
"integrity": "sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==", "integrity": "sha512-qgtVyLZqKd2ZXWnLQA4NtVbOyH56zivOAdBFWE54RFkSZjokzNrcP4Z0eVWsZ+84ByXv+jL9k/wE1ENYe8xRFw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.0.0", "@babel/code-frame": "^7.0.0",
"@eslint/eslintrc": "^0.1.0",
"ajv": "^6.10.0", "ajv": "^6.10.0",
"chalk": "^4.0.0", "chalk": "^4.0.0",
"cross-spawn": "^7.0.2", "cross-spawn": "^7.0.2",
@ -577,7 +607,7 @@
"eslint-scope": "^5.1.0", "eslint-scope": "^5.1.0",
"eslint-utils": "^2.1.0", "eslint-utils": "^2.1.0",
"eslint-visitor-keys": "^1.3.0", "eslint-visitor-keys": "^1.3.0",
"espree": "^7.2.0", "espree": "^7.3.0",
"esquery": "^1.2.0", "esquery": "^1.2.0",
"esutils": "^2.0.2", "esutils": "^2.0.2",
"file-entry-cache": "^5.0.1", "file-entry-cache": "^5.0.1",
@ -662,9 +692,9 @@
"dev": true "dev": true
}, },
"supports-color": { "supports-color": {
"version": "7.1.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true, "dev": true,
"requires": { "requires": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
@ -862,9 +892,9 @@
} }
}, },
"eslint-plugin-no-unsanitized": { "eslint-plugin-no-unsanitized": {
"version": "3.0.2", "version": "3.1.4",
"resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.0.2.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.4.tgz",
"integrity": "sha512-JnwpoH8Sv4QOjrTDutENBHzSnyYtspdjtglYtqUtAHe6f6LLKqykJle+UwFPg23GGwt5hI3amS9CRDezW8GAww==", "integrity": "sha512-WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==",
"dev": true "dev": true
}, },
"eslint-plugin-prettier": { "eslint-plugin-prettier": {
@ -941,12 +971,12 @@
"dev": true "dev": true
}, },
"espree": { "espree": {
"version": "7.2.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-7.2.0.tgz", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz",
"integrity": "sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==", "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==",
"dev": true, "dev": true,
"requires": { "requires": {
"acorn": "^7.3.1", "acorn": "^7.4.0",
"acorn-jsx": "^5.2.0", "acorn-jsx": "^5.2.0",
"eslint-visitor-keys": "^1.3.0" "eslint-visitor-keys": "^1.3.0"
} }
@ -967,9 +997,9 @@
}, },
"dependencies": { "dependencies": {
"estraverse": { "estraverse": {
"version": "5.1.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
"integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
"dev": true "dev": true
} }
} }
@ -2009,9 +2039,9 @@
"dev": true "dev": true
}, },
"uri-js": { "uri-js": {
"version": "4.2.2", "version": "4.4.0",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
"dev": true, "dev": true,
"requires": { "requires": {
"punycode": "^2.1.0" "punycode": "^2.1.0"

View file

@ -7,7 +7,7 @@
"devDependencies": { "devDependencies": {
"@babel/core": "7.8.3", "@babel/core": "7.8.3",
"babel-eslint": "10.1.0", "babel-eslint": "10.1.0",
"eslint": "7.5.0", "eslint": "7.8.0",
"eslint-config-prettier": "6.10.0", "eslint-config-prettier": "6.10.0",
"eslint-plugin-babel": "5.3.0", "eslint-plugin-babel": "5.3.0",
"eslint-plugin-fetch-options": "0.0.5", "eslint-plugin-fetch-options": "0.0.5",
@ -18,7 +18,7 @@
"eslint-plugin-jest": "23.20.0", "eslint-plugin-jest": "23.20.0",
"eslint-plugin-jsx-a11y": "6.2.3", "eslint-plugin-jsx-a11y": "6.2.3",
"eslint-plugin-mozilla": "file:tools/lint/eslint/eslint-plugin-mozilla", "eslint-plugin-mozilla": "file:tools/lint/eslint/eslint-plugin-mozilla",
"eslint-plugin-no-unsanitized": "3.0.2", "eslint-plugin-no-unsanitized": "3.1.4",
"eslint-plugin-prettier": "3.1.2", "eslint-plugin-prettier": "3.1.2",
"eslint-plugin-react": "7.18.3", "eslint-plugin-react": "7.18.3",
"eslint-plugin-spidermonkey-js": "file:tools/lint/eslint/eslint-plugin-spidermonkey-js", "eslint-plugin-spidermonkey-js": "file:tools/lint/eslint/eslint-plugin-spidermonkey-js",

View file

@ -13,125 +13,135 @@
// Rule Definition // Rule Definition
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
module.exports = function(context) { module.exports = {
function getRangeAfterArgToEnd(argNumber, args) { meta: {
let sourceCode = context.getSourceCode(); type: "suggestion",
return [ fixable: "code",
sourceCode.getTokenAfter(args[argNumber]).range[0], },
args[args.length - 1].range[1], create(context) {
]; function getRangeAfterArgToEnd(argNumber, args) {
} let sourceCode = context.getSourceCode();
return [
sourceCode.getTokenAfter(args[argNumber]).range[0],
args[args.length - 1].range[1],
];
}
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// Public // Public
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
return { return {
CallExpression(node) { CallExpression(node) {
let callee = node.callee; let callee = node.callee;
if ( if (
callee.type !== "MemberExpression" || callee.type !== "MemberExpression" ||
callee.property.type !== "Identifier" callee.property.type !== "Identifier"
) { ) {
return; return;
} }
let isFalse = arg => arg.type === "Literal" && arg.value === false; let isFalse = arg => arg.type === "Literal" && arg.value === false;
let isFalsy = arg => arg.type === "Literal" && !arg.value; let isFalsy = arg => arg.type === "Literal" && !arg.value;
let isBool = arg => let isBool = arg =>
arg.type === "Literal" && (arg.value === false || arg.value === true); arg.type === "Literal" && (arg.value === false || arg.value === true);
let name = callee.property.name; let name = callee.property.name;
let args = node.arguments; let args = node.arguments;
if ( if (
["addEventListener", "removeEventListener", "addObserver"].includes( ["addEventListener", "removeEventListener", "addObserver"].includes(
name name
) && ) &&
args.length === 3 && args.length === 3 &&
isFalse(args[2]) isFalse(args[2])
) { ) {
context.report({ context.report({
node, node,
fix: fixer => { fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(1, args)); return fixer.removeRange(getRangeAfterArgToEnd(1, args));
}, },
message: `${name}'s third parameter can be omitted when it's false.`, message: `${name}'s third parameter can be omitted when it's false.`,
}); });
} }
if (name === "clearUserPref" && args.length > 1) { if (name === "clearUserPref" && args.length > 1) {
context.report({ context.report({
node, node,
fix: fixer => { fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(0, args));
},
message: `${name} takes only 1 parameter.`,
});
}
if (name === "removeObserver" && args.length === 3 && isBool(args[2])) {
context.report({
node,
fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(1, args));
},
message: "removeObserver only takes 2 parameters.",
});
}
if (name === "appendElement" && args.length === 2 && isFalse(args[1])) {
context.report({
node,
fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(0, args));
},
message: `${name}'s second parameter can be omitted when it's false.`,
});
}
if (name === "notifyObservers" && args.length === 3 && isFalsy(args[2])) {
context.report({
node,
fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(1, args));
},
message: `${name}'s third parameter can be omitted.`,
});
}
if (
name === "getComputedStyle" &&
args.length === 2 &&
isFalsy(args[1])
) {
context.report({
node,
fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(0, args));
},
message: "getComputedStyle's second parameter can be omitted.",
});
}
if (
name === "newURI" &&
args.length > 1 &&
isFalsy(args[args.length - 1])
) {
context.report({
node,
fix: fixer => {
if (args.length > 2 && isFalsy(args[args.length - 2])) {
return fixer.removeRange(getRangeAfterArgToEnd(0, args)); return fixer.removeRange(getRangeAfterArgToEnd(0, args));
} },
message: `${name} takes only 1 parameter.`,
});
}
return fixer.removeRange( if (name === "removeObserver" && args.length === 3 && isBool(args[2])) {
getRangeAfterArgToEnd(args.length - 2, args) context.report({
); node,
}, fix: fixer => {
message: "newURI's last parameters are optional.", return fixer.removeRange(getRangeAfterArgToEnd(1, args));
}); },
} message: "removeObserver only takes 2 parameters.",
}, });
}; }
if (name === "appendElement" && args.length === 2 && isFalse(args[1])) {
context.report({
node,
fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(0, args));
},
message: `${name}'s second parameter can be omitted when it's false.`,
});
}
if (
name === "notifyObservers" &&
args.length === 3 &&
isFalsy(args[2])
) {
context.report({
node,
fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(1, args));
},
message: `${name}'s third parameter can be omitted.`,
});
}
if (
name === "getComputedStyle" &&
args.length === 2 &&
isFalsy(args[1])
) {
context.report({
node,
fix: fixer => {
return fixer.removeRange(getRangeAfterArgToEnd(0, args));
},
message: "getComputedStyle's second parameter can be omitted.",
});
}
if (
name === "newURI" &&
args.length > 1 &&
isFalsy(args[args.length - 1])
) {
context.report({
node,
fix: fixer => {
if (args.length > 2 && isFalsy(args[args.length - 2])) {
return fixer.removeRange(getRangeAfterArgToEnd(0, args));
}
return fixer.removeRange(
getRangeAfterArgToEnd(args.length - 2, args)
);
},
message: "newURI's last parameters are optional.",
});
}
},
};
},
}; };

View file

@ -12,59 +12,61 @@
// Rule Definition // Rule Definition
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
module.exports = function(context) { module.exports = {
// --------------------------------------------------------------------------- meta: {
// Public type: "suggestion",
// -------------------------------------------------------------------------- fixable: "code",
},
create(context) {
return {
"Program > FunctionDeclaration": function(node) {
if (
node.id.name === "run_test" &&
node.body.type === "BlockStatement" &&
node.body.body.length === 1 &&
node.body.body[0].type === "ExpressionStatement" &&
node.body.body[0].expression.type === "CallExpression" &&
node.body.body[0].expression.callee.name === "run_next_test"
) {
context.report({
node,
fix: fixer => {
let sourceCode = context.getSourceCode();
let startNode;
if (sourceCode.getCommentsBefore) {
// ESLint 4 has getCommentsBefore.
startNode = sourceCode.getCommentsBefore(node);
} else if (node && node.body && node.leadingComments) {
// This is for ESLint 3.
startNode = node.leadingComments;
}
return { // If we have comments, we want the start node to be the comments,
"Program > FunctionDeclaration": function(node) { // rather than the token before the comments, so that we don't
if ( // remove the comments - for run_test, these are likely to be useful
node.id.name === "run_test" && // information about the test.
node.body.type === "BlockStatement" && if (startNode && startNode.length) {
node.body.body.length === 1 && startNode = startNode[startNode.length - 1];
node.body.body[0].type === "ExpressionStatement" && } else {
node.body.body[0].expression.type === "CallExpression" && startNode = sourceCode.getTokenBefore(node);
node.body.body[0].expression.callee.name === "run_next_test" }
) {
context.report({
node,
fix: fixer => {
let sourceCode = context.getSourceCode();
let startNode;
if (sourceCode.getCommentsBefore) {
// ESLint 4 has getCommentsBefore.
startNode = sourceCode.getCommentsBefore(node);
} else if (node && node.body && node.leadingComments) {
// This is for ESLint 3.
startNode = node.leadingComments;
}
// If we have comments, we want the start node to be the comments, return fixer.removeRange([
// rather than the token before the comments, so that we don't // If there's no startNode, we fall back to zero, i.e. start of
// remove the comments - for run_test, these are likely to be useful // file.
// information about the test. startNode ? startNode.range[1] + 1 : 0,
if (startNode && startNode.length) { // We know the function is a block and it'll end with }. Normally
startNode = startNode[startNode.length - 1]; // there's a new line after that, so just advance past it. This
} else { // may be slightly not dodgy in some cases, but covers the existing
startNode = sourceCode.getTokenBefore(node); // cases.
} node.range[1] + 1,
]);
return fixer.removeRange([ },
// If there's no startNode, we fall back to zero, i.e. start of message:
// file. "Useless run_test function - only contains run_next_test; whole function can be removed",
startNode ? startNode.range[1] + 1 : 0, });
// We know the function is a block and it'll end with }. Normally }
// there's a new line after that, so just advance past it. This },
// may be slightly not dodgy in some cases, but covers the existing };
// cases. },
node.range[1] + 1,
]);
},
message:
"Useless run_test function - only contains run_next_test; whole function can be removed",
});
}
},
};
}; };

View file

@ -59,66 +59,72 @@ function funcForBooleanLength(context, node, conditionCheck) {
return newText; return newText;
} }
module.exports = function(context) { module.exports = {
// --------------------------------------------------------------------------- meta: {
// Public type: "suggestion",
// -------------------------------------------------------------------------- fixable: "code",
},
create(context) {
// ---------------------------------------------------------------------------
// Public
// --------------------------------------------------------------------------
const conditionStatement = [ const conditionStatement = [
"IfStatement", "IfStatement",
"WhileStatement", "WhileStatement",
"DoWhileStatement", "DoWhileStatement",
"ForStatement", "ForStatement",
"ForInStatement", "ForInStatement",
"ConditionalExpression", "ConditionalExpression",
]; ];
return { return {
BinaryExpression(node) { BinaryExpression(node) {
if (
["==", "!=", ">", "<"].includes(node.operator) &&
((node.right.type == "Literal" &&
node.right.value == 0 &&
node.left.property &&
node.left.property.name == "length") ||
(node.left.type == "Literal" &&
node.left.value == 0 &&
node.right.property &&
node.right.property.name == "length"))
) {
if ( if (
conditionStatement.includes(node.parent.type) || ["==", "!=", ">", "<"].includes(node.operator) &&
(node.parent.type == "LogicalExpression" && ((node.right.type == "Literal" &&
conditionStatement.includes(node.parent.parent.type)) node.right.value == 0 &&
node.left.property &&
node.left.property.name == "length") ||
(node.left.type == "Literal" &&
node.left.value == 0 &&
node.right.property &&
node.right.property.name == "length"))
) { ) {
context.report({ if (
node, conditionStatement.includes(node.parent.type) ||
fix: fixer => { (node.parent.type == "LogicalExpression" &&
let generateExpression = funcForBooleanLength( conditionStatement.includes(node.parent.parent.type))
context, ) {
node, context.report({
true node,
); fix: fixer => {
let generateExpression = funcForBooleanLength(
context,
node,
true
);
return fixer.replaceText(node, generateExpression); return fixer.replaceText(node, generateExpression);
}, },
message: "Prefer boolean length check", message: "Prefer boolean length check",
}); });
} else { } else {
context.report({ context.report({
node, node,
fix: fixer => { fix: fixer => {
let generateExpression = funcForBooleanLength( let generateExpression = funcForBooleanLength(
context, context,
node, node,
false false
); );
return fixer.replaceText(node, generateExpression); return fixer.replaceText(node, generateExpression);
}, },
message: "Prefer boolean length check", message: "Prefer boolean length check",
}); });
}
} }
} },
}, };
}; },
}; };

View file

@ -4,7 +4,7 @@
"visibility": "public", "visibility": "public",
"filename": "eslint-plugin-mozilla.tar.gz", "filename": "eslint-plugin-mozilla.tar.gz",
"unpack": true, "unpack": true,
"digest": "0f0a727f41e3f97e467a7e22fabe631b0cbf63b251f51775bd8e28b108f6f6499e60c510855229f2f08790f23a848563cd77279efbc02ac2bdfb5212f91851b8", "digest": "196e87a20b68bcafb4fb7893c829beb3d44144f6985a4194bc41b135618f373732ae8e0604ed0548ae5e79f1c0eede33a802fbf4f12678c59a3615c481923912",
"size": 4839915 "size": 5272799
} }
] ]

View file

@ -1,6 +1,6 @@
{ {
"name": "eslint-plugin-mozilla", "name": "eslint-plugin-mozilla",
"version": "2.8.0", "version": "2.9.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -136,6 +136,35 @@
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
} }
}, },
"@eslint/eslintrc": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz",
"integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.1.1",
"espree": "^7.3.0",
"globals": "^12.1.0",
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
"js-yaml": "^3.13.1",
"lodash": "^4.17.19",
"minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1"
},
"dependencies": {
"globals": {
"version": "12.4.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
"integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
"dev": true,
"requires": {
"type-fest": "^0.8.1"
}
}
}
},
"@types/color-name": { "@types/color-name": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
@ -143,21 +172,21 @@
"dev": true "dev": true
}, },
"acorn": { "acorn": {
"version": "7.3.1", "version": "7.4.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
"integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
"dev": true "dev": true
}, },
"acorn-jsx": { "acorn-jsx": {
"version": "5.2.0", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
"integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
"dev": true "dev": true
}, },
"ajv": { "ajv": {
"version": "6.12.3", "version": "6.12.5",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz",
"integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==",
"dev": true, "dev": true,
"requires": { "requires": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
@ -296,9 +325,9 @@
} }
}, },
"chokidar": { "chokidar": {
"version": "3.3.1", "version": "3.4.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz",
"integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==",
"dev": true, "dev": true,
"requires": { "requires": {
"anymatch": "~3.1.1", "anymatch": "~3.1.1",
@ -308,7 +337,7 @@
"is-binary-path": "~2.1.0", "is-binary-path": "~2.1.0",
"is-glob": "~4.0.1", "is-glob": "~4.0.1",
"normalize-path": "~3.0.0", "normalize-path": "~3.0.0",
"readdirp": "~3.3.0" "readdirp": "~3.4.0"
} }
}, },
"cliui": { "cliui": {
@ -541,12 +570,13 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
}, },
"eslint": { "eslint": {
"version": "7.5.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.8.0.tgz",
"integrity": "sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==", "integrity": "sha512-qgtVyLZqKd2ZXWnLQA4NtVbOyH56zivOAdBFWE54RFkSZjokzNrcP4Z0eVWsZ+84ByXv+jL9k/wE1ENYe8xRFw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.0.0", "@babel/code-frame": "^7.0.0",
"@eslint/eslintrc": "^0.1.0",
"ajv": "^6.10.0", "ajv": "^6.10.0",
"chalk": "^4.0.0", "chalk": "^4.0.0",
"cross-spawn": "^7.0.2", "cross-spawn": "^7.0.2",
@ -556,7 +586,7 @@
"eslint-scope": "^5.1.0", "eslint-scope": "^5.1.0",
"eslint-utils": "^2.1.0", "eslint-utils": "^2.1.0",
"eslint-visitor-keys": "^1.3.0", "eslint-visitor-keys": "^1.3.0",
"espree": "^7.2.0", "espree": "^7.3.0",
"esquery": "^1.2.0", "esquery": "^1.2.0",
"esutils": "^2.0.2", "esutils": "^2.0.2",
"file-entry-cache": "^5.0.1", "file-entry-cache": "^5.0.1",
@ -641,9 +671,9 @@
"dev": true "dev": true
}, },
"supports-color": { "supports-color": {
"version": "7.1.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true, "dev": true,
"requires": { "requires": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
@ -675,12 +705,12 @@
"integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
}, },
"espree": { "espree": {
"version": "7.2.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-7.2.0.tgz", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz",
"integrity": "sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==", "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==",
"dev": true, "dev": true,
"requires": { "requires": {
"acorn": "^7.3.1", "acorn": "^7.4.0",
"acorn-jsx": "^5.2.0", "acorn-jsx": "^5.2.0",
"eslint-visitor-keys": "^1.3.0" "eslint-visitor-keys": "^1.3.0"
} }
@ -701,9 +731,9 @@
}, },
"dependencies": { "dependencies": {
"estraverse": { "estraverse": {
"version": "5.1.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
"integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
"dev": true "dev": true
} }
} }
@ -764,12 +794,12 @@
} }
}, },
"find-up": { "find-up": {
"version": "4.1.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true, "dev": true,
"requires": { "requires": {
"locate-path": "^5.0.0", "locate-path": "^6.0.0",
"path-exists": "^4.0.0" "path-exists": "^4.0.0"
} }
}, },
@ -967,9 +997,9 @@
"dev": true "dev": true
}, },
"is-callable": { "is-callable": {
"version": "1.2.0", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
"integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
"dev": true "dev": true
}, },
"is-date-object": { "is-date-object": {
@ -1011,10 +1041,16 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true "dev": true
}, },
"is-regex": { "is-plain-obj": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
"integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
"dev": true
},
"is-regex": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
"integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
"dev": true, "dev": true,
"requires": { "requires": {
"has-symbols": "^1.0.1" "has-symbols": "^1.0.1"
@ -1120,12 +1156,12 @@
} }
}, },
"locate-path": { "locate-path": {
"version": "5.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true, "dev": true,
"requires": { "requires": {
"p-locate": "^4.1.0" "p-locate": "^5.0.0"
} }
}, },
"lodash": { "lodash": {
@ -1134,12 +1170,64 @@
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
}, },
"log-symbols": { "log-symbols": {
"version": "3.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
"integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "^2.4.2" "chalk": "^4.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
"@types/color-name": "^1.1.1",
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
} }
}, },
"minimatch": { "minimatch": {
@ -1166,28 +1254,28 @@
} }
}, },
"mocha": { "mocha": {
"version": "8.0.1", "version": "8.1.3",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-8.0.1.tgz", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz",
"integrity": "sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==", "integrity": "sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==",
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-colors": "4.1.1", "ansi-colors": "4.1.1",
"browser-stdout": "1.3.1", "browser-stdout": "1.3.1",
"chokidar": "3.3.1", "chokidar": "3.4.2",
"debug": "3.2.6", "debug": "4.1.1",
"diff": "4.0.2", "diff": "4.0.2",
"escape-string-regexp": "1.0.5", "escape-string-regexp": "4.0.0",
"find-up": "4.1.0", "find-up": "5.0.0",
"glob": "7.1.6", "glob": "7.1.6",
"growl": "1.10.5", "growl": "1.10.5",
"he": "1.2.0", "he": "1.2.0",
"js-yaml": "3.13.1", "js-yaml": "3.14.0",
"log-symbols": "3.0.0", "log-symbols": "4.0.0",
"minimatch": "3.0.4", "minimatch": "3.0.4",
"ms": "2.1.2", "ms": "2.1.2",
"object.assign": "4.1.0", "object.assign": "4.1.0",
"promise.allsettled": "1.0.2", "promise.allsettled": "1.0.2",
"serialize-javascript": "3.0.0", "serialize-javascript": "4.0.0",
"strip-json-comments": "3.0.1", "strip-json-comments": "3.0.1",
"supports-color": "7.1.0", "supports-color": "7.1.0",
"which": "2.0.2", "which": "2.0.2",
@ -1195,17 +1283,14 @@
"workerpool": "6.0.0", "workerpool": "6.0.0",
"yargs": "13.3.2", "yargs": "13.3.2",
"yargs-parser": "13.1.2", "yargs-parser": "13.1.2",
"yargs-unparser": "1.6.0" "yargs-unparser": "1.6.1"
}, },
"dependencies": { "dependencies": {
"debug": { "escape-string-regexp": {
"version": "3.2.6", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true, "dev": true
"requires": {
"ms": "^2.1.1"
}
}, },
"has-flag": { "has-flag": {
"version": "4.0.0", "version": "4.0.0",
@ -1213,16 +1298,6 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true "dev": true
}, },
"js-yaml": {
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
"strip-json-comments": { "strip-json-comments": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
@ -1313,21 +1388,21 @@
} }
}, },
"p-limit": { "p-limit": {
"version": "2.3.0", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==",
"dev": true, "dev": true,
"requires": { "requires": {
"p-try": "^2.0.0" "p-try": "^2.0.0"
} }
}, },
"p-locate": { "p-locate": {
"version": "4.1.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true, "dev": true,
"requires": { "requires": {
"p-limit": "^2.2.0" "p-limit": "^3.0.2"
} }
}, },
"p-try": { "p-try": {
@ -1405,6 +1480,15 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true "dev": true
}, },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.0"
}
},
"readable-stream": { "readable-stream": {
"version": "3.6.0", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@ -1416,12 +1500,12 @@
} }
}, },
"readdirp": { "readdirp": {
"version": "3.3.0", "version": "3.4.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
"integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"picomatch": "^2.0.7" "picomatch": "^2.2.1"
} }
}, },
"regexpp": { "regexpp": {
@ -1481,10 +1565,13 @@
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
}, },
"serialize-javascript": { "serialize-javascript": {
"version": "3.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
"integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"dev": true "dev": true,
"requires": {
"randombytes": "^2.1.0"
}
}, },
"set-blocking": { "set-blocking": {
"version": "2.0.0", "version": "2.0.0",
@ -1663,9 +1750,9 @@
"dev": true "dev": true
}, },
"uri-js": { "uri-js": {
"version": "4.2.2", "version": "4.4.0",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
"dev": true, "dev": true,
"requires": { "requires": {
"punycode": "^2.1.0" "punycode": "^2.1.0"
@ -1831,6 +1918,15 @@
"path-exists": "^3.0.0" "path-exists": "^3.0.0"
} }
}, },
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": { "p-locate": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
@ -1859,14 +1955,90 @@
} }
}, },
"yargs-unparser": { "yargs-unparser": {
"version": "1.6.0", "version": "1.6.1",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz",
"integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==",
"dev": true, "dev": true,
"requires": { "requires": {
"camelcase": "^5.3.1",
"decamelize": "^1.2.0",
"flat": "^4.1.0", "flat": "^4.1.0",
"lodash": "^4.17.15", "is-plain-obj": "^1.1.0",
"yargs": "^13.3.0" "yargs": "^14.2.3"
},
"dependencies": {
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
"locate-path": "^3.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true
},
"yargs": {
"version": "14.2.3",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
"integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
"dev": true,
"requires": {
"cliui": "^5.0.0",
"decamelize": "^1.2.0",
"find-up": "^3.0.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^3.0.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^15.0.1"
}
},
"yargs-parser": {
"version": "15.0.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
"integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
}
} }
} }
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "eslint-plugin-mozilla", "name": "eslint-plugin-mozilla",
"version": "2.8.0", "version": "2.9.0",
"description": "A collection of rules that help enforce JavaScript coding standard in the Mozilla project.", "description": "A collection of rules that help enforce JavaScript coding standard in the Mozilla project.",
"keywords": [ "keywords": [
"eslint", "eslint",
@ -30,16 +30,16 @@
"sax": "1.2.4" "sax": "1.2.4"
}, },
"devDependencies": { "devDependencies": {
"eslint": "7.5.0", "eslint": "7.8.0",
"mocha": "8.0.1" "mocha": "^8.1.3"
}, },
"peerDependencies": { "peerDependencies": {
"eslint-config-prettier": "^6.0.0", "eslint-config-prettier": "^6.0.0",
"eslint-plugin-fetch-options": "^0.0.5", "eslint-plugin-fetch-options": "^0.0.5",
"eslint-plugin-html": "^6.0.0", "eslint-plugin-html": "^6.0.0",
"eslint-plugin-no-unsanitized": "^3.0.0", "eslint-plugin-no-unsanitized": "^3.1.4",
"eslint-plugin-prettier": "^3.0.1", "eslint-plugin-prettier": "^3.0.1",
"eslint": "^7.0.0", "eslint": "^7.8.0",
"prettier": "^1.17.0" "prettier": "^1.17.0"
}, },
"engines": { "engines": {

View file

@ -4,7 +4,7 @@
"visibility": "public", "visibility": "public",
"filename": "eslint.tar.gz", "filename": "eslint.tar.gz",
"unpack": true, "unpack": true,
"digest": "bfc97a84919e224c4b76a59bb1fe6b41c3466999b51070e2ec29f1dbb5ba3012139421ac199636c6dc43665c218472e1ba97c939af42746bef7f2c2571d87eb0", "digest": "ade0ac783a4efd0cff65fac77e8bbdc18189d6a0ba2f7258882d76e2d1a0d20e14bc56eab928353ab9abf15ae42a18eb3cf286787bd824500058d1194b6ca674",
"size": 8841756 "size": 8863963
} }
] ]