Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@blueprintjs/eslint-plugin

Package Overview
Dependencies
Maintainers
1
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@blueprintjs/eslint-plugin - npm Package Compare versions

Comparing version 1.0.6 to 2.0.0

3

lib/rules/classes-constants.d.ts

@@ -1,1 +0,2 @@

export declare const classesConstantsRule: import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<"useBlueprintClasses", [], import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
import { TSESLint } from "@typescript-eslint/utils";
export declare const classesConstantsRule: TSESLint.RuleModule<"useBlueprintClasses", [], TSESLint.RuleListener>;

@@ -19,4 +19,3 @@ "use strict";

exports.classesConstantsRule = void 0;
// tslint:disable object-literal-sort-keys
const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
const utils_1 = require("@typescript-eslint/utils");
const addImportToFile_1 = require("./utils/addImportToFile");

@@ -29,2 +28,3 @@ const createRule_1 = require("./utils/createRule");

const BLUEPRINT_CLASSNAME_PATTERN = /(?<![\w])((?:pt|bp3|bp4)-(?!icon)[\w-]+)/g;
// tslint:disable object-literal-sort-keys
exports.classesConstantsRule = (0, createRule_1.createRule)({

@@ -35,3 +35,2 @@ name: "classes-constants",

description: "Enforce usage of Classes constants over namespaced string literals.",
category: "Stylistic Issues",
recommended: "error",

@@ -55,11 +54,11 @@ requiresTypeChecking: false,

// We shouldn't lint on strings from imports/exports
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ImportDeclaration ||
((_b = node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration) {
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.ImportDeclaration ||
((_b = node.parent) === null || _b === void 0 ? void 0 : _b.type) === utils_1.AST_NODE_TYPES.ExportNamedDeclaration) {
return;
}
const nodeValue = node.type === experimental_utils_1.AST_NODE_TYPES.Literal ? node.raw : node.value.raw;
const nodeValue = node.type === utils_1.AST_NODE_TYPES.Literal ? node.raw : node.value.raw;
const prefixMatches = getAllMatches(nodeValue);
if (prefixMatches.length > 0) {
const ptClassStrings = prefixMatches.map(m => m.match);
const replacementText = node.type === experimental_utils_1.AST_NODE_TYPES.Literal
const replacementText = node.type === utils_1.AST_NODE_TYPES.Literal
? // "string literal" likely becomes `${template} string` so we may need to change how it is assigned

@@ -142,6 +141,6 @@ wrapForParent(getLiteralReplacement(nodeValue, prefixMatches), node)

}
else if (parent.type === experimental_utils_1.AST_NODE_TYPES.JSXAttribute) {
else if (parent.type === utils_1.AST_NODE_TYPES.JSXAttribute) {
return `{${statement}}`;
}
else if (parent.type === experimental_utils_1.AST_NODE_TYPES.ExpressionStatement) {
else if (parent.type === utils_1.AST_NODE_TYPES.ExpressionStatement) {
return `[${statement}]`;

@@ -148,0 +147,0 @@ }

@@ -1,1 +0,2 @@

export declare const htmlComponentsRule: import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<"useBlueprintComponents", [], import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
import { TSESLint } from "@typescript-eslint/utils";
export declare const htmlComponentsRule: TSESLint.RuleModule<"useBlueprintComponents", [], TSESLint.RuleListener>;

@@ -19,4 +19,3 @@ "use strict";

exports.htmlComponentsRule = void 0;
// tslint:disable: object-literal-sort-keys
const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
const utils_1 = require("@typescript-eslint/utils");
const addImportToFile_1 = require("./utils/addImportToFile");

@@ -27,2 +26,3 @@ const createRule_1 = require("./utils/createRule");

const PATTERN = /^(h[1-6]|code|pre|blockquote|table)$/;
// tslint:disable object-literal-sort-keys
exports.htmlComponentsRule = (0, createRule_1.createRule)({

@@ -33,3 +33,2 @@ name: "html-components",

description: "Enforce usage of Blueprint components over JSX intrinsic elements.",
category: "Stylistic Issues",
recommended: "error",

@@ -52,3 +51,3 @@ requiresTypeChecking: false,

const tagNameNode = node.name;
if (tagNameNode.type === experimental_utils_1.AST_NODE_TYPES.JSXIdentifier) {
if (tagNameNode.type === utils_1.AST_NODE_TYPES.JSXIdentifier) {
const match = PATTERN.exec(tagNameNode.name);

@@ -55,0 +54,0 @@ if (match != null) {

@@ -0,1 +1,2 @@

import { TSESLint } from "@typescript-eslint/utils";
export declare const OPTION_COMPONENT = "component";

@@ -5,3 +6,3 @@ export declare const OPTION_LITERAL = "literal";

declare type MessageIds = "component" | "literal";
export declare const iconComponentsRule: import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<MessageIds, Options, import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
export declare const iconComponentsRule: TSESLint.RuleModule<MessageIds, Options, TSESLint.RuleListener>;
export {};

@@ -19,7 +19,7 @@ "use strict";

exports.iconComponentsRule = exports.OPTION_LITERAL = exports.OPTION_COMPONENT = void 0;
const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
const utils_1 = require("@typescript-eslint/utils");
const createRule_1 = require("./utils/createRule");
exports.OPTION_COMPONENT = "component";
exports.OPTION_LITERAL = "literal";
// tslint:disable: object-literal-sort-keys
// tslint:disable object-literal-sort-keys
exports.iconComponentsRule = (0, createRule_1.createRule)({

@@ -30,3 +30,2 @@ name: "icon-components",

description: "Enforce usage of JSX Icon components over IconName string literals (or vice-versa)",
category: "Stylistic Issues",
recommended: "error",

@@ -52,3 +51,3 @@ requiresTypeChecking: false,

});
// tslint:enable: object-literal-sort-keys
// tslint:enable object-literal-sort-keys
function create(context, node) {

@@ -64,3 +63,3 @@ const option = context.options[0] || exports.OPTION_COMPONENT;

}
else if (valueNode.type === experimental_utils_1.AST_NODE_TYPES.Literal && valueNode.value != null && option === exports.OPTION_COMPONENT) {
else if (valueNode.type === utils_1.AST_NODE_TYPES.Literal && valueNode.value != null && option === exports.OPTION_COMPONENT) {
// "tick" -> <TickIcon />

@@ -78,3 +77,3 @@ const quotedIconName = sourceCode.getText(valueNode);

}
else if (valueNode.type === experimental_utils_1.AST_NODE_TYPES.JSXExpressionContainer && option === exports.OPTION_LITERAL) {
else if (valueNode.type === utils_1.AST_NODE_TYPES.JSXExpressionContainer && option === exports.OPTION_LITERAL) {
// <TickIcon /> -> "tick"

@@ -81,0 +80,0 @@ const componentText = sourceCode.getText(valueNode.expression);

declare const _default: {
"classes-constants": import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<"useBlueprintClasses", [], import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
"html-components": import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<"useBlueprintComponents", [], import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
"icon-components": import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<"literal" | "component", ["literal" | "component"], import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
"classes-constants": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"useBlueprintClasses", [], import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
"html-components": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"useBlueprintComponents", [], import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
"icon-components": import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"literal" | "component", ["literal" | "component"], import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
};
export default _default;

@@ -1,3 +0,2 @@

import { TSESTree } from "@typescript-eslint/experimental-utils";
import { ReportFixFunction } from "@typescript-eslint/experimental-utils/dist/ts-eslint";
import { TSESLint, TSESTree } from "@typescript-eslint/utils";
/**

@@ -7,2 +6,2 @@ * Return a function which when provided with a fixer will produce a RuleFix to add the

*/
export declare const addImportToFile: (program: TSESTree.Program, imports: string[], packageName: string) => ReportFixFunction;
export declare const addImportToFile: (program: TSESTree.Program, imports: string[], packageName: string) => TSESLint.ReportFixFunction;

@@ -19,3 +19,3 @@ "use strict";

exports.addImportToFile = void 0;
const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
const utils_1 = require("@typescript-eslint/utils");
/**

@@ -26,6 +26,6 @@ * Return a function which when provided with a fixer will produce a RuleFix to add the

const addImportToFile = (program, imports, packageName) => fixer => {
const fileImports = program.body.filter(node => node.type === experimental_utils_1.AST_NODE_TYPES.ImportDeclaration);
const fileImports = program.body.filter(node => node.type === utils_1.AST_NODE_TYPES.ImportDeclaration);
const nodeToModify = fileImports.find(node => node.source.value === packageName);
if (nodeToModify !== undefined &&
nodeToModify.specifiers.every(node => node.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier)) {
nodeToModify.specifiers.every(node => node.type === utils_1.AST_NODE_TYPES.ImportSpecifier)) {
// Module imports

@@ -32,0 +32,0 @@ const existingImports = nodeToModify.specifiers.map(node => node.local.name);

@@ -0,16 +1,3 @@

import { ESLintUtils } from "@typescript-eslint/utils";
/** Create a rule and automatically fill its url based on the rule name. */
export declare const createRule: <TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener = import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>({ name, meta, defaultOptions, create, }: Readonly<{
name: string;
meta: {
docs: {
description: string;
suggestion?: boolean | undefined;
category: "Best Practices" | "Stylistic Issues" | "Variables" | "Possible Errors";
recommended: false | "error" | "warn";
requiresTypeChecking?: boolean | undefined;
extendsBaseRule?: string | boolean | undefined;
};
} & Omit<import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleMetaData<TMessageIds>, "docs">;
defaultOptions: Readonly<TOptions>;
create: (context: Readonly<import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleContext<TMessageIds, TOptions>>, optionsWithDefault: Readonly<TOptions>) => TRuleListener;
}>) => import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<TMessageIds, TOptions, TRuleListener>;
export declare const createRule: <TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener = import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>({ name, meta, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<TOptions, TMessageIds, TRuleListener>>) => import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<TMessageIds, TOptions, TRuleListener>;

@@ -19,5 +19,5 @@ "use strict";

exports.createRule = void 0;
const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
const utils_1 = require("@typescript-eslint/utils");
/** Create a rule and automatically fill its url based on the rule name. */
exports.createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `https://github.com/palantir/blueprint/tree/develop/packages/eslint-plugin/src/rules/${name}.ts`);
exports.createRule = utils_1.ESLintUtils.RuleCreator(name => `https://github.com/palantir/blueprint/tree/develop/packages/eslint-plugin/src/rules/${name}.ts`);
//# sourceMappingURL=createRule.js.map

@@ -1,6 +0,8 @@

import { RuleFix } from "@typescript-eslint/experimental-utils/dist/ts-eslint";
import { TSESLint } from "@typescript-eslint/utils";
declare type RuleFix = TSESLint.RuleFix;
export declare class FixList {
private fixes;
getFixes(): RuleFix[];
addFixes(fixes: null | RuleFix | RuleFix[] | IterableIterator<RuleFix>): void;
getFixes(): TSESLint.RuleFix[];
addFixes(fixes: null | RuleFix | readonly RuleFix[] | IterableIterator<RuleFix>): void;
}
export {};

@@ -1,2 +0,2 @@

import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/experimental-utils";
import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/utils";
/**

@@ -3,0 +3,0 @@ * Return the top level node that is the greatest parent of the current node, if it is a Program.

@@ -19,3 +19,3 @@ "use strict";

exports.getProgram = void 0;
const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
const utils_1 = require("@typescript-eslint/utils");
/**

@@ -30,3 +30,3 @@ * Return the top level node that is the greatest parent of the current node, if it is a Program.

}
if (curr.type === experimental_utils_1.AST_NODE_TYPES.Program) {
if (curr.type === utils_1.AST_NODE_TYPES.Program) {
return curr;

@@ -33,0 +33,0 @@ }

{
"name": "@blueprintjs/eslint-plugin",
"version": "1.0.6",
"version": "2.0.0",
"description": "ESLint rules for use with @blueprintjs packages",

@@ -16,7 +16,7 @@ "main": "lib/index.js",

"dependencies": {
"@typescript-eslint/experimental-utils": "^4.9.1",
"eslint": "^7.15.0"
"@typescript-eslint/utils": "^5.21.0",
"eslint": "^8.14.0"
},
"devDependencies": {
"@blueprintjs/node-build-scripts": "^4.0.3",
"@blueprintjs/node-build-scripts": "^5.0.0",
"@types/dedent": "^0.7.0",

@@ -23,0 +23,0 @@ "dedent": "^0.7.0",

@@ -17,5 +17,3 @@ /*

// tslint:disable object-literal-sort-keys
import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/experimental-utils";
import { RuleContext } from "@typescript-eslint/experimental-utils/dist/ts-eslint";
import { AST_NODE_TYPES, TSESLint, TSESTree } from "@typescript-eslint/utils";

@@ -33,2 +31,3 @@ import { addImportToFile } from "./utils/addImportToFile";

// tslint:disable object-literal-sort-keys
export const classesConstantsRule = createRule<[], MessageIds>({

@@ -39,3 +38,2 @@ name: "classes-constants",

description: "Enforce usage of Classes constants over namespaced string literals.",
category: "Stylistic Issues",
recommended: "error",

@@ -57,3 +55,6 @@ requiresTypeChecking: false,

function create(context: RuleContext<MessageIds, []>, node: TSESTree.Literal | TSESTree.TemplateElement): void {
function create(
context: TSESLint.RuleContext<MessageIds, []>,
node: TSESTree.Literal | TSESTree.TemplateElement,
): void {
// We shouldn't lint on strings from imports/exports

@@ -60,0 +61,0 @@ if (

@@ -17,5 +17,3 @@ /*

// tslint:disable: object-literal-sort-keys
import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/experimental-utils";
import { RuleContext } from "@typescript-eslint/experimental-utils/dist/ts-eslint";
import { AST_NODE_TYPES, TSESLint, TSESTree } from "@typescript-eslint/utils";

@@ -31,2 +29,3 @@ import { addImportToFile } from "./utils/addImportToFile";

// tslint:disable object-literal-sort-keys
export const htmlComponentsRule = createRule<[], MessageIds>({

@@ -37,3 +36,2 @@ name: "html-components",

description: "Enforce usage of Blueprint components over JSX intrinsic elements.",
category: "Stylistic Issues",
recommended: "error",

@@ -55,3 +53,3 @@ requiresTypeChecking: false,

function create(context: RuleContext<MessageIds, []>, node: TSESTree.JSXOpeningElement): void {
function create(context: TSESLint.RuleContext<MessageIds, []>, node: TSESTree.JSXOpeningElement): void {
const tagNameNode = node.name;

@@ -58,0 +56,0 @@ if (tagNameNode.type === AST_NODE_TYPES.JSXIdentifier) {

@@ -17,4 +17,3 @@ /*

import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/experimental-utils";
import { RuleContext } from "@typescript-eslint/experimental-utils/dist/ts-eslint";
import { AST_NODE_TYPES, TSESLint, TSESTree } from "@typescript-eslint/utils";

@@ -29,3 +28,3 @@ import { createRule } from "./utils/createRule";

// tslint:disable: object-literal-sort-keys
// tslint:disable object-literal-sort-keys
export const iconComponentsRule = createRule<Options, MessageIds>({

@@ -36,3 +35,2 @@ name: "icon-components",

description: "Enforce usage of JSX Icon components over IconName string literals (or vice-versa)",
category: "Stylistic Issues",
recommended: "error",

@@ -58,5 +56,5 @@ requiresTypeChecking: false,

});
// tslint:enable: object-literal-sort-keys
// tslint:enable object-literal-sort-keys
function create(context: RuleContext<MessageIds, Options>, node: TSESTree.JSXAttribute): void {
function create(context: TSESLint.RuleContext<MessageIds, Options>, node: TSESTree.JSXAttribute): void {
const option = context.options[0] || OPTION_COMPONENT;

@@ -63,0 +61,0 @@ const sourceCode = context.getSourceCode();

@@ -17,4 +17,3 @@ /*

import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/experimental-utils";
import { ReportFixFunction } from "@typescript-eslint/experimental-utils/dist/ts-eslint";
import { AST_NODE_TYPES, TSESLint, TSESTree } from "@typescript-eslint/utils";

@@ -25,37 +24,35 @@ /**

*/
export const addImportToFile = (
program: TSESTree.Program,
imports: string[],
packageName: string,
): ReportFixFunction => fixer => {
const fileImports = program.body.filter(
node => node.type === AST_NODE_TYPES.ImportDeclaration,
) as TSESTree.ImportDeclaration[];
const nodeToModify = fileImports.find(node => node.source.value === packageName);
export const addImportToFile =
(program: TSESTree.Program, imports: string[], packageName: string): TSESLint.ReportFixFunction =>
fixer => {
const fileImports = program.body.filter(
node => node.type === AST_NODE_TYPES.ImportDeclaration,
) as TSESTree.ImportDeclaration[];
const nodeToModify = fileImports.find(node => node.source.value === packageName);
if (
nodeToModify !== undefined &&
nodeToModify.specifiers.every(node => node.type === AST_NODE_TYPES.ImportSpecifier)
) {
// Module imports
const existingImports = nodeToModify.specifiers.map(node => node.local.name);
const newImports = Array.from(new Set(existingImports.concat(imports))).sort();
const importString = `import { ${newImports.join(", ")} } from "${nodeToModify.source.value}";`;
return fixer.replaceText(nodeToModify, importString);
} else {
// Default imports
if (
nodeToModify !== undefined &&
nodeToModify.specifiers.every(node => node.type === AST_NODE_TYPES.ImportSpecifier)
) {
// Module imports
const existingImports = nodeToModify.specifiers.map(node => node.local.name);
const newImports = Array.from(new Set(existingImports.concat(imports))).sort();
const importString = `import { ${newImports.join(", ")} } from "${nodeToModify.source.value}";`;
return fixer.replaceText(nodeToModify, importString);
} else {
// Default imports
// Find the node thats alphabetically after the new one, so we can insert before it
const followingImportNode = fileImports.find(imp => {
return imp.source.value != null && compare(imp.source.value.toString(), packageName) === 1;
});
// Find the node thats alphabetically after the new one, so we can insert before it
const followingImportNode = fileImports.find(imp => {
return imp.source.value != null && compare(imp.source.value.toString(), packageName) === 1;
});
const onlyImport = fileImports.length === 0;
return fixer.insertTextBefore(
followingImportNode !== undefined ? followingImportNode : program.body[0],
// If we are adding the first import, add a 2nd new line afterwards
`import { ${imports.sort().join(", ")} } from "${packageName}";\n${onlyImport ? "\n" : ""}`,
);
}
};
const onlyImport = fileImports.length === 0;
return fixer.insertTextBefore(
followingImportNode !== undefined ? followingImportNode : program.body[0],
// If we are adding the first import, add a 2nd new line afterwards
`import { ${imports.sort().join(", ")} } from "${packageName}";\n${onlyImport ? "\n" : ""}`,
);
}
};

@@ -62,0 +59,0 @@ function isLow(value: string) {

@@ -17,3 +17,3 @@ /*

import { ESLintUtils } from "@typescript-eslint/experimental-utils";
import { ESLintUtils } from "@typescript-eslint/utils";

@@ -20,0 +20,0 @@ /** Create a rule and automatically fill its url based on the rule name. */

@@ -17,4 +17,6 @@ /*

import { RuleFix } from "@typescript-eslint/experimental-utils/dist/ts-eslint";
import { TSESLint } from "@typescript-eslint/utils";
type RuleFix = TSESLint.RuleFix;
export class FixList {

@@ -27,3 +29,3 @@ private fixes: RuleFix[] = [];

public addFixes(fixes: null | RuleFix | RuleFix[] | IterableIterator<RuleFix>) {
public addFixes(fixes: null | RuleFix | readonly RuleFix[] | IterableIterator<RuleFix>) {
if (fixes == null) {

@@ -39,4 +41,4 @@ return;

function isRuleFix(fix: RuleFix | RuleFix[] | IterableIterator<RuleFix>): fix is RuleFix {
function isRuleFix(fix: RuleFix | readonly RuleFix[] | IterableIterator<RuleFix>): fix is RuleFix {
return (fix as RuleFix).range !== undefined && (fix as RuleFix).text !== undefined;
}

@@ -17,3 +17,3 @@ /*

import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/experimental-utils";
import { AST_NODE_TYPES, TSESTree } from "@typescript-eslint/utils";

@@ -20,0 +20,0 @@ /**

@@ -20,3 +20,3 @@ /*

import { TSESLint } from "@typescript-eslint/experimental-utils";
import { TSESLint } from "@typescript-eslint/utils";
import dedent from "dedent";

@@ -23,0 +23,0 @@

@@ -17,3 +17,3 @@ /*

import { TSESLint } from "@typescript-eslint/experimental-utils";
import { TSESLint } from "@typescript-eslint/utils";
import dedent from "dedent";

@@ -20,0 +20,0 @@

@@ -17,3 +17,3 @@ /*

import { TSESLint } from "@typescript-eslint/experimental-utils";
import { TSESLint } from "@typescript-eslint/utils";

@@ -20,0 +20,0 @@ import { iconComponentsRule, OPTION_COMPONENT, OPTION_LITERAL } from "../src/rules/icon-components";

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc