@redhat-cloud-services/eslint-config-redhat-cloud-services 2.0.11 → 3.0.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.
package/index.js CHANGED
@@ -1,38 +1,54 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var globals = require('globals');
14
+ var defineConfig = require('eslint/config').defineConfig;
15
+ var reactPlugin = require('eslint-plugin-react');
2
16
  var rulesDirPlugin = require('eslint-plugin-rulesdir');
17
+ var eslintPluginPrettierRecommended = require('eslint-plugin-prettier/recommended');
18
+ var babelParser = require('@babel/eslint-parser');
3
19
  var path = require('path');
4
20
  rulesDirPlugin.RULES_DIR = path.resolve(__dirname, './lib/rules');
5
- module.exports = {
6
- parser: '@babel/eslint-parser',
7
- env: {
8
- browser: true,
9
- node: true,
10
- es6: true,
11
- jasmine: true,
12
- jest: true,
21
+ var patchedBrowserGlobals = __assign({}, globals.browser);
22
+ delete patchedBrowserGlobals['AudioWorkletGlobalScope '];
23
+ patchedBrowserGlobals['AudioWorkletGlobalScope'] = 'readonly';
24
+ module.exports = defineConfig(eslintPluginPrettierRecommended, reactPlugin.configs.flat.recommended, {
25
+ plugins: {
26
+ rulesdir: rulesDirPlugin,
13
27
  },
14
28
  settings: {
15
29
  react: {
16
30
  version: 'detect',
17
31
  },
18
32
  },
19
- plugins: ['prettier', 'rulesdir'],
20
- extends: ['eslint:recommended', 'prettier', 'plugin:prettier/recommended', 'plugin:react/recommended'],
21
33
  rules: {
22
34
  'no-unused-vars': ['error', { ignoreRestSiblings: true }],
23
35
  'prettier/prettier': ['error', { singleQuote: true }],
24
36
  'rulesdir/disallow-fec-relative-imports': 2,
25
37
  'rulesdir/deprecated-packages': 1,
26
38
  'rulesdir/no-chrome-api-call-from-window': 2,
27
- 'rulesdir/forbid-pf-relative-imports': 1,
28
39
  'rulesdir/disallow-pf-migrated-components': 1,
29
40
  },
30
- globals: {
31
- CRC_APP_NAME: 'readonly',
32
- },
33
- parserOptions: {
34
- ecmaVersion: 7,
35
- sourceType: 'module',
41
+ languageOptions: {
42
+ globals: __assign(__assign(__assign(__assign(__assign(__assign({}, patchedBrowserGlobals), globals.node), globals.jasmine), globals.jest), globals.es6), { CRC_APP_NAME: 'readonly' }),
43
+ parser: babelParser,
44
+ parserOptions: {
45
+ requireConfigFile: false,
46
+ ecmaVersion: 7,
47
+ sourceType: 'module',
48
+ babelOptions: {
49
+ presets: ['@babel/preset-react'],
50
+ },
51
+ },
36
52
  },
37
- };
53
+ });
38
54
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/eslint-config/index.js"],"names":[],"mappings":";AAAA,IAAM,cAAc,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACzD,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAElE,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE,sBAAsB;IAC9B,GAAG,EAAE;QACH,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;KACX;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,OAAO,EAAE,QAAQ;SAClB;KACF;IACD,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,OAAO,EAAE,CAAC,oBAAoB,EAAE,UAAU,EAAE,6BAA6B,EAAE,0BAA0B,CAAC;IACtG,KAAK,EAAE;QACL,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACzD,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACrD,wCAAwC,EAAE,CAAC;QAC3C,8BAA8B,EAAE,CAAC;QACjC,yCAAyC,EAAE,CAAC;QAC5C,qCAAqC,EAAE,CAAC;QACxC,0CAA0C,EAAE,CAAC;KAC9C;IACD,OAAO,EAAE;QACP,YAAY,EAAE,UAAU;KACzB;IACD,aAAa,EAAE;QACb,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/eslint-config/index.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAA,YAAY,GAAK,OAAO,CAAC,eAAe,CAAC,aAA7B,CAA8B;AAClD,IAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACnD,IAAM,cAAc,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACzD,IAAM,+BAA+B,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;AACtF,IAAM,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACpD,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAGlE,IAAM,qBAAqB,gBACtB,OAAO,CAAC,OAAO,CACnB,CAAC;AAGF,OAAO,qBAAqB,CAAC,0BAA0B,CAAC,CAAC;AACzD,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,UAAU,CAAC;AAE9D,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,+BAA+B,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;IACnG,OAAO,EAAE;QACP,QAAQ,EAAE,cAAc;KACzB;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,OAAO,EAAE,QAAQ;SAClB;KACF;IACD,KAAK,EAAE;QACL,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACzD,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACrD,wCAAwC,EAAE,CAAC;QAC3C,8BAA8B,EAAE,CAAC;QACjC,yCAAyC,EAAE,CAAC;QAC5C,0CAA0C,EAAE,CAAC;KAC9C;IACD,eAAe,EAAE;QACf,OAAO,4DACF,qBAAqB,GACrB,OAAO,CAAC,IAAI,GACZ,OAAO,CAAC,OAAO,GACf,OAAO,CAAC,IAAI,GACZ,OAAO,CAAC,GAAG,KACd,YAAY,EAAE,UAAU,GACzB;QACD,MAAM,EAAE,WAAW;QACnB,aAAa,EAAE;YACb,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE;gBACZ,OAAO,EAAE,CAAC,qBAAqB,CAAC;aACjC;SACF;KACF;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redhat-cloud-services/eslint-config-redhat-cloud-services",
3
- "version": "2.0.11",
3
+ "version": "3.0.0",
4
4
  "description": "Recommended eslint configuration used in cloud.redhat.com frontend apps.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -9,22 +9,24 @@
9
9
  ],
10
10
  "scripts": {},
11
11
  "dependencies": {
12
- "@babel/eslint-parser": "^7.19.1",
13
- "eslint-config-prettier": "^8.5.0",
14
- "eslint-plugin-prettier": "^3.4.1",
15
- "eslint-plugin-react": "^7.31.8",
16
- "eslint-plugin-rulesdir": "^0.2.1",
17
- "prettier": "^2.7.1"
12
+ "@babel/eslint-parser": "^7.27.0",
13
+ "@babel/preset-react": "^7.26.3",
14
+ "eslint-config-prettier": "^10.1.2",
15
+ "eslint-plugin-prettier": "^5.2.6",
16
+ "eslint-plugin-react": "^7.37.5",
17
+ "eslint-plugin-rulesdir": "^0.2.2",
18
+ "globals": "^16.0.0",
19
+ "prettier": "^3.5.3"
18
20
  },
19
21
  "peerDependencies": {
20
22
  "@babel/core": "^7.14.0",
21
- "eslint": "^8.9.0"
23
+ "eslint": "^9.24.0"
22
24
  },
23
25
  "license": "Apache",
24
26
  "publishConfig": {
25
27
  "access": "public"
26
28
  },
29
+ "types": "./index.d.ts",
27
30
  "main": "./index.js",
28
- "type": "commonjs",
29
- "types": "./index.d.ts"
31
+ "type": "commonjs"
30
32
  }
@@ -1,160 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var glob = require('glob');
14
- var path = require('path');
15
- var PFPackages = ['@patternfly/react-core', '@patternfly/react-icons', '@patternfly/tokens'];
16
- var PROPS_MATCH = /Props$/g;
17
- var VARIANT_MATCH = /Variants?$/g;
18
- var POSITION_MATCH = /Position$/g;
19
- var ICONS_NAME_FIX = {
20
- AnsibeTowerIcon: 'ansibeTower-icon',
21
- ChartSpikeIcon: 'chartSpike-icon',
22
- CloudServerIcon: 'cloudServer-icon',
23
- };
24
- var CORE_CACHE = {};
25
- var COMPONENTS_CACHE = {};
26
- function findCoreComponent(name) {
27
- var _a, _b, _c, _d;
28
- if (CORE_CACHE[name]) {
29
- return CORE_CACHE[name];
30
- }
31
- var source = (_a = glob
32
- .sync(path.resolve(process.cwd(), "node_modules/".concat(PFPackages[0], "/dist/esm/**/").concat(name, ".js")))
33
- .filter(function (path) { return !path.includes('deprecated'); })) === null || _a === void 0 ? void 0 : _a[0];
34
- if (!source && name.match(PROPS_MATCH)) {
35
- source = (_b = glob
36
- .sync(path.resolve(process.cwd(), "node_modules/".concat(PFPackages[0], "/dist/esm/**/").concat(name.replace(PROPS_MATCH, ''), ".js")))
37
- .filter(function (path) { return !path.includes('deprecated'); })) === null || _b === void 0 ? void 0 : _b[0];
38
- }
39
- if (!source && name.match(VARIANT_MATCH)) {
40
- source = (_c = glob
41
- .sync(path.resolve(process.cwd(), "node_modules/".concat(PFPackages[0], "/dist/esm/**/").concat(name.replace(VARIANT_MATCH, ''), ".js")))
42
- .filter(function (path) { return !path.includes('deprecated'); })) === null || _c === void 0 ? void 0 : _c[0];
43
- }
44
- if (!source && name.match(POSITION_MATCH)) {
45
- source = (_d = glob
46
- .sync(path.resolve(process.cwd(), "node_modules/".concat(PFPackages[0], "/dist/esm/**/").concat(name.replace(POSITION_MATCH, ''), ".js")))
47
- .filter(function (path) { return !path.includes('deprecated'); })) === null || _d === void 0 ? void 0 : _d[0];
48
- }
49
- if (!source) {
50
- return false;
51
- }
52
- var dynamicSource = source.split('node_modules/').pop().replace('/esm/', '/dynamic/').split('/');
53
- dynamicSource.pop();
54
- dynamicSource = dynamicSource.join('/');
55
- CORE_CACHE[name] = dynamicSource;
56
- return dynamicSource;
57
- }
58
- function camelToDash(str) {
59
- return str.replace(/([A-Z])/g, function (g) { return "-".concat(g[0].toLowerCase()); }).replace(/^-/, '');
60
- }
61
- function findIcon(name) {
62
- if (COMPONENTS_CACHE[name]) {
63
- return COMPONENTS_CACHE[name];
64
- }
65
- var nameSpecifier = ICONS_NAME_FIX[name] || camelToDash(name);
66
- return "@patternfly/react-icons/dist/dynamic/icons/".concat(nameSpecifier);
67
- }
68
- CORE_CACHE = __assign(__assign({}, CORE_CACHE), { getResizeObserver: findCoreComponent('resizeObserver'), useOUIAProps: findCoreComponent('ouia'), OUIAProps: findCoreComponent('ouia'), getDefaultOUIAId: findCoreComponent('ouia'), useOUIAId: findCoreComponent('ouia'), handleArrows: findCoreComponent('KeyboardHandler'), setTabIndex: findCoreComponent('KeyboardHandler'), IconComponentProps: findCoreComponent('Icon'), TreeViewDataItem: findCoreComponent('TreeView'), Popper: findCoreComponent('Popper/Popper') });
69
- module.exports = {
70
- meta: {
71
- type: 'suggestion',
72
- docs: {
73
- description: 'forbid relative imports from PF packages',
74
- category: 'Possible build errors',
75
- recommended: true,
76
- },
77
- fixable: 'code',
78
- messages: {
79
- avoidRelativeImport: 'Avoid using relative imports from {{ package }}. Use direct import path to {{ source }}. Module may be found at {{ hint }}.',
80
- avoidRelativeIconImport: 'Avoid using relative imports from {{ package }}. Use direct import path to {{ source }}. Module may be found at {{ hint }}.',
81
- avoidImportingStyles: 'Avoid importing styles from {{ package }}. Styles are injected with components automatically.',
82
- },
83
- },
84
- create: function (context) {
85
- return {
86
- ImportDeclaration: function (codePath) {
87
- var importString = codePath.source.value;
88
- var pfImport = importString === PFPackages[0];
89
- var iconsImport = importString === PFPackages[1];
90
- if (PFPackages.includes(importString) && importString.match(/(css|scss|sass)/gim)) {
91
- context.report({
92
- node: codePath,
93
- messageId: 'avoidImportingStyles',
94
- data: {
95
- package: importString,
96
- },
97
- fix: function (fixer) {
98
- return fixer.remove(codePath.parent);
99
- },
100
- });
101
- }
102
- if (pfImport && PFPackages.includes(importString)) {
103
- var fullImport = context.getSourceCode(codePath.parent).text;
104
- if (!fullImport.includes('from')) {
105
- return;
106
- }
107
- var variables = context.getDeclaredVariables(codePath);
108
- var varName = 'Unknown';
109
- if (variables.length > 0) {
110
- varName = variables[0].name;
111
- }
112
- var newText_1 = variables.map(function (data) {
113
- var importPartial = findCoreComponent(data.name);
114
- return "import { ".concat(data.name, " } from '").concat(importPartial, "'");
115
- });
116
- context.report({
117
- node: codePath,
118
- messageId: 'avoidRelativeImport',
119
- data: {
120
- package: importString,
121
- source: varName,
122
- hint: newText_1.join('\n'),
123
- },
124
- fix: function (fixer) {
125
- return fixer.replaceText(codePath, newText_1.join('\n'));
126
- },
127
- });
128
- }
129
- if (iconsImport) {
130
- var fullImport = context.getSourceCode(codePath.parent).text;
131
- if (!fullImport.includes('from')) {
132
- return;
133
- }
134
- var variables = context.getDeclaredVariables(codePath);
135
- var varName = 'Unknown';
136
- if (variables.length > 0) {
137
- varName = variables[0].name;
138
- }
139
- var newText_2 = variables.map(function (data) {
140
- var importPartial = findIcon(data.name);
141
- return "import ".concat(data.name, " from '").concat(importPartial, "'");
142
- });
143
- context.report({
144
- node: codePath,
145
- messageId: 'avoidRelativeIconImport',
146
- data: {
147
- package: importString,
148
- source: varName,
149
- hint: newText_2.join('\n'),
150
- },
151
- fix: function (fixer) {
152
- return fixer.replaceText(codePath, newText_2.join('\n'));
153
- },
154
- });
155
- }
156
- },
157
- };
158
- },
159
- };
160
- //# sourceMappingURL=forbid-pf-relative-imports.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forbid-pf-relative-imports.js","sourceRoot":"","sources":["../../../../../packages/eslint-config/lib/rules/forbid-pf-relative-imports.js"],"names":[],"mappings":"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"}