@elastic/eslint-plugin-eui 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +145 -9
  2. package/lib/cjs/index.d.ts +2 -0
  3. package/lib/cjs/index.d.ts.map +1 -0
  4. package/{index.js → lib/cjs/index.js} +19 -6
  5. package/lib/cjs/rules/href_or_on_click.d.ts +3 -0
  6. package/lib/cjs/rules/href_or_on_click.d.ts.map +1 -0
  7. package/lib/cjs/rules/href_or_on_click.js +65 -0
  8. package/lib/cjs/rules/no_css_color.d.ts +3 -0
  9. package/lib/cjs/rules/no_css_color.d.ts.map +1 -0
  10. package/lib/cjs/rules/no_css_color.js +329 -0
  11. package/lib/cjs/rules/no_restricted_eui_imports.d.ts +8 -0
  12. package/lib/cjs/rules/no_restricted_eui_imports.d.ts.map +1 -0
  13. package/lib/cjs/rules/no_restricted_eui_imports.js +76 -0
  14. package/lib/cjs/rules/prefer_css_attribute_for_eui_components.d.ts +3 -0
  15. package/lib/cjs/rules/prefer_css_attribute_for_eui_components.d.ts.map +1 -0
  16. package/lib/cjs/rules/prefer_css_attribute_for_eui_components.js +63 -0
  17. package/lib/cjs/utils/resolve_member_expression_root.d.ts +3 -0
  18. package/lib/cjs/utils/resolve_member_expression_root.d.ts.map +1 -0
  19. package/lib/cjs/utils/resolve_member_expression_root.js +13 -0
  20. package/lib/esm/index.d.ts +1 -0
  21. package/lib/esm/index.js +45 -0
  22. package/lib/esm/index.js.map +1 -0
  23. package/lib/esm/rules/href_or_on_click.d.ts +2 -0
  24. package/lib/esm/rules/href_or_on_click.js +61 -0
  25. package/lib/esm/rules/href_or_on_click.js.map +1 -0
  26. package/lib/esm/rules/no_css_color.d.ts +2 -0
  27. package/lib/esm/rules/no_css_color.js +360 -0
  28. package/lib/esm/rules/no_css_color.js.map +1 -0
  29. package/lib/esm/rules/no_restricted_eui_imports.d.ts +7 -0
  30. package/lib/esm/rules/no_restricted_eui_imports.js +76 -0
  31. package/lib/esm/rules/no_restricted_eui_imports.js.map +1 -0
  32. package/lib/esm/rules/prefer_css_attribute_for_eui_components.d.ts +2 -0
  33. package/lib/esm/rules/prefer_css_attribute_for_eui_components.js +63 -0
  34. package/lib/esm/rules/prefer_css_attribute_for_eui_components.js.map +1 -0
  35. package/lib/esm/utils/resolve_member_expression_root.d.ts +2 -0
  36. package/lib/esm/utils/resolve_member_expression_root.js +11 -0
  37. package/lib/esm/utils/resolve_member_expression_root.js.map +1 -0
  38. package/package.json +53 -10
  39. package/rules/href_or_on_click.js +0 -35
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no_css_color.js","sourceRoot":"","sources":["../../../src/rules/no_css_color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TSESLint } from '@typescript-eslint/utils';
2
+ type Option = {
3
+ patterns: string[];
4
+ message: string;
5
+ };
6
+ export declare const NoRestrictedEuiImports: TSESLint.RuleModule<never, Readonly<Option>[]>;
7
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /*
3
+ * Licensed to Elasticsearch B.V. under one or more contributor
4
+ * license agreements. See the NOTICE file distributed with
5
+ * this work for additional information regarding copyright
6
+ * ownership. Elasticsearch B.V. licenses this file to you under
7
+ * the Apache License, Version 2.0 (the "License"); you may
8
+ * not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing,
14
+ * software distributed under the License is distributed on an
15
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ * KIND, either express or implied. See the License for the
17
+ * specific language governing permissions and limitations
18
+ * under the License.
19
+ */
20
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21
+ return (mod && mod.__esModule) ? mod : { "default": mod };
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.NoRestrictedEuiImports = void 0;
25
+ const micromatch_1 = __importDefault(require("micromatch"));
26
+ const DEFAULT_RESTRICTED_IMPORT_OPTIONS = [
27
+ {
28
+ patterns: ['@elastic/eui/dist/eui_theme_*\\.json'],
29
+ message: 'For client-side, please use `useEuiTheme` instead. Direct JSON token imports will be removed as per the EUI Deprecation schedule: https://github.com/elastic/eui/issues/1469.',
30
+ },
31
+ ];
32
+ exports.NoRestrictedEuiImports = {
33
+ create(context) {
34
+ const userOptions = context.options || [];
35
+ const options = [...DEFAULT_RESTRICTED_IMPORT_OPTIONS, ...userOptions];
36
+ return {
37
+ ImportDeclaration(node) {
38
+ options.forEach(({ patterns, message }) => {
39
+ if (micromatch_1.default.isMatch(node.source.value, patterns)) {
40
+ context.report({
41
+ loc: node.source.loc,
42
+ // @ts-expect-error @typescript-eslint types expect `messageId` here but `message` is also allowed in eslint API
43
+ message,
44
+ });
45
+ }
46
+ });
47
+ },
48
+ };
49
+ },
50
+ meta: {
51
+ type: 'problem',
52
+ docs: {
53
+ description: 'Discourage the use of deprecated EUI imports.',
54
+ },
55
+ schema: [
56
+ {
57
+ type: 'object',
58
+ properties: {
59
+ patterns: {
60
+ type: 'array',
61
+ items: {
62
+ type: 'string',
63
+ },
64
+ },
65
+ message: {
66
+ type: 'string',
67
+ },
68
+ },
69
+ additionalProperties: false,
70
+ },
71
+ ],
72
+ messages: {},
73
+ },
74
+ defaultOptions: [],
75
+ };
76
+ //# sourceMappingURL=no_restricted_eui_imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no_restricted_eui_imports.js","sourceRoot":"","sources":["../../../src/rules/no_restricted_eui_imports.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;AAEH,4DAAoC;AAQpC,MAAM,iCAAiC,GAAa;IAClD;QACE,QAAQ,EAAE,CAAC,sCAAsC,CAAC;QAClD,OAAO,EACL,+KAA+K;KAClL;CACF,CAAC;AAEW,QAAA,sBAAsB,GAAmD;IACpF,MAAM,CAAC,OAAO;QACZ,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,iCAAiC,EAAE,GAAG,WAAW,CAAC,CAAC;QAEvE,OAAO;YACL,iBAAiB,CAAC,IAAgC;gBAChD,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAU,EAAE,EAAE;oBAChD,IAAI,oBAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACpD,OAAO,CAAC,MAAM,CAAC;4BACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;4BACpB,gHAAgH;4BAChH,OAAO;yBACR,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;SAC7D;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;qBACF;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,cAAc,EAAE,EAAE;CACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ESLintUtils } from '@typescript-eslint/utils';
2
+ export declare const PreferCSSAttributeForEuiComponents: ESLintUtils.RuleModule<"preferCSSAttributeForEuiComponents", [], unknown, ESLintUtils.RuleListener>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /*
3
+ * Licensed to Elasticsearch B.V. under one or more contributor
4
+ * license agreements. See the NOTICE file distributed with
5
+ * this work for additional information regarding copyright
6
+ * ownership. Elasticsearch B.V. licenses this file to you under
7
+ * the Apache License, Version 2.0 (the "License"); you may
8
+ * not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing,
14
+ * software distributed under the License is distributed on an
15
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ * KIND, either express or implied. See the License for the
17
+ * specific language governing permissions and limitations
18
+ * under the License.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.PreferCSSAttributeForEuiComponents = void 0;
22
+ const utils_1 = require("@typescript-eslint/utils");
23
+ exports.PreferCSSAttributeForEuiComponents = utils_1.ESLintUtils.RuleCreator.withoutDocs({
24
+ create(context) {
25
+ const isNamedEuiComponentRegex = /^Eui[A-Z]*/;
26
+ return {
27
+ JSXOpeningElement(node) {
28
+ if (node.name.type === 'JSXIdentifier' &&
29
+ isNamedEuiComponentRegex.test(node.name.name)) {
30
+ let styleAttrNode;
31
+ if ((styleAttrNode = node.attributes
32
+ .filter((attr) => attr.type === 'JSXAttribute')
33
+ .find((attr) => attr.name.name === 'style'))) {
34
+ context.report({
35
+ node: styleAttrNode?.parent,
36
+ messageId: 'preferCSSAttributeForEuiComponents',
37
+ fix(fixer) {
38
+ const cssAttr = node.attributes.find((attr) => attr.type === 'JSXAttribute' && attr.name.name === 'css');
39
+ if (cssAttr) {
40
+ return null;
41
+ }
42
+ return fixer.replaceTextRange(styleAttrNode?.name?.range, 'css');
43
+ },
44
+ });
45
+ }
46
+ }
47
+ },
48
+ };
49
+ },
50
+ meta: {
51
+ type: 'suggestion',
52
+ docs: {
53
+ description: 'Prefer the JSX css attribute for EUI components',
54
+ },
55
+ messages: {
56
+ preferCSSAttributeForEuiComponents: 'Prefer the css attribute for EUI components',
57
+ },
58
+ fixable: 'code',
59
+ schema: [],
60
+ },
61
+ defaultOptions: [],
62
+ });
63
+ //# sourceMappingURL=prefer_css_attribute_for_eui_components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer_css_attribute_for_eui_components.js","sourceRoot":"","sources":["../../../src/rules/prefer_css_attribute_for_eui_components.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAEH,oDAAiE;AAEpD,QAAA,kCAAkC,GAC7C,mBAAW,CAAC,WAAW,CAAC,WAAW,CAAC;IAClC,MAAM,CAAC,OAAO;QACZ,MAAM,wBAAwB,GAAG,YAAY,CAAC;QAE9C,OAAO;YACL,iBAAiB,CAAC,IAAgC;gBAChD,IACE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;oBAClC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7C,CAAC;oBACD,IAAI,aAAgD,CAAC;oBAErD,IACE,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU;yBAC7B,MAAM,CACL,CAAC,IAAI,EAAiC,EAAE,CACtC,IAAI,CAAC,IAAI,KAAK,cAAc,CAC/B;yBACA,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,EAC9C,CAAC;wBACD,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,aAAa,EAAE,MAAM;4BAC3B,SAAS,EAAE,oCAAoC;4BAC/C,GAAG,CAAC,KAAK;gCACP,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAClC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAC3D,CAAC;gCAEF,IAAI,OAAO,EAAE,CAAC;oCACZ,OAAO,IAAI,CAAC;gCACd,CAAC;gCAED,OAAO,KAAK,CAAC,gBAAgB,CAC3B,aAAa,EAAE,IAAI,EAAE,KAAM,EAC3B,KAAK,CACN,CAAC;4BACJ,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,iDAAiD;SAC/D;QACD,QAAQ,EAAE;YACR,kCAAkC,EAChC,6CAA6C;SAChD;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;CACnB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { TSESTree } from '@typescript-eslint/typescript-estree';
2
+ export declare const resolveMemberExpressionRoot: (node: TSESTree.MemberExpression) => TSESTree.Identifier;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveMemberExpressionRoot = void 0;
4
+ const resolveMemberExpressionRoot = (node) => {
5
+ if (node.object.type === 'MemberExpression') {
6
+ return (0, exports.resolveMemberExpressionRoot)(node.object);
7
+ }
8
+ return node.object;
9
+ };
10
+ exports.resolveMemberExpressionRoot = resolveMemberExpressionRoot;
11
+ //# sourceMappingURL=resolve_member_expression_root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve_member_expression_root.js","sourceRoot":"","sources":["../../../src/utils/resolve_member_expression_root.ts"],"names":[],"mappings":";;;AAEO,MAAM,2BAA2B,GAAG,CACzC,IAA+B,EACV,EAAE;IACvB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC5C,OAAO,IAAA,mCAA2B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,IAAI,CAAC,MAA6B,CAAC;AAC5C,CAAC,CAAC;AARW,QAAA,2BAA2B,+BAQtC"}
package/package.json CHANGED
@@ -1,18 +1,61 @@
1
1
  {
2
2
  "name": "@elastic/eslint-plugin-eui",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
- "type" : "git",
7
- "url" : "https://github.com/elastic/eui.git"
6
+ "type": "git",
7
+ "url": "https://github.com/elastic/eui.git",
8
+ "directory": "packages/eslint-plugin"
9
+ },
10
+ "homepage": "https://github.com/elastic/eui/blob/main/packages/eslint-plugin",
11
+ "exports": {
12
+ "require": "./lib/cjs/index.js",
13
+ "import": "./lib/esm/index.js"
8
14
  },
9
- "homepage": "https://github.com/elastic/eui/blob/master/packages/eslint-plugin",
10
15
  "peerDependencies": {
11
- "eslint": ">=5, <7"
16
+ "eslint": "^8.57.0 || ^9.0.0",
17
+ "typescript": ">=4.8.4 <6.0.0"
12
18
  },
13
19
  "devDependencies": {
14
- "@babel/core": "^7.6.0",
15
- "babel-eslint": "^10.0.3",
16
- "eslint": "^6.4.0"
17
- }
18
- }
20
+ "@babel/cli": "^7.26.4",
21
+ "@babel/core": "^7.26.9",
22
+ "@babel/preset-env": "^7.26.9",
23
+ "@babel/preset-typescript": "^7.26.0",
24
+ "@types/babel__core": "^7",
25
+ "@types/babel__preset-env": "^7",
26
+ "@types/cssstyle": "^2.2.4",
27
+ "@types/dedent": "^0.7.2",
28
+ "@types/jest": "^29.5.14",
29
+ "@types/micromatch": "^4.0.9",
30
+ "@typescript-eslint/eslint-plugin": "^8.22.0",
31
+ "@typescript-eslint/parser": "^8.22.0",
32
+ "@typescript-eslint/rule-tester": "^8.22.0",
33
+ "@typescript-eslint/typescript-estree": "^8.22.0",
34
+ "@typescript-eslint/utils": "^8.22.0",
35
+ "cssstyle": "^4.2.1",
36
+ "dedent": "^1.5.3",
37
+ "eslint": "^8.57.0",
38
+ "jest": "^29.7.0",
39
+ "micromatch": "^4.0.8",
40
+ "rimraf": "^6.0.1",
41
+ "ts-jest": "^29.2.5",
42
+ "ts-node": "^10.9.2",
43
+ "typescript": "^5.7.3"
44
+ },
45
+ "scripts": {
46
+ "test": "jest src",
47
+ "build": "yarn build:clean && yarn build:compile && yarn build:compile:esm && yarn build:types",
48
+ "build:clean": "rimraf lib/",
49
+ "build:compile:esm": "tsc --project ./tsconfig.esm.json",
50
+ "build:compile": "NODE_ENV=production babel src --out-dir=lib/cjs --extensions .js,.ts,.tsx",
51
+ "build:types": "NODE_ENV=production tsc --project tsconfig.types.json",
52
+ "build:pack": "yarn build && npm pack"
53
+ },
54
+ "files": [
55
+ "lib",
56
+ "!**/.tsbuildinfo",
57
+ "!**/*.test.js",
58
+ "!**/*.test.js.map",
59
+ "!**/*.test.d.ts"
60
+ ]
61
+ }
@@ -1,35 +0,0 @@
1
- const componentNames = ['EuiButton', 'EuiButtonEmpty', 'EuiLink'];
2
-
3
- module.exports = {
4
- meta: {
5
- fixable: null,
6
- },
7
- create(context) {
8
- return {
9
- JSXOpeningElement(node) {
10
- if (
11
- node.name.type !== 'JSXIdentifier' ||
12
- !componentNames.includes(node.name.name)
13
- ) {
14
- return;
15
- }
16
-
17
- const hasHref = node.attributes.some(
18
- attr => attr.type === 'JSXAttribute' && attr.name.name === 'href'
19
- );
20
- const hasOnClick = node.attributes.some(
21
- attr => attr.type === 'JSXAttribute' && attr.name.name === 'onClick'
22
- );
23
-
24
- if (hasHref && hasOnClick) {
25
- context.report(
26
- node,
27
- `<${
28
- node.name.name
29
- }> accepts either \`href\` or \`onClick\`, not both.`
30
- );
31
- }
32
- },
33
- };
34
- },
35
- };