@anolilab/eslint-config 11.3.4 → 12.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/CHANGELOG.md +40 -0
- package/dist/config/plugins/jsx-a11y.js +2 -3
- package/dist/config/plugins/jsx-a11y.js.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/package.json +15 -17
- package/dist/config/plugins/lodash-fp.d.ts +0 -5
- package/dist/config/plugins/lodash-fp.js +0 -9
- package/dist/config/plugins/lodash-fp.js.map +0 -1
- package/dist/config/plugins/lodash.d.ts +0 -5
- package/dist/config/plugins/lodash.js +0 -9
- package/dist/config/plugins/lodash.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
## @anolilab/eslint-config [12.0.0](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@11.3.5...@anolilab/eslint-config@12.0.0) (2023-09-08)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### ⚠ BREAKING CHANGES
|
|
5
|
+
|
|
6
|
+
* removed lodash rules, extended why no to use lodash
|
|
7
|
+
Signed-off-by: prisis <d.bannert@anolilab.de>
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* removed support for lodash and lodash-fp ([3b6eb4b](https://github.com/anolilab/javascript-style-guide/commit/3b6eb4b4604d8f87bcfc01a94fa4fa27294a1a88))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Miscellaneous Chores
|
|
15
|
+
|
|
16
|
+
* **deps:** update dependency eslint-plugin-vitest to v0.3.1 ([#752](https://github.com/anolilab/javascript-style-guide/issues/752)) ([94043ae](https://github.com/anolilab/javascript-style-guide/commit/94043ae08a0f327823b7e8d13ec0ca229ccc39c8))
|
|
17
|
+
|
|
18
|
+
## @anolilab/eslint-config [11.3.5](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@11.3.4...@anolilab/eslint-config@11.3.5) (2023-08-30)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* updated dependencies to latest versions ([509bb76](https://github.com/anolilab/javascript-style-guide/commit/509bb763780a2fa85a275d8e91cc0525cc57e29f))
|
|
24
|
+
* updated URLs for ESLint rules ([e6edc33](https://github.com/anolilab/javascript-style-guide/commit/e6edc337e3a6c4f8d326a5a889cd008c6a4739af))
|
|
25
|
+
* updated URLs for ESLint rules and removed storybook jsx rules ([f8fbd16](https://github.com/anolilab/javascript-style-guide/commit/f8fbd16d2752e84fa490d350c4de80ff613833f5))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Miscellaneous Chores
|
|
29
|
+
|
|
30
|
+
* **deps:** update dependency typescript to v5.2.2 ([#745](https://github.com/anolilab/javascript-style-guide/issues/745)) ([90c1703](https://github.com/anolilab/javascript-style-guide/commit/90c1703dfc87ac2e16e181f3a42c099e47af609f))
|
|
31
|
+
* **deps:** update dependency vitest to ^0.34.3 ([#739](https://github.com/anolilab/javascript-style-guide/issues/739)) ([67dd404](https://github.com/anolilab/javascript-style-guide/commit/67dd404766bceb0103f637208fc646ed40aefb16))
|
|
32
|
+
* **deps:** update devdependencies ([#744](https://github.com/anolilab/javascript-style-guide/issues/744)) ([782b4fb](https://github.com/anolilab/javascript-style-guide/commit/782b4fbb8dc934f9db171c52878af44615bf0c29))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Dependencies
|
|
37
|
+
|
|
38
|
+
* **@anolilab/package-json-utils:** upgraded to 3.0.5
|
|
39
|
+
* **@anolilab/semantic-release-preset:** upgraded to 6.0.5
|
|
40
|
+
|
|
1
41
|
## @anolilab/eslint-config [11.3.4](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@11.3.3...@anolilab/eslint-config@11.3.4) (2023-08-29)
|
|
2
42
|
|
|
3
43
|
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
|
|
4
4
|
require('../../chunk-MFE6DF6Y.js');
|
|
5
|
-
var packageJsonUtils = require('@anolilab/package-json-utils');
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
var r=chunkWG6GTAIA_js.a("jsx_and_tsx",{parserOptions:{ecmaFeatures:{jsx:!0}},plugins:["jsx-a11y"],rules:{"jsx-a11y/accessible-emoji":"off","jsx-a11y/alt-text":["error",{area:[],elements:["img","object","area",'input[type="image"]'],img:[],'input[type="image"]':[],object:[]}],"jsx-a11y/anchor-has-content":["error",{components:[]}],"jsx-a11y/anchor-is-valid":["error",{aspects:["noHref","invalidHref","preferButton"],components:["A","LinkTo","Link"],specialLink:["to"]}],"jsx-a11y/aria-activedescendant-has-tabindex":"error","jsx-a11y/aria-props":"error","jsx-a11y/aria-proptypes":"error","jsx-a11y/aria-role":["error",{ignoreNonDOM:!1}],"jsx-a11y/aria-unsupported-elements":"error","jsx-a11y/autocomplete-valid":["off",{inputComponents:[]}],"jsx-a11y/click-events-have-key-events":"error","jsx-a11y/control-has-associated-label":["error",{controlComponents:[],depth:5,ignoreElements:["audio","canvas","embed","input","textarea","tr","video"],ignoreRoles:["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],labelAttributes:["label"]}],"jsx-a11y/heading-has-content":["error",{components:[""]}],"jsx-a11y/html-has-lang":"error","jsx-a11y/iframe-has-title":"error","jsx-a11y/img-redundant-alt":"error","jsx-a11y/interactive-supports-focus":"error","jsx-a11y/label-has-associated-control":["error",{assert:"both",controlComponents:[],depth:25,labelAttributes:[],labelComponents:[]}],"jsx-a11y/label-has-for":["off",{allowChildren:!1,components:[],required:{every:["nesting","id"]}}],"jsx-a11y/lang":"error","jsx-a11y/media-has-caption":["error",{audio:[],track:[],video:[]}],"jsx-a11y/mouse-events-have-key-events":"error","jsx-a11y/no-access-key":"error","jsx-a11y/no-autofocus":["error",{ignoreNonDOM:!0}],"jsx-a11y/no-distracting-elements":["error",{elements:["marquee","blink"]}],"jsx-a11y/no-interactive-element-to-noninteractive-role":["error",{tr:["none","presentation"]}],"jsx-a11y/no-noninteractive-element-interactions":["error",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/no-noninteractive-element-to-interactive-role":["error",{li:["menuitem","option","row","tab","treeitem"],ol:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],table:["grid"],td:["gridcell"],ul:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"]}],"jsx-a11y/no-noninteractive-tabindex":["error",{roles:["tabpanel"],tags:[]}],"jsx-a11y/no-onchange":"off","jsx-a11y/no-redundant-roles":"error","jsx-a11y/no-static-element-interactions":["error",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/role-has-required-aria-props":"error","jsx-a11y/role-supports-aria-props":"error","jsx-a11y/scope":"error","jsx-a11y/tabindex-no-positive":"error"}}),a=r;
|
|
8
7
|
|
|
9
|
-
module.exports =
|
|
8
|
+
module.exports = a;
|
|
10
9
|
//# sourceMappingURL=out.js.map
|
|
11
10
|
//# sourceMappingURL=jsx-a11y.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/plugins/jsx-a11y.ts"],"names":["hasDependency","hasDevDependency","config","createConfig","jsx_a11y_default"],"mappings":"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","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport { createConfig } from \"../../utils/create-config\";\n\nif (!global.hasAnolilabEsLintConfigJsyA11yStorybook && (hasDevDependency(\"storybook\") || hasDependency(\"storybook\"))) {\n global.hasAnolilabEsLintConfigJsyA11yStorybook = true;\n}\n\nconst config: Linter.Config = createConfig(\"jsx_and_tsx\", {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n\n plugins: [\"jsx-a11y\"],\n\n rules: {\n // Enforce that anchors have content\n // disabled; rule is deprecated\n \"jsx-a11y/accessible-emoji\": \"off\",\n\n // Require ARIA roles to be valid and non-abstract\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md\n \"jsx-a11y/alt-text\": [\n \"error\",\n {\n area: [],\n elements: [\"img\", \"object\", \"area\", 'input[type=\"image\"]'],\n img: [],\n 'input[type=\"image\"]': [],\n object: [],\n },\n ],\n\n // Enforce all aria-* props are valid.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-has-content.md\n \"jsx-a11y/anchor-has-content\": [\"error\", { components: [] }],\n\n // Enforce ARIA state and property values are valid.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/0745af376cdc8686d85a361ce36952b1fb1ccf6e/docs/rules/anchor-is-valid.md\n \"jsx-a11y/anchor-is-valid\": [\n \"error\",\n {\n aspects: [\n \"noHref\",\n \"invalidHref\",\n \"preferButton\",\n ...(global.hasAnolilabEsLintConfigJsyA11yStorybook ? [\"overrideParams\", \"kind\", \"story\", \"to\"] : []),\n ],\n components: [\"A\", \"LinkTo\", \"Link\"],\n specialLink: [\"to\"],\n },\n ],\n\n // Enforce that elements that do not support ARIA roles, states, and\n // properties do not have those attributes.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-activedescendant-has-tabindex.md\n \"jsx-a11y/aria-activedescendant-has-tabindex\": \"error\",\n\n // Enforce that all elements that require alternative text have meaningful information\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-props.md\n \"jsx-a11y/aria-props\": \"error\",\n\n // Prevent img alt text from containing redundant words like \"image\", \"picture\", or \"photo\"\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-proptypes.md\n \"jsx-a11y/aria-proptypes\": \"error\",\n\n // require that JSX labels use \"htmlFor\"\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-for.md\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md\n \"jsx-a11y/aria-role\": [\"error\", { ignoreNonDOM: false }],\n\n // Enforce that a label tag has a text label and an associated control.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-unsupported-elements.md\n \"jsx-a11y/aria-unsupported-elements\": \"error\",\n\n // Enforce that a control (an interactive element) has a text label.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/29c68596b15c4ff0a40daae6d4a2670e36e37d35/docs/rules/autocomplete-valid.md\n \"jsx-a11y/autocomplete-valid\": [\n \"off\",\n {\n inputComponents: [],\n },\n ],\n\n // require that mouseover/out come with focus/blur, for keyboard-only users\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/click-events-have-key-events.md\n \"jsx-a11y/click-events-have-key-events\": \"error\",\n\n // Prevent use of `accessKey`\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/control-has-associated-label.md\n \"jsx-a11y/control-has-associated-label\": [\n \"error\",\n {\n controlComponents: [],\n depth: 5,\n ignoreElements: [\"audio\", \"canvas\", \"embed\", \"input\", \"textarea\", \"tr\", \"video\"],\n ignoreRoles: [\"grid\", \"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"row\", \"tablist\", \"toolbar\", \"tree\", \"treegrid\"],\n labelAttributes: [\"label\"],\n },\n ],\n\n // require onBlur instead of onChange\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/heading-has-content.md\n \"jsx-a11y/heading-has-content\": [\"error\", { components: [\"\"] }],\n\n // Elements with an interactive role and interaction handlers must be focusable\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/html-has-lang.md\n \"jsx-a11y/html-has-lang\": \"error\",\n\n // Enforce that elements with ARIA roles must have all required attributes\n // for that role.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/iframe-has-title.md\n \"jsx-a11y/iframe-has-title\": \"error\",\n\n // Enforce that elements with explicit or implicit roles defined contain\n // only aria-* properties supported by that role.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/img-redundant-alt.md\n \"jsx-a11y/img-redundant-alt\": \"error\",\n\n // Enforce tabIndex value is not greater than zero.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/interactive-supports-focus.md\n \"jsx-a11y/interactive-supports-focus\": \"error\",\n\n // ensure <hX> tags have content and are not aria-hidden\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/b800f40a2a69ad48015ae9226fbe879f946757ed/docs/rules/label-has-associated-control.md\n \"jsx-a11y/label-has-associated-control\": [\n \"error\",\n {\n assert: \"both\",\n controlComponents: [],\n depth: 25,\n labelAttributes: [],\n labelComponents: [],\n },\n ],\n\n // require HTML elements to have a \"lang\" prop\n // deprecated: replaced by `label-has-associated-control` rule\n \"jsx-a11y/label-has-for\": [\n \"off\",\n {\n allowChildren: false,\n components: [],\n required: {\n every: [\"nesting\", \"id\"],\n },\n },\n ],\n\n // require HTML element's lang prop to be valid\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/lang.md\n \"jsx-a11y/lang\": \"error\",\n\n // prevent distracting elements, like <marquee> and <blink>\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/media-has-caption.md\n \"jsx-a11y/media-has-caption\": [\n \"error\",\n {\n audio: [],\n track: [],\n video: [],\n },\n ],\n\n // only allow <th> to have the \"scope\" attr\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/mouse-events-have-key-events.md\n \"jsx-a11y/mouse-events-have-key-events\": \"error\",\n\n // require onClick be accompanied by onKeyUp/onKeyDown/onKeyPress\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-access-key.md\n \"jsx-a11y/no-access-key\": \"error\",\n\n // Enforce that DOM elements without semantic behavior not have interaction handlers\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-autofocus.md\n \"jsx-a11y/no-autofocus\": [\"error\", { ignoreNonDOM: true }],\n\n // A non-interactive element does not support event handlers (mouse and key handlers)\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-distracting-elements.md\n \"jsx-a11y/no-distracting-elements\": [\n \"error\",\n {\n elements: [\"marquee\", \"blink\"],\n },\n ],\n\n // ensure emoji are accessible\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/accessible-emoji.md\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-interactive-element-to-noninteractive-role.md\n \"jsx-a11y/no-interactive-element-to-noninteractive-role\": [\n \"error\",\n {\n tr: [\"none\", \"presentation\"],\n },\n ],\n\n // elements with aria-activedescendant must be tabbable\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-interactions.md\n \"jsx-a11y/no-noninteractive-element-interactions\": [\n \"error\",\n {\n handlers: [\"onClick\", \"onMouseDown\", \"onMouseUp\", \"onKeyPress\", \"onKeyDown\", \"onKeyUp\"],\n },\n ],\n\n // ensure iframe elements have a unique title\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-to-interactive-role.md\n \"jsx-a11y/no-noninteractive-element-to-interactive-role\": [\n \"error\",\n {\n li: [\"menuitem\", \"option\", \"row\", \"tab\", \"treeitem\"],\n ol: [\"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"tablist\", \"tree\", \"treegrid\"],\n table: [\"grid\"],\n td: [\"gridcell\"],\n ul: [\"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"tablist\", \"tree\", \"treegrid\"],\n },\n ],\n\n // prohibit autoFocus prop\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-tabindex.md\n \"jsx-a11y/no-noninteractive-tabindex\": [\n \"error\",\n {\n roles: [\"tabpanel\"],\n tags: [],\n },\n ],\n\n // ensure HTML elements do not specify redundant ARIA roles\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md\n \"jsx-a11y/no-onchange\": \"off\",\n\n // media elements must have captions\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-redundant-roles.md\n \"jsx-a11y/no-redundant-roles\": \"error\",\n\n // WAI-ARIA roles should not be used to convert an interactive element to non-interactive\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md\n \"jsx-a11y/no-static-element-interactions\": [\n \"error\",\n {\n handlers: [\"onClick\", \"onMouseDown\", \"onMouseUp\", \"onKeyPress\", \"onKeyDown\", \"onKeyUp\"],\n },\n ],\n\n // WAI-ARIA roles should not be used to convert a non-interactive element to interactive\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-has-required-aria-props.md\n \"jsx-a11y/role-has-required-aria-props\": \"error\",\n\n // Tab key navigation should be limited to elements on the page that can be interacted with.\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-supports-aria-props.md\n \"jsx-a11y/role-supports-aria-props\": \"error\",\n\n // ensure <a> tags are valid\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/scope.md\n \"jsx-a11y/scope\": \"error\",\n\n // Ensure the autocomplete attribute is correct and suitable for the form field it is used with\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/tabindex-no-positive.md\n \"jsx-a11y/tabindex-no-positive\": \"error\",\n },\n});\n\nexport default config;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/config/plugins/jsx-a11y.ts"],"names":["config","createConfig","jsx_a11y_default"],"mappings":"4EAGA,IAAMA,EAAwBC,EAAa,cAAe,CACtD,cAAe,CACX,aAAc,CACV,IAAK,EACT,CACJ,EAEA,QAAS,CAAC,UAAU,EAEpB,MAAO,CAGH,4BAA6B,MAI7B,oBAAqB,CACjB,QACA,CACI,KAAM,CAAC,EACP,SAAU,CAAC,MAAO,SAAU,OAAQ,qBAAqB,EACzD,IAAK,CAAC,EACN,sBAAuB,CAAC,EACxB,OAAQ,CAAC,CACb,CACJ,EAIA,8BAA+B,CAAC,QAAS,CAAE,WAAY,CAAC,CAAE,CAAC,EAI3D,2BAA4B,CACxB,QACA,CACI,QAAS,CAAC,SAAU,cAAe,cAAc,EACjD,WAAY,CAAC,IAAK,SAAU,MAAM,EAClC,YAAa,CAAC,IAAI,CACtB,CACJ,EAKA,8CAA+C,QAI/C,sBAAuB,QAIvB,0BAA2B,QAK3B,qBAAsB,CAAC,QAAS,CAAE,aAAc,EAAM,CAAC,EAIvD,qCAAsC,QAItC,8BAA+B,CAC3B,MACA,CACI,gBAAiB,CAAC,CACtB,CACJ,EAIA,wCAAyC,QAIzC,wCAAyC,CACrC,QACA,CACI,kBAAmB,CAAC,EACpB,MAAO,EACP,eAAgB,CAAC,QAAS,SAAU,QAAS,QAAS,WAAY,KAAM,OAAO,EAC/E,YAAa,CAAC,OAAQ,UAAW,OAAQ,UAAW,aAAc,MAAO,UAAW,UAAW,OAAQ,UAAU,EACjH,gBAAiB,CAAC,OAAO,CAC7B,CACJ,EAIA,+BAAgC,CAAC,QAAS,CAAE,WAAY,CAAC,EAAE,CAAE,CAAC,EAI9D,yBAA0B,QAK1B,4BAA6B,QAK7B,6BAA8B,QAI9B,sCAAuC,QAIvC,wCAAyC,CACrC,QACA,CACI,OAAQ,OACR,kBAAmB,CAAC,EACpB,MAAO,GACP,gBAAiB,CAAC,EAClB,gBAAiB,CAAC,CACtB,CACJ,EAIA,yBAA0B,CACtB,MACA,CACI,cAAe,GACf,WAAY,CAAC,EACb,SAAU,CACN,MAAO,CAAC,UAAW,IAAI,CAC3B,CACJ,CACJ,EAIA,gBAAiB,QAIjB,6BAA8B,CAC1B,QACA,CACI,MAAO,CAAC,EACR,MAAO,CAAC,EACR,MAAO,CAAC,CACZ,CACJ,EAIA,wCAAyC,QAIzC,yBAA0B,QAI1B,wBAAyB,CAAC,QAAS,CAAE,aAAc,EAAK,CAAC,EAIzD,mCAAoC,CAChC,QACA,CACI,SAAU,CAAC,UAAW,OAAO,CACjC,CACJ,EAKA,yDAA0D,CACtD,QACA,CACI,GAAI,CAAC,OAAQ,cAAc,CAC/B,CACJ,EAIA,kDAAmD,CAC/C,QACA,CACI,SAAU,CAAC,UAAW,cAAe,YAAa,aAAc,YAAa,SAAS,CAC1F,CACJ,EAIA,yDAA0D,CACtD,QACA,CACI,GAAI,CAAC,WAAY,SAAU,MAAO,MAAO,UAAU,EACnD,GAAI,CAAC,UAAW,OAAQ,UAAW,aAAc,UAAW,OAAQ,UAAU,EAC9E,MAAO,CAAC,MAAM,EACd,GAAI,CAAC,UAAU,EACf,GAAI,CAAC,UAAW,OAAQ,UAAW,aAAc,UAAW,OAAQ,UAAU,CAClF,CACJ,EAIA,sCAAuC,CACnC,QACA,CACI,MAAO,CAAC,UAAU,EAClB,KAAM,CAAC,CACX,CACJ,EAIA,uBAAwB,MAIxB,8BAA+B,QAI/B,0CAA2C,CACvC,QACA,CACI,SAAU,CAAC,UAAW,cAAe,YAAa,aAAc,YAAa,SAAS,CAC1F,CACJ,EAIA,wCAAyC,QAIzC,oCAAqC,QAIrC,iBAAkB,QAIlB,gCAAiC,OACrC,CACJ,CAAC,EAEMC,EAAQF","sourcesContent":["import type { Linter } from \"eslint\";\nimport { createConfig } from \"../../utils/create-config\";\n\nconst config: Linter.Config = createConfig(\"jsx_and_tsx\", {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n\n plugins: [\"jsx-a11y\"],\n\n rules: {\n // Enforce that anchors have content\n // disabled; rule is deprecated\n \"jsx-a11y/accessible-emoji\": \"off\",\n\n // Require ARIA roles to be valid and non-abstract\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/alt-text.md\n \"jsx-a11y/alt-text\": [\n \"error\",\n {\n area: [],\n elements: [\"img\", \"object\", \"area\", 'input[type=\"image\"]'],\n img: [],\n 'input[type=\"image\"]': [],\n object: [],\n },\n ],\n\n // Enforce all aria-* props are valid.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/anchor-has-content.md\n \"jsx-a11y/anchor-has-content\": [\"error\", { components: [] }],\n\n // Enforce ARIA state and property values are valid.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/anchor-is-valid.md\n \"jsx-a11y/anchor-is-valid\": [\n \"error\",\n {\n aspects: [\"noHref\", \"invalidHref\", \"preferButton\"],\n components: [\"A\", \"LinkTo\", \"Link\"],\n specialLink: [\"to\"],\n },\n ],\n\n // Enforce that elements that do not support ARIA roles, states, and\n // properties do not have those attributes.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-activedescendant-has-tabindex.md\n \"jsx-a11y/aria-activedescendant-has-tabindex\": \"error\",\n\n // Enforce that all elements that require alternative text have meaningful information\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-props.md\n \"jsx-a11y/aria-props\": \"error\",\n\n // Prevent img alt text from containing redundant words like \"image\", \"picture\", or \"photo\"\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-proptypes.md\n \"jsx-a11y/aria-proptypes\": \"error\",\n\n // require that JSX labels use \"htmlFor\"\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-for.md\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-role.md\n \"jsx-a11y/aria-role\": [\"error\", { ignoreNonDOM: false }],\n\n // Enforce that a label tag has a text label and an associated control.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-unsupported-elements.md\n \"jsx-a11y/aria-unsupported-elements\": \"error\",\n\n // Enforce that a control (an interactive element) has a text label.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/29c68596b15c4ff0a40daae6d4a2670e36e37d35/docs/rules/autocomplete-valid.md\n \"jsx-a11y/autocomplete-valid\": [\n \"off\",\n {\n inputComponents: [],\n },\n ],\n\n // require that mouseover/out come with focus/blur, for keyboard-only users\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/click-events-have-key-events.md\n \"jsx-a11y/click-events-have-key-events\": \"error\",\n\n // Prevent use of `accessKey`\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md\n \"jsx-a11y/control-has-associated-label\": [\n \"error\",\n {\n controlComponents: [],\n depth: 5,\n ignoreElements: [\"audio\", \"canvas\", \"embed\", \"input\", \"textarea\", \"tr\", \"video\"],\n ignoreRoles: [\"grid\", \"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"row\", \"tablist\", \"toolbar\", \"tree\", \"treegrid\"],\n labelAttributes: [\"label\"],\n },\n ],\n\n // require onBlur instead of onChange\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/heading-has-content.md\n \"jsx-a11y/heading-has-content\": [\"error\", { components: [\"\"] }],\n\n // Elements with an interactive role and interaction handlers must be focusable\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/html-has-lang.md\n \"jsx-a11y/html-has-lang\": \"error\",\n\n // Enforce that elements with ARIA roles must have all required attributes\n // for that role.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/iframe-has-title.md\n \"jsx-a11y/iframe-has-title\": \"error\",\n\n // Enforce that elements with explicit or implicit roles defined contain\n // only aria-* properties supported by that role.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/img-redundant-alt.md\n \"jsx-a11y/img-redundant-alt\": \"error\",\n\n // Enforce tabIndex value is not greater than zero.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/interactive-supports-focus.md\n \"jsx-a11y/interactive-supports-focus\": \"error\",\n\n // ensure <hX> tags have content and are not aria-hidden\n // https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/b800f40a2a69ad48015ae9226fbe879f946757ed/docs/rules/label-has-associated-control.md\n \"jsx-a11y/label-has-associated-control\": [\n \"error\",\n {\n assert: \"both\",\n controlComponents: [],\n depth: 25,\n labelAttributes: [],\n labelComponents: [],\n },\n ],\n\n // require HTML elements to have a \"lang\" prop\n // deprecated: replaced by `label-has-associated-control` rule\n \"jsx-a11y/label-has-for\": [\n \"off\",\n {\n allowChildren: false,\n components: [],\n required: {\n every: [\"nesting\", \"id\"],\n },\n },\n ],\n\n // require HTML element's lang prop to be valid\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/lang.md\n \"jsx-a11y/lang\": \"error\",\n\n // prevent distracting elements, like <marquee> and <blink>\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/media-has-caption.md\n \"jsx-a11y/media-has-caption\": [\n \"error\",\n {\n audio: [],\n track: [],\n video: [],\n },\n ],\n\n // only allow <th> to have the \"scope\" attr\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/mouse-events-have-key-events.md\n \"jsx-a11y/mouse-events-have-key-events\": \"error\",\n\n // require onClick be accompanied by onKeyUp/onKeyDown/onKeyPress\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-access-key.md\n \"jsx-a11y/no-access-key\": \"error\",\n\n // Enforce that DOM elements without semantic behavior not have interaction handlers\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-autofocus.md\n \"jsx-a11y/no-autofocus\": [\"error\", { ignoreNonDOM: true }],\n\n // A non-interactive element does not support event handlers (mouse and key handlers)\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-distracting-elements.md\n \"jsx-a11y/no-distracting-elements\": [\n \"error\",\n {\n elements: [\"marquee\", \"blink\"],\n },\n ],\n\n // ensure emoji are accessible\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/accessible-emoji.md\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-interactive-element-to-noninteractive-role.md\n \"jsx-a11y/no-interactive-element-to-noninteractive-role\": [\n \"error\",\n {\n tr: [\"none\", \"presentation\"],\n },\n ],\n\n // elements with aria-activedescendant must be tabbable\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-noninteractive-element-interactions.md\n \"jsx-a11y/no-noninteractive-element-interactions\": [\n \"error\",\n {\n handlers: [\"onClick\", \"onMouseDown\", \"onMouseUp\", \"onKeyPress\", \"onKeyDown\", \"onKeyUp\"],\n },\n ],\n\n // ensure iframe elements have a unique title\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-noninteractive-element-to-interactive-role.md\n \"jsx-a11y/no-noninteractive-element-to-interactive-role\": [\n \"error\",\n {\n li: [\"menuitem\", \"option\", \"row\", \"tab\", \"treeitem\"],\n ol: [\"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"tablist\", \"tree\", \"treegrid\"],\n table: [\"grid\"],\n td: [\"gridcell\"],\n ul: [\"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"tablist\", \"tree\", \"treegrid\"],\n },\n ],\n\n // prohibit autoFocus prop\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-noninteractive-tabindex.md\n \"jsx-a11y/no-noninteractive-tabindex\": [\n \"error\",\n {\n roles: [\"tabpanel\"],\n tags: [],\n },\n ],\n\n // ensure HTML elements do not specify redundant ARIA roles\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-onchange.md\n \"jsx-a11y/no-onchange\": \"off\",\n\n // media elements must have captions\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-redundant-roles.md\n \"jsx-a11y/no-redundant-roles\": \"error\",\n\n // WAI-ARIA roles should not be used to convert an interactive element to non-interactive\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-static-element-interactions.md\n \"jsx-a11y/no-static-element-interactions\": [\n \"error\",\n {\n handlers: [\"onClick\", \"onMouseDown\", \"onMouseUp\", \"onKeyPress\", \"onKeyDown\", \"onKeyUp\"],\n },\n ],\n\n // WAI-ARIA roles should not be used to convert a non-interactive element to interactive\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/role-has-required-aria-props.md\n \"jsx-a11y/role-has-required-aria-props\": \"error\",\n\n // Tab key navigation should be limited to elements on the page that can be interacted with.\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/role-supports-aria-props.md\n \"jsx-a11y/role-supports-aria-props\": \"error\",\n\n // ensure <a> tags are valid\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/scope.md\n \"jsx-a11y/scope\": \"error\",\n\n // Ensure the autocomplete attribute is correct and suitable for the form field it is used with\n // https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/tabindex-no-positive.md\n \"jsx-a11y/tabindex-no-positive\": \"error\",\n },\n});\n\nexport default config;\n"]}
|
package/dist/index.js
CHANGED
|
@@ -5,22 +5,22 @@ var chunkOCCLNRZC_js = require('./chunk-OCCLNRZC.js');
|
|
|
5
5
|
require('./chunk-MFE6DF6Y.js');
|
|
6
6
|
require('@rushstack/eslint-patch/modern-module-resolution');
|
|
7
7
|
var packageJsonUtils = require('@anolilab/package-json-utils');
|
|
8
|
-
var
|
|
8
|
+
var w = require('globals');
|
|
9
9
|
var path = require('path');
|
|
10
10
|
var k = require('semver');
|
|
11
11
|
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var w__default = /*#__PURE__*/_interopDefault(w);
|
|
15
15
|
var k__default = /*#__PURE__*/_interopDefault(k);
|
|
16
16
|
|
|
17
|
-
var R=["best-practices","errors","style","es6","variables"],
|
|
17
|
+
var R=["best-practices","errors","style","es6","variables"],r=["compat","eslint-comments","import","promise","simple-import-sort","no-extend-native","node","no-secrets","sonarjs","security","regexp","jsonc","markdown","toml","yml","html","antfu","unicorn","es","perfectionist"],E=[{configName:"array-func",dependencies:["eslint-plugin-array-func"]},{configName:"jsdoc",dependencies:["eslint-plugin-jsdoc"]},{configName:"tsdoc",dependencies:["eslint-plugin-tsdoc","typescript"]},{configName:"you-dont-need-lodash-underscore",dependencies:["eslint-plugin-you-dont-need-lodash-underscore"],oneOfDependency:["lodash","underscore","lodash-es","@types/lodash","lodash.chunk","lodash.compact","lodash.concat","lodash.difference","lodash.differenceby","lodash.differencewith","lodash.drop","lodash.dropright","lodash.droprightwhile","lodash.dropwhile","lodash.fill","lodash.findindex","lodash.findlastindex","lodash.flatten","lodash.flattendeep","lodash.flattendepth","lodash.frompairs","lodash.head","lodash.indexof","lodash.initial","lodash.intersection","lodash.intersectionby","lodash.intersectionwith","lodash.join","lodash.last","lodash.lastindexof","lodash.nth","lodash.pull","lodash.pullall","lodash.pullallby","lodash.pullallwith","lodash.pullat","lodash.remove","lodash.reverse","lodash.slice","lodash.sortedindex","lodash.sortedindexby","lodash.sortedindexof","lodash.sortedlastindex","lodash.sortedlastindexby","lodash.sortedlastindexof","lodash.sorteduniq","lodash.sorteduniqby","lodash.tail","lodash.take","lodash.takeright","lodash.takerightwhile","lodash.takewhile","lodash.union","lodash.unionby","lodash.unionwith","lodash.uniq","lodash.uniqby","lodash.uniqwith","lodash.unzip","lodash.unzipwith","lodash.without","lodash.xor","lodash.xorby","lodash.xorwith","lodash.zip","lodash.zipobject","lodash.zipobjectdeep","lodash.zipwith","lodash.countby","lodash.every","lodash.filter","lodash.find","lodash.findlast","lodash.flatmap","lodash.flatmapdeep","lodash.flatmapdepth","lodash.foreach","lodash.foreachright","lodash.groupby","lodash.includes","lodash.invokemap","lodash.keyby","lodash.map","lodash.orderby","lodash.partition","lodash.reduce","lodash.reduceright","lodash.reject","lodash.sample","lodash.samplesize","lodash.shuffle","lodash.size","lodash.some","lodash.sortby","lodash.now","lodash.after","lodash.ary","lodash.before","lodash.bind","lodash.bindkey","lodash.curry","lodash.curryright","lodash.debounce","lodash.defer","lodash.delay","lodash.flip","lodash.memoize","lodash.negate","lodash.once","lodash.overargs","lodash.partial","lodash.partialright","lodash.rearg","lodash.rest","lodash.spread","lodash.throttle","lodash.unary","lodash.wrap","lodash.castarray","lodash.clone","lodash.clonedeep","lodash.clonedeepwith","lodash.clonewith","lodash.conformsto","lodash.eq","lodash.gt","lodash.gte","lodash.isarguments","lodash.isarray","lodash.isarraybuffer","lodash.isarraylike","lodash.isarraylikeobject","lodash.isboolean","lodash.isbuffer","lodash.isdate","lodash.iselement","lodash.isempty","lodash.isequal","lodash.isequalwith","lodash.iserror","lodash.isfinite","lodash.isfunction","lodash.isinteger","lodash.islength","lodash.ismap","lodash.ismatch","lodash.ismatchwith","lodash.isnan","lodash.isnative","lodash.isnil","lodash.isnull","lodash.isnumber","lodash.isobject","lodash.isobjectlike","lodash.isplainobject","lodash.isregexp","lodash.issafeinteger","lodash.isset","lodash.isstring","lodash.issymbol","lodash.istypedarray","lodash.isundefined","lodash.isweakmap","lodash.isweakset","lodash.lt","lodash.lte","lodash.toarray","lodash.tofinite","lodash.tointeger","lodash.tolength","lodash.tonumber","lodash.toplainobject","lodash.tosafeinteger","lodash.tostring","lodash.add","lodash.ceil","lodash.divide","lodash.floor","lodash.max","lodash.maxby","lodash.mean","lodash.meanby","lodash.min","lodash.minby","lodash.multiply","lodash.round","lodash.subtract","lodash.sum","lodash.sumby","lodash.clamp","lodash.inrange","lodash.random","lodash.assign","lodash.assignin","lodash.assigninwith","lodash.assignwith","lodash.at","lodash.create","lodash.defaults","lodash.defaultsdeep","lodash.findkey","lodash.findlastkey","lodash.forin","lodash.forinright","lodash.forown","lodash.forownright","lodash.functions","lodash.functionsin","lodash.get","lodash.has","lodash.hasin","lodash.invert","lodash.invertby","lodash.invoke","lodash.keys","lodash.keysin","lodash.mapkeys","lodash.mapvalues","lodash.merge","lodash.mergewith","lodash.omit","lodash.omitby","lodash.pick","lodash.pickby","lodash.result","lodash.set","lodash.setwith","lodash.topairs","lodash.topairsin","lodash.transform","lodash.unset","lodash.update","lodash.updatewith","lodash.values","lodash.valuesin","lodash.chain","lodash.tap","lodash.thru","lodash.camelcase","lodash.capitalize","lodash.deburr","lodash.endswith","lodash.escape","lodash.escaperegexp","lodash.kebabcase","lodash.lowercase","lodash.lowerfirst","lodash.pad","lodash.padend","lodash.padstart","lodash.parseint","lodash.repeat","lodash.replace","lodash.snakecase","lodash.split","lodash.startcase","lodash.startswith","lodash.template","lodash.tolower","lodash.toupper","lodash.trim","lodash.trimend","lodash.trimstart","lodash.truncate","lodash.unescape","lodash.uppercase","lodash.upperfirst","lodash.words","lodash.attempt","lodash.bindall","lodash.cond","lodash.conforms","lodash.constant","lodash.defaultto","lodash.flow","lodash.flowright","lodash.identity","lodash.iteratee","lodash.matches","lodash.matchesproperty","lodash.method","lodash.methodof","lodash.mixin","lodash.noconflict","lodash.noop","lodash.ntharg","lodash.over","lodash.overevery","lodash.oversome","lodash.property","lodash.propertyof","lodash.range","lodash.rangeright","lodash.runincontext","lodash.stubarray","lodash.stubfalse","lodash.stubobject","lodash.stubstring","lodash.stubtrue","lodash.times","lodash.topath","lodash.uniqueid"]},{configName:"mdx",dependencies:["eslint-plugin-mdx"],oneOfDependency:["nextra","docz","@docusaurus/core","gatsby-plugin-mdx"],resolve:["@mdx-js/mdx","remark-mdx","@mdx-js/loader","@mdx-js/rollup","@mdx-js/react"]},{configName:"no-unsanitized",dependencies:["eslint-plugin-no-unsanitized"]},{configName:"react",dependencies:["react","react-dom","eslint-plugin-react"]},{configName:"react-redux",dependencies:["eslint-plugin-react-redux"],oneOfDependency:["@reduxjs/toolkit","redux"]},{configName:"jsx-a11y",dependencies:["react","react-dom","eslint-plugin-jsx-a11y"]},{configName:"react-hooks",dependencies:["react","react-dom","eslint-plugin-react-hooks"]},{configName:"react-usememo",dependencies:["react","react-dom","@arthurgeron/eslint-plugin-react-usememo"]},{configName:"you-dont-need-momentjs",dependencies:["moment","eslint-plugin-you-dont-need-momentjs"]},{configName:"you-dont-need-momentjs",dependencies:["moment-timezone","eslint-plugin-you-dont-need-momentjs"]},{configName:"tailwindcss",dependencies:["eslint-plugin-tailwindcss"]},{configName:"cypress",dependencies:["cypress","eslint-plugin-cypress"]},{configName:"jest",dependencies:["jest","eslint-plugin-jest"]},{configName:"jest-dom",dependencies:["jest","@testing-library/jest-dom","eslint-plugin-jest-dom"]},{configName:"jest-async",dependencies:["jest","eslint-plugin-jest-async"]},{configName:"jest-formatting",dependencies:["jest","eslint-plugin-jest-formatting"]},{configName:"tailwindcss",dependencies:["tailwindcss"]},{configName:"testing-library-dom",dependencies:["@testing-library/dom","eslint-plugin-testing-library"]},{configName:"testing-library-react",dependencies:["react","@testing-library/react","eslint-plugin-testing-library"]},{configName:"typescript",dependencies:["typescript"],files:["tsconfig.json","tsconfig.eslint.json"]},{configName:"etc",dependencies:["typescript","eslint-plugin-etc"]},{configName:"vitest",dependencies:["vitest","eslint-plugin-vitest"]},{configName:"vitest",dependencies:["vitest","eslint-plugin-vitest","eslint-plugin-vitest-globals"]},{configName:"zod",dependencies:["zod","eslint-plugin-zod"]},{configName:"ava",dependencies:["ava","eslint-plugin-ava"]},{configName:"editorconfig",dependencies:["eslint-plugin-editorconfig"],files:[".editorconfig"]},{configName:"storybook",dependencies:["storybook","eslint-plugin-storybook"]},{configName:"playwright",dependencies:["playwright","eslint-plugin-playwright"]},{configName:"tanstack-query",dependencies:["@tanstack/react-query","@tanstack/eslint-plugin-query"]}],p=[...r],n={};p.length===r.length&&E.forEach(o=>{let{configName:e,dependencies:a}=o;if(chunkOCCLNRZC_js.a.plugin?.[e]!==!1){let d=[];if(a.forEach(s=>{(packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s))&&d.push(s);}),n[e]={},d.length===0){if(o.oneOfDependency!==void 0){let s=!1;o.oneOfDependency.forEach(i=>{!s&&(packageJsonUtils.hasDependency(i)||packageJsonUtils.hasDevDependency(i))&&(s=!0,n[e][i]=!0);});}o.resolve!==void 0&&o.resolve.forEach(s=>{packageJsonUtils.resolvePackage(s)!==void 0&&(n[e][s]=!0);}),o.files!==void 0&&o.files.forEach(s=>{packageJsonUtils.hasFile(s)&&(n[e][s]=!0);});}d.length===a.length?(delete n[e],p.push(e)):a.forEach(s=>{n[e][s]=packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s);});}});var u=R,m=p,b=n;var O={"n/prefer-global/text-decoder":{"11.0.0":"off"},"n/prefer-global/text-encoder":{"11.0.0":"off"},"n/prefer-global/url":{"10.0.0":"off"},"n/prefer-global/url-search-params":{"10.0.0":"off"},"n/prefer-promises/dns":{"11.14.0":"off"},"n/prefer-promises/fs":{"11.14.0":"off"},"no-useless-catch":{"10.0.0":"off"},"prefer-destructuring":{"6.0.0":"off"},"prefer-named-capture-group":{"10.0.0":"off"},"prefer-object-spread":{"8.3.0":"off"},"prefer-rest-params":{"6.0.0":"off"},"promise/prefer-await-to-then":{"7.6.0":"off"},"unicorn/no-new-buffer":{"5.10.0":"off"},"unicorn/prefer-flat-map":{"11.0.0":"off"},"unicorn/prefer-spread":{"5.0.0":"off"}},y=O;if(!global.hasAnolilabEsLintConfigLoaded){process.env.DEBUG&&(chunkSEYYGHPU_js.b(`
|
|
18
18
|
@anolilab/eslint-config loaded the following plugins:
|
|
19
|
-
`),chunkSEYYGHPU_js.b(" @rushstack/eslint-plugin-security"),
|
|
20
|
-
Your package.json container dependencies for the "${e}" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`),Object.entries(
|
|
19
|
+
`),chunkSEYYGHPU_js.b(" @rushstack/eslint-plugin-security"),r.map(e=>e==="import"?"i":e==="node"?"n":e).forEach(e=>chunkSEYYGHPU_js.a(e)));let o=!1;Object.entries(b).forEach(([e,a])=>{Object.values(a).some(Boolean)&&(o=!0,chunkSEYYGHPU_js.b(`
|
|
20
|
+
Your package.json container dependencies for the "${e}" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`),Object.entries(a).forEach(([s,i])=>{i||chunkSEYYGHPU_js.b(` ${s}`);}));}),o&&(chunkSEYYGHPU_js.b(`
|
|
21
21
|
To disable this message, add the following to your package.json:`),chunkSEYYGHPU_js.b(` "anolilab": { "eslint-config": { plugin: { "plugin-name": false } } }
|
|
22
|
-
`)),chunkSEYYGHPU_js.b('To disable all logging, add the following to your eslint command call "NO_LOGS=true eslint ..."'),global.hasAnolilabEsLintConfigLoaded=!0;}var v={},
|
|
23
|
-
Found prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier`));var
|
|
22
|
+
`)),chunkSEYYGHPU_js.b('To disable all logging, add the following to your eslint command call "NO_LOGS=true eslint ..."'),global.hasAnolilabEsLintConfigLoaded=!0;}var v={},f;packageJsonUtils.pkg?.engines?.node&&(f=packageJsonUtils.pkg.engines.node);Object.entries(y).forEach(([o,e])=>{Object.keys(e).sort(k__default.default.rcompare).forEach(a=>{f&&k__default.default.intersects(f,`<${a}`)&&(v[o]=e[a]);});});!global.hasAnolilabEsLintConfigPrettier&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.hasAnolilabEsLintConfigPrettier=!0,chunkOCCLNRZC_js.a.info_on_disabling_prettier_conflict_rule!==!1&&chunkSEYYGHPU_js.b(`
|
|
23
|
+
Found prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier`));var L={extends:[...u.map(o=>path.join(__dirname,`./config/${o}.js`)),...m.map(o=>path.join(__dirname,`./config/plugins/${o}.js`))],globals:{...w__default.default.browser,...w__default.default.nodeBuiltin},ignorePatterns:["!.*",".git/","node_modules/","bower_components/","jspm_packages/",".npm/","lib-cov/","coverage/",".nyc_output/",".cache/","build/","dist/","tmp/","**/*.min.*","*.d.ts","pnpm-lock.yaml"],overrides:[{files:["**/migrations/*.{js,ts}"],rules:{"filenames/match-regex":"off"}},{files:["**/*.spec.{js,ts,tsx}","**/*.test.{js,ts,tsx}","**/__mocks__/*.{js,ts,tsx}","**/__tests__/*.{js,ts,tsx}","**/test/*.{js,ts,tsx}"],rules:{"no-magic-numbers":"off","sonarjs/no-duplicate-string":"off"}},{files:packageJsonUtils.packageIsTypeModule?["*.js","*.mjs"]:["*.mjs"],parser:"@babel/eslint-parser",parserOptions:{babelOptions:{plugins:["@babel/plugin-syntax-import-assertions"]},requireConfigFile:!1}}],parser:"",rules:{...v}},H=L;
|
|
24
24
|
|
|
25
25
|
module.exports = H;
|
|
26
26
|
//# sourceMappingURL=out.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/engine-node-overwrite.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","join","semver","hasFile","resolvePackage","baseConfig","internalPluginConfig","pluginConfig","loadedPlugins","possiblePlugins","plugin","configName","dependencies","eslint_config_default","foundDependencies","dependency","foundOneOfDependency","rdependency","file","rules","pluginRules","possiblePluginRules","engineRules","engine_node_overwrite_default","consoleLog","name","consolePlugin","hasLogged","installed","configRules","nodeVersion","rule","ruleConfig","minVersion","config","src_default"],"mappings":"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","sourcesContent":["/**\n * rushstack eslint-patch is used to include plugins as dev\n * dependencies instead of imposing them as peer dependencies\n *\n * {@link https://www.npmjs.com/package/@rushstack/eslint-patch}\n * {@link https://stackoverflow.com/a/74478635/1392749}\n * {@link https://github.com/eslint/eslint/issues/3458}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-1/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-2/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-3/}\n * {@link https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new}\n */\nimport \"@rushstack/eslint-patch/modern-module-resolution\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { internalPluginConfig, pluginRules, possiblePluginRules, rules } from \"./config\";\nimport engineRules from \"./engine-node-overwrite\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\nimport { consoleLog, consolePlugin } from \"./utils/loggers\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigLoaded) {\n if (process.env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/eslint-config loaded the following plugins:\\n\");\n\n consoleLog(\" @rushstack/eslint-plugin-security\");\n internalPluginConfig\n .map((name: string) => {\n if (name === \"import\") {\n return \"i\";\n }\n\n if (name === \"node\") {\n return \"n\";\n }\n\n return name;\n })\n .forEach((plugin) => consolePlugin(plugin));\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePluginRules).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"eslint-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabEsLintConfigLoaded = true;\n}\n\nconst configRules: Linter.RulesRecord = {};\nlet nodeVersion: string | undefined;\n\nif (pkg?.engines?.[\"node\"]) {\n nodeVersion = pkg.engines[\"node\"];\n}\n\nObject.entries(engineRules).forEach(([rule, ruleConfig]) => {\n Object.keys(ruleConfig)\n .sort(semver.rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && semver.intersects(nodeVersion, `<${minVersion}`)) {\n // eslint-disable-next-line security/detect-object-injection\n configRules[rule] = ruleConfig[minVersion as keyof typeof ruleConfig] as Linter.RuleEntry;\n }\n });\n});\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigPrettier && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.hasAnolilabEsLintConfigPrettier = true;\n\n if (anolilabEslintConfig[\"info_on_disabling_prettier_conflict_rule\"] !== false) {\n consoleLog(\"\\nFound prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier\");\n }\n}\n\nconst config: Linter.Config = {\n // After an .eslintrc.js file is loaded, ESLint will normally continue visiting all parent folders\n // to look for other .eslintrc.js files, and also consult a personal file ~/.eslintrc.js. If any files\n // are found, their options will be merged. This is difficult for humans to understand, and it will cause\n // nondeterministic behavior if files are loaded from outside the Git working folder.\n //\n // Setting root=true causes ESLint to stop looking for other config files after the first .eslintrc.js\n extends: [\n ...rules.map((plugin) => join(__dirname, `./config/${plugin}.js`)),\n\n ...pluginRules.map((plugin) => join(__dirname, `./config/plugins/${plugin}.js`)),\n ],\n globals: {\n ...globals.browser,\n ...globals.nodeBuiltin,\n },\n ignorePatterns: [\n \"!.*\",\n\n \".git/\",\n \"node_modules/\",\n \"bower_components/\",\n \"jspm_packages/\",\n \".npm/\",\n\n \"lib-cov/\",\n \"coverage/\",\n \".nyc_output/\",\n \".cache/\",\n\n \"build/\",\n \"dist/\",\n \"tmp/\",\n\n \"**/*.min.*\",\n\n // Manually authored .d.ts files are generally used to describe external APIs that are not expected\n // to follow our coding conventions. Linting those files tends to produce a lot of spurious suppressions,\n // so we simply ignore them.\n \"*.d.ts\",\n\n \"pnpm-lock.yaml\",\n ],\n overrides: [\n {\n files: [\"**/migrations/*.{js,ts}\"],\n rules: {\n \"filenames/match-regex\": \"off\",\n },\n },\n {\n files: [\n // Test files\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n\n // Facebook convention\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n\n // Microsoft convention\n \"**/test/*.{js,ts,tsx}\",\n ],\n rules: {\n \"no-magic-numbers\": \"off\",\n \"sonarjs/no-duplicate-string\": \"off\",\n },\n },\n // Fixes https://github.com/eslint/eslint/discussions/15305\n {\n files: packageIsTypeModule ? [\"*.js\", \"*.mjs\"] : [\"*.mjs\"],\n parser: \"@babel/eslint-parser\",\n parserOptions: {\n babelOptions: {\n plugins: [\"@babel/plugin-syntax-import-assertions\"],\n },\n requireConfigFile: false,\n },\n },\n ],\n // Disable the parser by default\n parser: \"\",\n // is loaded.\n rules: {\n ...configRules,\n },\n};\n\nexport default config;\n","import { hasDependency, hasDevDependency, hasFile, resolvePackage } from \"@anolilab/package-json-utils\";\n\nimport type { PackageRules } from \"./types\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst baseConfig = [\"best-practices\", \"errors\", \"style\", \"es6\", \"variables\"];\n\n// eslint-disable-next-line import/exports-last\nexport const internalPluginConfig = [\n \"compat\",\n \"eslint-comments\",\n \"import\",\n \"promise\",\n \"simple-import-sort\",\n \"no-extend-native\",\n \"node\",\n // Security Rules\n \"no-secrets\",\n \"sonarjs\",\n \"security\",\n \"regexp\",\n // file rules\n \"jsonc\",\n \"markdown\",\n \"toml\",\n \"yml\",\n \"html\",\n\n // custom rules\n \"antfu\",\n \"unicorn\",\n \"es\",\n \"perfectionist\",\n];\n\nconst pluginConfig: PackageRules = [\n {\n configName: \"array-func\",\n dependencies: [\"eslint-plugin-array-func\"],\n },\n {\n configName: \"jsdoc\",\n dependencies: [\"eslint-plugin-jsdoc\"],\n },\n {\n configName: \"tsdoc\",\n dependencies: [\"eslint-plugin-tsdoc\", \"typescript\"],\n },\n {\n configName: \"lodash\",\n dependencies: [\"lodash\", \"eslint-plugin-lodash\"],\n },\n {\n configName: \"lodash-fp\",\n dependencies: [\"lodash\", \"eslint-plugin-lodash-fp\"],\n },\n {\n configName: \"you-dont-need-lodash-underscore\",\n dependencies: [\"lodash\", \"eslint-plugin-you-dont-need-lodash-underscore\"],\n },\n {\n configName: \"mdx\",\n dependencies: [\"eslint-plugin-mdx\"],\n oneOfDependency: [\"nextra\", \"docz\", \"@docusaurus/core\", \"gatsby-plugin-mdx\"],\n resolve: [\"@mdx-js/mdx\", \"remark-mdx\", \"@mdx-js/loader\", \"@mdx-js/rollup\", \"@mdx-js/react\"],\n },\n {\n configName: \"no-unsanitized\",\n dependencies: [\"eslint-plugin-no-unsanitized\"],\n },\n {\n configName: \"react\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react\"],\n },\n {\n configName: \"react-redux\",\n dependencies: [\"eslint-plugin-react-redux\"],\n oneOfDependency: [\"@reduxjs/toolkit\", \"redux\"],\n },\n {\n configName: \"jsx-a11y\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-jsx-a11y\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react-hooks\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"react\", \"react-dom\", \"@arthurgeron/eslint-plugin-react-usememo\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment-timezone\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"eslint-plugin-tailwindcss\"],\n },\n {\n configName: \"cypress\",\n dependencies: [\"cypress\", \"eslint-plugin-cypress\"],\n },\n {\n configName: \"jest\",\n dependencies: [\"jest\", \"eslint-plugin-jest\"],\n },\n {\n configName: \"jest-dom\",\n dependencies: [\"jest\", \"@testing-library/jest-dom\", \"eslint-plugin-jest-dom\"],\n },\n {\n configName: \"jest-async\",\n dependencies: [\"jest\", \"eslint-plugin-jest-async\"],\n },\n {\n configName: \"jest-formatting\",\n dependencies: [\"jest\", \"eslint-plugin-jest-formatting\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"tailwindcss\"],\n },\n {\n configName: \"testing-library-dom\",\n dependencies: [\"@testing-library/dom\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"testing-library-react\",\n dependencies: [\"react\", \"@testing-library/react\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"typescript\",\n dependencies: [\"typescript\"],\n files: [\"tsconfig.json\", \"tsconfig.eslint.json\"],\n },\n {\n configName: \"etc\",\n dependencies: [\"typescript\", \"eslint-plugin-etc\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\", \"eslint-plugin-vitest-globals\"],\n },\n {\n configName: \"zod\",\n dependencies: [\"zod\", \"eslint-plugin-zod\"],\n },\n {\n configName: \"ava\",\n dependencies: [\"ava\", \"eslint-plugin-ava\"],\n },\n {\n configName: \"editorconfig\",\n dependencies: [\"eslint-plugin-editorconfig\"],\n files: [\".editorconfig\"],\n },\n {\n configName: \"storybook\",\n dependencies: [\"storybook\", \"eslint-plugin-storybook\"],\n },\n {\n configName: \"playwright\",\n dependencies: [\"playwright\", \"eslint-plugin-playwright\"],\n },\n {\n configName: \"tanstack-query\",\n dependencies: [\"@tanstack/react-query\", \"@tanstack/eslint-plugin-query\"],\n },\n];\n\nconst loadedPlugins: string[] = [...internalPluginConfig];\nconst possiblePlugins: Record<string, Record<string, boolean>> = {};\n\nif (loadedPlugins.length === internalPluginConfig.length) {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n pluginConfig.forEach((plugin) => {\n const { configName, dependencies } = plugin;\n\n // eslint-disable-next-line security/detect-object-injection\n if ((anolilabEslintConfig as unknown as Record<string, Record<string, false | undefined>>)[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n // eslint-disable-next-line security/detect-object-injection\n possiblePlugins[configName] = {};\n\n if (foundDependencies.length === 0) {\n if (plugin.oneOfDependency !== undefined) {\n let foundOneOfDependency = false;\n\n plugin.oneOfDependency.forEach((dependency) => {\n if (!foundOneOfDependency && (hasDependency(dependency) || hasDevDependency(dependency))) {\n foundOneOfDependency = true;\n\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = true;\n }\n });\n }\n\n if (plugin.resolve !== undefined) {\n plugin.resolve.forEach((rdependency) => {\n if (resolvePackage(rdependency) !== undefined) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[rdependency] = true;\n }\n });\n }\n\n if (plugin.files !== undefined) {\n plugin.files.forEach((file) => {\n if (hasFile(file)) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[file] = true;\n }\n });\n }\n }\n\n if (foundDependencies.length === dependencies.length) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-dynamic-delete\n delete possiblePlugins[configName];\n\n loadedPlugins.push(configName);\n } else {\n dependencies.forEach((dependency) => {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n });\n}\n\nexport const rules = baseConfig;\nexport const pluginRules = loadedPlugins;\n\nexport const possiblePluginRules = possiblePlugins;\n","/**\nDefine the rules config that are overwritten only for specific version of Node.js based on `engines.node` in package.json or the `nodeVersion` option.\n\nThe keys are rule names and the values are an Object with a valid semver (`4.0.0` is valid `4` is not) as keys and the rule configuration as values.\n\nEach entry define the rule config and the maximum Node.js version for which to set it.\nThe entry with the lowest version that is compliant with the `engines.node`/`nodeVersion` range will be used.\n\n@type {Object}\n\n@example\n```\n{\n 'plugin/rule': {\n '6.0.0': ['error', {prop: 'node-6-conf'}],\n '8.0.0': ['error', {prop: 'node-8-conf'}]\n }\n}\n```\n\nWith `engines.node` set to `>=4` the rule `plugin/rule` will not be used.\nWith `engines.node` set to `>=6` the rule `plugin/rule` will be used with the config `{prop: 'node-6-conf'}`.\nWith `engines.node` set to `>=8` the rule `plugin/rule` will be used with the config `{prop: 'node-8-conf'}`.\n*/\nconst engineRules = {\n \"n/prefer-global/text-decoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/text-encoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/url\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-global/url-search-params\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-promises/dns\": {\n \"11.14.0\": \"off\",\n },\n \"n/prefer-promises/fs\": {\n \"11.14.0\": \"off\",\n },\n \"no-useless-catch\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-destructuring\": {\n \"6.0.0\": \"off\",\n },\n \"prefer-named-capture-group\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-object-spread\": {\n \"8.3.0\": \"off\",\n },\n \"prefer-rest-params\": {\n \"6.0.0\": \"off\",\n },\n \"promise/prefer-await-to-then\": {\n \"7.6.0\": \"off\",\n },\n \"unicorn/no-new-buffer\": {\n \"5.10.0\": \"off\",\n },\n \"unicorn/prefer-flat-map\": {\n \"11.0.0\": \"off\",\n },\n \"unicorn/prefer-spread\": {\n \"5.0.0\": \"off\",\n },\n};\n\nexport default engineRules;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/engine-node-overwrite.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","join","semver","hasFile","resolvePackage","baseConfig","internalPluginConfig","pluginConfig","loadedPlugins","possiblePlugins","plugin","configName","dependencies","eslint_config_default","foundDependencies","dependency","foundOneOfDependency","rdependency","file","rules","pluginRules","possiblePluginRules","engineRules","engine_node_overwrite_default","consoleLog","name","consolePlugin","hasLogged","installed","configRules","nodeVersion","rule","ruleConfig","minVersion","config","src_default"],"mappings":"mHAYA,MAAO,mDAEP,OAAS,iBAAAA,EAAe,oBAAAC,EAAkB,uBAAAC,EAAqB,OAAAC,MAAW,+BAE1E,OAAOC,MAAa,UACpB,OAAS,QAAAC,MAAY,OACrB,OAAOC,MAAY,SClBnB,OAAS,iBAAAN,EAAe,oBAAAC,EAAkB,WAAAM,EAAS,kBAAAC,MAAsB,+BAKzE,IAAMC,EAAa,CAAC,iBAAkB,SAAU,QAAS,MAAO,WAAW,EAG9DC,EAAuB,CAChC,SACA,kBACA,SACA,UACA,qBACA,mBACA,OAEA,aACA,UACA,WACA,SAEA,QACA,WACA,OACA,MACA,OAGA,QACA,UACA,KACA,eACJ,EAEMC,EAA6B,CAC/B,CACI,WAAY,aACZ,aAAc,CAAC,0BAA0B,CAC7C,EACA,CACI,WAAY,QACZ,aAAc,CAAC,qBAAqB,CACxC,EACA,CACI,WAAY,QACZ,aAAc,CAAC,sBAAuB,YAAY,CACtD,EACA,CACI,WAAY,kCACZ,aAAc,CAAC,+CAA+C,EAC9D,gBAAiB,CACb,SACA,aACA,YACA,gBAEA,eACA,iBACA,gBACA,oBACA,sBACA,wBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,uBACA,iBACA,qBACA,sBACA,mBACA,cACA,iBACA,iBACA,sBACA,wBACA,0BACA,cACA,cACA,qBACA,aACA,cACA,iBACA,mBACA,qBACA,gBACA,gBACA,iBACA,eACA,qBACA,uBACA,uBACA,yBACA,2BACA,2BACA,oBACA,sBACA,cACA,cACA,mBACA,wBACA,mBACA,eACA,iBACA,mBACA,cACA,gBACA,kBACA,eACA,mBACA,iBACA,aACA,eACA,iBACA,aACA,mBACA,uBACA,iBACA,iBACA,eACA,gBACA,cACA,kBACA,iBACA,qBACA,sBACA,iBACA,sBACA,iBACA,kBACA,mBACA,eACA,aACA,iBACA,mBACA,gBACA,qBACA,gBACA,gBACA,oBACA,iBACA,cACA,cACA,gBACA,aACA,eACA,aACA,gBACA,cACA,iBACA,eACA,oBACA,kBACA,eACA,eACA,cACA,iBACA,gBACA,cACA,kBACA,iBACA,sBACA,eACA,cACA,gBACA,kBACA,eACA,cACA,mBACA,eACA,mBACA,uBACA,mBACA,oBACA,YACA,YACA,aACA,qBACA,iBACA,uBACA,qBACA,2BACA,mBACA,kBACA,gBACA,mBACA,iBACA,iBACA,qBACA,iBACA,kBACA,oBACA,mBACA,kBACA,eACA,iBACA,qBACA,eACA,kBACA,eACA,gBACA,kBACA,kBACA,sBACA,uBACA,kBACA,uBACA,eACA,kBACA,kBACA,sBACA,qBACA,mBACA,mBACA,YACA,aACA,iBACA,kBACA,mBACA,kBACA,kBACA,uBACA,uBACA,kBACA,aACA,cACA,gBACA,eACA,aACA,eACA,cACA,gBACA,aACA,eACA,kBACA,eACA,kBACA,aACA,eACA,eACA,iBACA,gBACA,gBACA,kBACA,sBACA,oBACA,YACA,gBACA,kBACA,sBACA,iBACA,qBACA,eACA,oBACA,gBACA,qBACA,mBACA,qBACA,aACA,aACA,eACA,gBACA,kBACA,gBACA,cACA,gBACA,iBACA,mBACA,eACA,mBACA,cACA,gBACA,cACA,gBACA,gBACA,aACA,iBACA,iBACA,mBACA,mBACA,eACA,gBACA,oBACA,gBACA,kBACA,eACA,aACA,cACA,mBACA,oBACA,gBACA,kBACA,gBACA,sBACA,mBACA,mBACA,oBACA,aACA,gBACA,kBACA,kBACA,gBACA,iBACA,mBACA,eACA,mBACA,oBACA,kBACA,iBACA,iBACA,cACA,iBACA,mBACA,kBACA,kBACA,mBACA,oBACA,eACA,iBACA,iBACA,cACA,kBACA,kBACA,mBACA,cACA,mBACA,kBACA,kBACA,iBACA,yBACA,gBACA,kBACA,eACA,oBACA,cACA,gBACA,cACA,mBACA,kBACA,kBACA,oBACA,eACA,oBACA,sBACA,mBACA,mBACA,oBACA,oBACA,kBACA,eACA,gBACA,iBACJ,CACJ,EACA,CACI,WAAY,MACZ,aAAc,CAAC,mBAAmB,EAClC,gBAAiB,CAAC,SAAU,OAAQ,mBAAoB,mBAAmB,EAC3E,QAAS,CAAC,cAAe,aAAc,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","sourcesContent":["/**\n * rushstack eslint-patch is used to include plugins as dev\n * dependencies instead of imposing them as peer dependencies\n *\n * {@link https://www.npmjs.com/package/@rushstack/eslint-patch}\n * {@link https://stackoverflow.com/a/74478635/1392749}\n * {@link https://github.com/eslint/eslint/issues/3458}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-1/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-2/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-3/}\n * {@link https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new}\n */\nimport \"@rushstack/eslint-patch/modern-module-resolution\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { internalPluginConfig, pluginRules, possiblePluginRules, rules } from \"./config\";\nimport engineRules from \"./engine-node-overwrite\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\nimport { consoleLog, consolePlugin } from \"./utils/loggers\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigLoaded) {\n if (process.env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/eslint-config loaded the following plugins:\\n\");\n\n consoleLog(\" @rushstack/eslint-plugin-security\");\n internalPluginConfig\n .map((name: string) => {\n if (name === \"import\") {\n return \"i\";\n }\n\n if (name === \"node\") {\n return \"n\";\n }\n\n return name;\n })\n .forEach((plugin) => consolePlugin(plugin));\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePluginRules).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"eslint-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabEsLintConfigLoaded = true;\n}\n\nconst configRules: Linter.RulesRecord = {};\nlet nodeVersion: string | undefined;\n\nif (pkg?.engines?.[\"node\"]) {\n nodeVersion = pkg.engines[\"node\"];\n}\n\nObject.entries(engineRules).forEach(([rule, ruleConfig]) => {\n Object.keys(ruleConfig)\n .sort(semver.rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && semver.intersects(nodeVersion, `<${minVersion}`)) {\n // eslint-disable-next-line security/detect-object-injection\n configRules[rule] = ruleConfig[minVersion as keyof typeof ruleConfig] as Linter.RuleEntry;\n }\n });\n});\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigPrettier && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.hasAnolilabEsLintConfigPrettier = true;\n\n if (anolilabEslintConfig[\"info_on_disabling_prettier_conflict_rule\"] !== false) {\n consoleLog(\"\\nFound prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier\");\n }\n}\n\nconst config: Linter.Config = {\n // After an .eslintrc.js file is loaded, ESLint will normally continue visiting all parent folders\n // to look for other .eslintrc.js files, and also consult a personal file ~/.eslintrc.js. If any files\n // are found, their options will be merged. This is difficult for humans to understand, and it will cause\n // nondeterministic behavior if files are loaded from outside the Git working folder.\n //\n // Setting root=true causes ESLint to stop looking for other config files after the first .eslintrc.js\n extends: [\n ...rules.map((plugin) => join(__dirname, `./config/${plugin}.js`)),\n\n ...pluginRules.map((plugin) => join(__dirname, `./config/plugins/${plugin}.js`)),\n ],\n globals: {\n ...globals.browser,\n ...globals.nodeBuiltin,\n },\n ignorePatterns: [\n \"!.*\",\n\n \".git/\",\n \"node_modules/\",\n \"bower_components/\",\n \"jspm_packages/\",\n \".npm/\",\n\n \"lib-cov/\",\n \"coverage/\",\n \".nyc_output/\",\n \".cache/\",\n\n \"build/\",\n \"dist/\",\n \"tmp/\",\n\n \"**/*.min.*\",\n\n // Manually authored .d.ts files are generally used to describe external APIs that are not expected\n // to follow our coding conventions. Linting those files tends to produce a lot of spurious suppressions,\n // so we simply ignore them.\n \"*.d.ts\",\n\n \"pnpm-lock.yaml\",\n ],\n overrides: [\n {\n files: [\"**/migrations/*.{js,ts}\"],\n rules: {\n \"filenames/match-regex\": \"off\",\n },\n },\n {\n files: [\n // Test files\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n\n // Facebook convention\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n\n // Microsoft convention\n \"**/test/*.{js,ts,tsx}\",\n ],\n rules: {\n \"no-magic-numbers\": \"off\",\n \"sonarjs/no-duplicate-string\": \"off\",\n },\n },\n // Fixes https://github.com/eslint/eslint/discussions/15305\n {\n files: packageIsTypeModule ? [\"*.js\", \"*.mjs\"] : [\"*.mjs\"],\n parser: \"@babel/eslint-parser\",\n parserOptions: {\n babelOptions: {\n plugins: [\"@babel/plugin-syntax-import-assertions\"],\n },\n requireConfigFile: false,\n },\n },\n ],\n // Disable the parser by default\n parser: \"\",\n // is loaded.\n rules: {\n ...configRules,\n },\n};\n\nexport default config;\n","import { hasDependency, hasDevDependency, hasFile, resolvePackage } from \"@anolilab/package-json-utils\";\n\nimport type { PackageRules } from \"./types\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst baseConfig = [\"best-practices\", \"errors\", \"style\", \"es6\", \"variables\"];\n\n// eslint-disable-next-line import/exports-last\nexport const internalPluginConfig = [\n \"compat\",\n \"eslint-comments\",\n \"import\",\n \"promise\",\n \"simple-import-sort\",\n \"no-extend-native\",\n \"node\",\n // Security Rules\n \"no-secrets\",\n \"sonarjs\",\n \"security\",\n \"regexp\",\n // file rules\n \"jsonc\",\n \"markdown\",\n \"toml\",\n \"yml\",\n \"html\",\n\n // custom rules\n \"antfu\",\n \"unicorn\",\n \"es\",\n \"perfectionist\",\n];\n\nconst pluginConfig: PackageRules = [\n {\n configName: \"array-func\",\n dependencies: [\"eslint-plugin-array-func\"],\n },\n {\n configName: \"jsdoc\",\n dependencies: [\"eslint-plugin-jsdoc\"],\n },\n {\n configName: \"tsdoc\",\n dependencies: [\"eslint-plugin-tsdoc\", \"typescript\"],\n },\n {\n configName: \"you-dont-need-lodash-underscore\",\n dependencies: [\"eslint-plugin-you-dont-need-lodash-underscore\"],\n oneOfDependency: [\n \"lodash\",\n \"underscore\",\n \"lodash-es\",\n \"@types/lodash\",\n\n \"lodash.chunk\",\n \"lodash.compact\",\n \"lodash.concat\",\n \"lodash.difference\",\n \"lodash.differenceby\",\n \"lodash.differencewith\",\n \"lodash.drop\",\n \"lodash.dropright\",\n \"lodash.droprightwhile\",\n \"lodash.dropwhile\",\n \"lodash.fill\",\n \"lodash.findindex\",\n \"lodash.findlastindex\",\n \"lodash.flatten\",\n \"lodash.flattendeep\",\n \"lodash.flattendepth\",\n \"lodash.frompairs\",\n \"lodash.head\",\n \"lodash.indexof\",\n \"lodash.initial\",\n \"lodash.intersection\",\n \"lodash.intersectionby\",\n \"lodash.intersectionwith\",\n \"lodash.join\",\n \"lodash.last\",\n \"lodash.lastindexof\",\n \"lodash.nth\",\n \"lodash.pull\",\n \"lodash.pullall\",\n \"lodash.pullallby\",\n \"lodash.pullallwith\",\n \"lodash.pullat\",\n \"lodash.remove\",\n \"lodash.reverse\",\n \"lodash.slice\",\n \"lodash.sortedindex\",\n \"lodash.sortedindexby\",\n \"lodash.sortedindexof\",\n \"lodash.sortedlastindex\",\n \"lodash.sortedlastindexby\",\n \"lodash.sortedlastindexof\",\n \"lodash.sorteduniq\",\n \"lodash.sorteduniqby\",\n \"lodash.tail\",\n \"lodash.take\",\n \"lodash.takeright\",\n \"lodash.takerightwhile\",\n \"lodash.takewhile\",\n \"lodash.union\",\n \"lodash.unionby\",\n \"lodash.unionwith\",\n \"lodash.uniq\",\n \"lodash.uniqby\",\n \"lodash.uniqwith\",\n \"lodash.unzip\",\n \"lodash.unzipwith\",\n \"lodash.without\",\n \"lodash.xor\",\n \"lodash.xorby\",\n \"lodash.xorwith\",\n \"lodash.zip\",\n \"lodash.zipobject\",\n \"lodash.zipobjectdeep\",\n \"lodash.zipwith\",\n \"lodash.countby\",\n \"lodash.every\",\n \"lodash.filter\",\n \"lodash.find\",\n \"lodash.findlast\",\n \"lodash.flatmap\",\n \"lodash.flatmapdeep\",\n \"lodash.flatmapdepth\",\n \"lodash.foreach\",\n \"lodash.foreachright\",\n \"lodash.groupby\",\n \"lodash.includes\",\n \"lodash.invokemap\",\n \"lodash.keyby\",\n \"lodash.map\",\n \"lodash.orderby\",\n \"lodash.partition\",\n \"lodash.reduce\",\n \"lodash.reduceright\",\n \"lodash.reject\",\n \"lodash.sample\",\n \"lodash.samplesize\",\n \"lodash.shuffle\",\n \"lodash.size\",\n \"lodash.some\",\n \"lodash.sortby\",\n \"lodash.now\",\n \"lodash.after\",\n \"lodash.ary\",\n \"lodash.before\",\n \"lodash.bind\",\n \"lodash.bindkey\",\n \"lodash.curry\",\n \"lodash.curryright\",\n \"lodash.debounce\",\n \"lodash.defer\",\n \"lodash.delay\",\n \"lodash.flip\",\n \"lodash.memoize\",\n \"lodash.negate\",\n \"lodash.once\",\n \"lodash.overargs\",\n \"lodash.partial\",\n \"lodash.partialright\",\n \"lodash.rearg\",\n \"lodash.rest\",\n \"lodash.spread\",\n \"lodash.throttle\",\n \"lodash.unary\",\n \"lodash.wrap\",\n \"lodash.castarray\",\n \"lodash.clone\",\n \"lodash.clonedeep\",\n \"lodash.clonedeepwith\",\n \"lodash.clonewith\",\n \"lodash.conformsto\",\n \"lodash.eq\",\n \"lodash.gt\",\n \"lodash.gte\",\n \"lodash.isarguments\",\n \"lodash.isarray\",\n \"lodash.isarraybuffer\",\n \"lodash.isarraylike\",\n \"lodash.isarraylikeobject\",\n \"lodash.isboolean\",\n \"lodash.isbuffer\",\n \"lodash.isdate\",\n \"lodash.iselement\",\n \"lodash.isempty\",\n \"lodash.isequal\",\n \"lodash.isequalwith\",\n \"lodash.iserror\",\n \"lodash.isfinite\",\n \"lodash.isfunction\",\n \"lodash.isinteger\",\n \"lodash.islength\",\n \"lodash.ismap\",\n \"lodash.ismatch\",\n \"lodash.ismatchwith\",\n \"lodash.isnan\",\n \"lodash.isnative\",\n \"lodash.isnil\",\n \"lodash.isnull\",\n \"lodash.isnumber\",\n \"lodash.isobject\",\n \"lodash.isobjectlike\",\n \"lodash.isplainobject\",\n \"lodash.isregexp\",\n \"lodash.issafeinteger\",\n \"lodash.isset\",\n \"lodash.isstring\",\n \"lodash.issymbol\",\n \"lodash.istypedarray\",\n \"lodash.isundefined\",\n \"lodash.isweakmap\",\n \"lodash.isweakset\",\n \"lodash.lt\",\n \"lodash.lte\",\n \"lodash.toarray\",\n \"lodash.tofinite\",\n \"lodash.tointeger\",\n \"lodash.tolength\",\n \"lodash.tonumber\",\n \"lodash.toplainobject\",\n \"lodash.tosafeinteger\",\n \"lodash.tostring\",\n \"lodash.add\",\n \"lodash.ceil\",\n \"lodash.divide\",\n \"lodash.floor\",\n \"lodash.max\",\n \"lodash.maxby\",\n \"lodash.mean\",\n \"lodash.meanby\",\n \"lodash.min\",\n \"lodash.minby\",\n \"lodash.multiply\",\n \"lodash.round\",\n \"lodash.subtract\",\n \"lodash.sum\",\n \"lodash.sumby\",\n \"lodash.clamp\",\n \"lodash.inrange\",\n \"lodash.random\",\n \"lodash.assign\",\n \"lodash.assignin\",\n \"lodash.assigninwith\",\n \"lodash.assignwith\",\n \"lodash.at\",\n \"lodash.create\",\n \"lodash.defaults\",\n \"lodash.defaultsdeep\",\n \"lodash.findkey\",\n \"lodash.findlastkey\",\n \"lodash.forin\",\n \"lodash.forinright\",\n \"lodash.forown\",\n \"lodash.forownright\",\n \"lodash.functions\",\n \"lodash.functionsin\",\n \"lodash.get\",\n \"lodash.has\",\n \"lodash.hasin\",\n \"lodash.invert\",\n \"lodash.invertby\",\n \"lodash.invoke\",\n \"lodash.keys\",\n \"lodash.keysin\",\n \"lodash.mapkeys\",\n \"lodash.mapvalues\",\n \"lodash.merge\",\n \"lodash.mergewith\",\n \"lodash.omit\",\n \"lodash.omitby\",\n \"lodash.pick\",\n \"lodash.pickby\",\n \"lodash.result\",\n \"lodash.set\",\n \"lodash.setwith\",\n \"lodash.topairs\",\n \"lodash.topairsin\",\n \"lodash.transform\",\n \"lodash.unset\",\n \"lodash.update\",\n \"lodash.updatewith\",\n \"lodash.values\",\n \"lodash.valuesin\",\n \"lodash.chain\",\n \"lodash.tap\",\n \"lodash.thru\",\n \"lodash.camelcase\",\n \"lodash.capitalize\",\n \"lodash.deburr\",\n \"lodash.endswith\",\n \"lodash.escape\",\n \"lodash.escaperegexp\",\n \"lodash.kebabcase\",\n \"lodash.lowercase\",\n \"lodash.lowerfirst\",\n \"lodash.pad\",\n \"lodash.padend\",\n \"lodash.padstart\",\n \"lodash.parseint\",\n \"lodash.repeat\",\n \"lodash.replace\",\n \"lodash.snakecase\",\n \"lodash.split\",\n \"lodash.startcase\",\n \"lodash.startswith\",\n \"lodash.template\",\n \"lodash.tolower\",\n \"lodash.toupper\",\n \"lodash.trim\",\n \"lodash.trimend\",\n \"lodash.trimstart\",\n \"lodash.truncate\",\n \"lodash.unescape\",\n \"lodash.uppercase\",\n \"lodash.upperfirst\",\n \"lodash.words\",\n \"lodash.attempt\",\n \"lodash.bindall\",\n \"lodash.cond\",\n \"lodash.conforms\",\n \"lodash.constant\",\n \"lodash.defaultto\",\n \"lodash.flow\",\n \"lodash.flowright\",\n \"lodash.identity\",\n \"lodash.iteratee\",\n \"lodash.matches\",\n \"lodash.matchesproperty\",\n \"lodash.method\",\n \"lodash.methodof\",\n \"lodash.mixin\",\n \"lodash.noconflict\",\n \"lodash.noop\",\n \"lodash.ntharg\",\n \"lodash.over\",\n \"lodash.overevery\",\n \"lodash.oversome\",\n \"lodash.property\",\n \"lodash.propertyof\",\n \"lodash.range\",\n \"lodash.rangeright\",\n \"lodash.runincontext\",\n \"lodash.stubarray\",\n \"lodash.stubfalse\",\n \"lodash.stubobject\",\n \"lodash.stubstring\",\n \"lodash.stubtrue\",\n \"lodash.times\",\n \"lodash.topath\",\n \"lodash.uniqueid\",\n ],\n },\n {\n configName: \"mdx\",\n dependencies: [\"eslint-plugin-mdx\"],\n oneOfDependency: [\"nextra\", \"docz\", \"@docusaurus/core\", \"gatsby-plugin-mdx\"],\n resolve: [\"@mdx-js/mdx\", \"remark-mdx\", \"@mdx-js/loader\", \"@mdx-js/rollup\", \"@mdx-js/react\"],\n },\n {\n configName: \"no-unsanitized\",\n dependencies: [\"eslint-plugin-no-unsanitized\"],\n },\n {\n configName: \"react\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react\"],\n },\n {\n configName: \"react-redux\",\n dependencies: [\"eslint-plugin-react-redux\"],\n oneOfDependency: [\"@reduxjs/toolkit\", \"redux\"],\n },\n {\n configName: \"jsx-a11y\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-jsx-a11y\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react-hooks\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"react\", \"react-dom\", \"@arthurgeron/eslint-plugin-react-usememo\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment-timezone\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"eslint-plugin-tailwindcss\"],\n },\n {\n configName: \"cypress\",\n dependencies: [\"cypress\", \"eslint-plugin-cypress\"],\n },\n {\n configName: \"jest\",\n dependencies: [\"jest\", \"eslint-plugin-jest\"],\n },\n {\n configName: \"jest-dom\",\n dependencies: [\"jest\", \"@testing-library/jest-dom\", \"eslint-plugin-jest-dom\"],\n },\n {\n configName: \"jest-async\",\n dependencies: [\"jest\", \"eslint-plugin-jest-async\"],\n },\n {\n configName: \"jest-formatting\",\n dependencies: [\"jest\", \"eslint-plugin-jest-formatting\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"tailwindcss\"],\n },\n {\n configName: \"testing-library-dom\",\n dependencies: [\"@testing-library/dom\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"testing-library-react\",\n dependencies: [\"react\", \"@testing-library/react\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"typescript\",\n dependencies: [\"typescript\"],\n files: [\"tsconfig.json\", \"tsconfig.eslint.json\"],\n },\n {\n configName: \"etc\",\n dependencies: [\"typescript\", \"eslint-plugin-etc\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\", \"eslint-plugin-vitest-globals\"],\n },\n {\n configName: \"zod\",\n dependencies: [\"zod\", \"eslint-plugin-zod\"],\n },\n {\n configName: \"ava\",\n dependencies: [\"ava\", \"eslint-plugin-ava\"],\n },\n {\n configName: \"editorconfig\",\n dependencies: [\"eslint-plugin-editorconfig\"],\n files: [\".editorconfig\"],\n },\n {\n configName: \"storybook\",\n dependencies: [\"storybook\", \"eslint-plugin-storybook\"],\n },\n {\n configName: \"playwright\",\n dependencies: [\"playwright\", \"eslint-plugin-playwright\"],\n },\n {\n configName: \"tanstack-query\",\n dependencies: [\"@tanstack/react-query\", \"@tanstack/eslint-plugin-query\"],\n },\n];\n\nconst loadedPlugins: string[] = [...internalPluginConfig];\nconst possiblePlugins: Record<string, Record<string, boolean>> = {};\n\nif (loadedPlugins.length === internalPluginConfig.length) {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n pluginConfig.forEach((plugin) => {\n const { configName, dependencies } = plugin;\n\n // eslint-disable-next-line security/detect-object-injection\n if ((anolilabEslintConfig as unknown as Record<string, Record<string, false | undefined>>)[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n // eslint-disable-next-line security/detect-object-injection\n possiblePlugins[configName] = {};\n\n if (foundDependencies.length === 0) {\n if (plugin.oneOfDependency !== undefined) {\n let foundOneOfDependency = false;\n\n plugin.oneOfDependency.forEach((dependency) => {\n if (!foundOneOfDependency && (hasDependency(dependency) || hasDevDependency(dependency))) {\n foundOneOfDependency = true;\n\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = true;\n }\n });\n }\n\n if (plugin.resolve !== undefined) {\n plugin.resolve.forEach((rdependency) => {\n if (resolvePackage(rdependency) !== undefined) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[rdependency] = true;\n }\n });\n }\n\n if (plugin.files !== undefined) {\n plugin.files.forEach((file) => {\n if (hasFile(file)) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[file] = true;\n }\n });\n }\n }\n\n if (foundDependencies.length === dependencies.length) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-dynamic-delete\n delete possiblePlugins[configName];\n\n loadedPlugins.push(configName);\n } else {\n dependencies.forEach((dependency) => {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n });\n}\n\nexport const rules = baseConfig;\nexport const pluginRules = loadedPlugins;\n\nexport const possiblePluginRules = possiblePlugins;\n","/**\nDefine the rules config that are overwritten only for specific version of Node.js based on `engines.node` in package.json or the `nodeVersion` option.\n\nThe keys are rule names and the values are an Object with a valid semver (`4.0.0` is valid `4` is not) as keys and the rule configuration as values.\n\nEach entry define the rule config and the maximum Node.js version for which to set it.\nThe entry with the lowest version that is compliant with the `engines.node`/`nodeVersion` range will be used.\n\n@type {Object}\n\n@example\n```\n{\n 'plugin/rule': {\n '6.0.0': ['error', {prop: 'node-6-conf'}],\n '8.0.0': ['error', {prop: 'node-8-conf'}]\n }\n}\n```\n\nWith `engines.node` set to `>=4` the rule `plugin/rule` will not be used.\nWith `engines.node` set to `>=6` the rule `plugin/rule` will be used with the config `{prop: 'node-6-conf'}`.\nWith `engines.node` set to `>=8` the rule `plugin/rule` will be used with the config `{prop: 'node-8-conf'}`.\n*/\nconst engineRules = {\n \"n/prefer-global/text-decoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/text-encoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/url\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-global/url-search-params\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-promises/dns\": {\n \"11.14.0\": \"off\",\n },\n \"n/prefer-promises/fs\": {\n \"11.14.0\": \"off\",\n },\n \"no-useless-catch\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-destructuring\": {\n \"6.0.0\": \"off\",\n },\n \"prefer-named-capture-group\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-object-spread\": {\n \"8.3.0\": \"off\",\n },\n \"prefer-rest-params\": {\n \"6.0.0\": \"off\",\n },\n \"promise/prefer-await-to-then\": {\n \"7.6.0\": \"off\",\n },\n \"unicorn/no-new-buffer\": {\n \"5.10.0\": \"off\",\n },\n \"unicorn/prefer-flat-map\": {\n \"11.0.0\": \"off\",\n },\n \"unicorn/prefer-spread\": {\n \"5.0.0\": \"off\",\n },\n};\n\nexport default engineRules;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anolilab/eslint-config",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"description": "ESLint shareable config for the Anolilab JavaScript style guide.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"anolilab",
|
|
@@ -126,21 +126,21 @@
|
|
|
126
126
|
"postinstall": "node ./skip.js || node ./dist/postinstall.js"
|
|
127
127
|
},
|
|
128
128
|
"dependencies": {
|
|
129
|
-
"@anolilab/package-json-utils": "3.0.
|
|
130
|
-
"@babel/eslint-parser": "^7.22.
|
|
129
|
+
"@anolilab/package-json-utils": "3.0.5",
|
|
130
|
+
"@babel/eslint-parser": "^7.22.11",
|
|
131
131
|
"@babel/plugin-syntax-import-assertions": "^7.22.5",
|
|
132
132
|
"@html-eslint/eslint-plugin": "^0.19.1",
|
|
133
133
|
"@html-eslint/parser": "^0.19.1",
|
|
134
134
|
"@rushstack/eslint-patch": "^1.3.3",
|
|
135
135
|
"@rushstack/eslint-plugin-security": "^0.6.0",
|
|
136
|
-
"@typescript-eslint/eslint-plugin": ">=6.
|
|
137
|
-
"@typescript-eslint/parser": "^6.
|
|
136
|
+
"@typescript-eslint/eslint-plugin": ">=6.5.0",
|
|
137
|
+
"@typescript-eslint/parser": "^6.5.0",
|
|
138
138
|
"confusing-browser-globals": "^1.0.11",
|
|
139
139
|
"eslint-define-config": "^1.23.0",
|
|
140
140
|
"eslint-import-resolver-node": "^0.3.9",
|
|
141
141
|
"eslint-import-resolver-typescript": "^3.6.0",
|
|
142
142
|
"eslint-plugin-antfu": "^0.41.0",
|
|
143
|
-
"eslint-plugin-compat": "^4.
|
|
143
|
+
"eslint-plugin-compat": "^4.2.0",
|
|
144
144
|
"eslint-plugin-es-x": "^7.2.0",
|
|
145
145
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
146
146
|
"eslint-plugin-html": "^7.1.0",
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"eslint-plugin-unicorn": "^48.0.1",
|
|
162
162
|
"eslint-plugin-yml": "^1.8.0",
|
|
163
163
|
"find-up": "5.0.0",
|
|
164
|
-
"globals": "^13.
|
|
164
|
+
"globals": "^13.21.0",
|
|
165
165
|
"jsonc-eslint-parser": "^2.3.0",
|
|
166
166
|
"read-pkg-up": "^7.0.1",
|
|
167
167
|
"semver": "^7.5.4",
|
|
@@ -170,13 +170,13 @@
|
|
|
170
170
|
"yaml-eslint-parser": "^1.2.2"
|
|
171
171
|
},
|
|
172
172
|
"devDependencies": {
|
|
173
|
-
"@anolilab/semantic-release-preset": "6.0.
|
|
173
|
+
"@anolilab/semantic-release-preset": "6.0.5",
|
|
174
174
|
"@arthurgeron/eslint-plugin-react-usememo": "^1.1.4",
|
|
175
175
|
"@testing-library/dom": "^9.3.1",
|
|
176
176
|
"@total-typescript/ts-reset": "^0.5.1",
|
|
177
177
|
"@types/confusing-browser-globals": "^1.0.0",
|
|
178
178
|
"@types/eslint": "^8.44.2",
|
|
179
|
-
"@types/semver": "^7.5.
|
|
179
|
+
"@types/semver": "^7.5.1",
|
|
180
180
|
"eslint": "^8.48.0",
|
|
181
181
|
"eslint-find-rules": "^4.1.0",
|
|
182
182
|
"eslint-plugin-babel": "^5.3.1",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"eslint-plugin-jest-async": "^1.0.3",
|
|
188
188
|
"eslint-plugin-jest-dom": "^5.1.0",
|
|
189
189
|
"eslint-plugin-jest-formatting": "^3.1.0",
|
|
190
|
-
"eslint-plugin-jsdoc": "^46.5.
|
|
190
|
+
"eslint-plugin-jsdoc": "^46.5.1",
|
|
191
191
|
"eslint-plugin-jsx-a11y": "^6.7.1",
|
|
192
192
|
"eslint-plugin-no-unsanitized": "^4.0.2",
|
|
193
193
|
"eslint-plugin-prefer-object-spread": "^1.2.1",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
"eslint-plugin-storybook": "^0.6.13",
|
|
198
198
|
"eslint-plugin-tailwindcss": "^3.13.0",
|
|
199
199
|
"eslint-plugin-testing-library": "^6.0.1",
|
|
200
|
-
"eslint-plugin-vitest": "^0.
|
|
200
|
+
"eslint-plugin-vitest": "^0.3.1",
|
|
201
201
|
"eslint-plugin-you-dont-need-lodash-underscore": "^6.13.0",
|
|
202
202
|
"eslint-plugin-you-dont-need-momentjs": "^1.6.0",
|
|
203
203
|
"eslint-plugin-zod": "^1.4.0",
|
|
@@ -206,9 +206,9 @@
|
|
|
206
206
|
"rimraf": "^5.0.1",
|
|
207
207
|
"semantic-release": "^21.1.1",
|
|
208
208
|
"tsup": "^7.2.0",
|
|
209
|
-
"type-fest": "^4.
|
|
210
|
-
"typescript": "^5.
|
|
211
|
-
"vitest": "^0.34.
|
|
209
|
+
"type-fest": "^4.3.1",
|
|
210
|
+
"typescript": "^5.2.2",
|
|
211
|
+
"vitest": "^0.34.3"
|
|
212
212
|
},
|
|
213
213
|
"peerDependencies": {
|
|
214
214
|
"eslint": "^8.15.0"
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
"eslint-plugin-jest-async": "^1.0.3",
|
|
226
226
|
"eslint-plugin-jest-dom": "^5.1.0",
|
|
227
227
|
"eslint-plugin-jest-formatting": "^3.1.0",
|
|
228
|
-
"eslint-plugin-jsdoc": "^46.5.
|
|
228
|
+
"eslint-plugin-jsdoc": "^46.5.1",
|
|
229
229
|
"eslint-plugin-jsx-a11y": "^6.7.1",
|
|
230
230
|
"eslint-plugin-n": "^16.0.2",
|
|
231
231
|
"eslint-plugin-no-unsanitized": "^4.0.2",
|
|
@@ -271,8 +271,6 @@
|
|
|
271
271
|
"src/config/plugins/jsdoc.ts",
|
|
272
272
|
"src/config/plugins/jsonc.ts",
|
|
273
273
|
"src/config/plugins/jsx-a11y.ts",
|
|
274
|
-
"src/config/plugins/lodash-fp.ts",
|
|
275
|
-
"src/config/plugins/lodash.ts",
|
|
276
274
|
"src/config/plugins/markdown.ts",
|
|
277
275
|
"src/config/plugins/mdx.ts",
|
|
278
276
|
"src/config/plugins/no-extend-native.ts",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('../../chunk-MFE6DF6Y.js');
|
|
4
|
-
|
|
5
|
-
var e={extends:["plugin:lodash-fp/recommended"],plugins:["lodash-fp"],rules:{"lodash-fp/use-fp":"off"}},o=e;
|
|
6
|
-
|
|
7
|
-
module.exports = o;
|
|
8
|
-
//# sourceMappingURL=out.js.map
|
|
9
|
-
//# sourceMappingURL=lodash-fp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/plugins/lodash-fp.ts"],"names":["config","lodash_fp_default"],"mappings":"gCAEA,IAAMA,EAAwB,CAC1B,QAAS,CAAC,8BAA8B,EACxC,QAAS,CAAC,WAAW,EACrB,MAAO,CACH,mBAAoB,KACxB,CACJ,EAEOC,EAAQD","sourcesContent":["import type { Linter } from \"eslint\";\n\nconst config: Linter.Config = {\n extends: [\"plugin:lodash-fp/recommended\"],\n plugins: [\"lodash-fp\"],\n rules: {\n \"lodash-fp/use-fp\": \"off\",\n },\n};\n\nexport default config;\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('../../chunk-MFE6DF6Y.js');
|
|
4
|
-
|
|
5
|
-
var e={plugins:["lodash"],rules:{"lodash/callback-binding":2,"lodash/chain-style":[2,"as-needed"],"lodash/chaining":2,"lodash/collection-method-value":2,"lodash/collection-ordering":2,"lodash/collection-return":2,"lodash/consistent-compose":[2,"flow"],"lodash/identity-shorthand":[2,"always"],"lodash/import-scope":[2],"lodash/matches-prop-shorthand":[2,"always"],"lodash/matches-shorthand":[2,"always",3],"lodash/no-commit":2,"lodash/no-double-unwrap":2,"lodash/no-extra-args":2,"lodash/no-unbound-this":2,"lodash/path-style":[2,"string"],"lodash/prefer-compact":2,"lodash/prefer-constant":0,"lodash/prefer-filter":[2,3],"lodash/prefer-find":2,"lodash/prefer-flat-map":2,"lodash/prefer-get":0,"lodash/prefer-immutable-method":2,"lodash/prefer-includes":0,"lodash/prefer-invoke-map":2,"lodash/prefer-is-nil":0,"lodash/prefer-lodash-chain":0,"lodash/prefer-lodash-method":0,"lodash/prefer-lodash-typecheck":0,"lodash/prefer-map":2,"lodash/prefer-matches":0,"lodash/prefer-noop":2,"lodash/prefer-over-quantifier":0,"lodash/prefer-reject":[2,3],"lodash/prefer-some":0,"lodash/prefer-startswith":0,"lodash/prefer-thru":2,"lodash/prefer-times":0,"lodash/prefer-wrapper-method":2,"lodash/preferred-alias":2,"lodash/prop-shorthand":[2,"always"],"lodash/unwrap":2}},o=e;
|
|
6
|
-
|
|
7
|
-
module.exports = o;
|
|
8
|
-
//# sourceMappingURL=out.js.map
|
|
9
|
-
//# sourceMappingURL=lodash.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/plugins/lodash.ts"],"names":["config","lodash_default"],"mappings":"gCAEA,IAAMA,EAAwB,CAC1B,QAAS,CAAC,QAAQ,EAClB,MAAO,CAEH,0BAA2B,EAE3B,qBAAsB,CAAC,EAAG,WAAW,EACrC,kBAAmB,EACnB,iCAAkC,EAClC,6BAA8B,EAC9B,2BAA4B,EAC5B,4BAA6B,CAAC,EAAG,MAAM,EAEvC,4BAA6B,CAAC,EAAG,QAAQ,EACzC,sBAAuB,CAAC,CAAC,EACzB,gCAAiC,CAAC,EAAG,QAAQ,EAC7C,2BAA4B,CAAC,EAAG,SAAU,CAAC,EAC3C,mBAAoB,EACpB,0BAA2B,EAC3B,uBAAwB,EACxB,yBAA0B,EAC1B,oBAAqB,CAAC,EAAG,QAAQ,EACjC,wBAAyB,EAEzB,yBAA0B,EAC1B,uBAAwB,CAAC,EAAG,CAAC,EAC7B,qBAAsB,EACtB,yBAA0B,EAC1B,oBAAqB,EACrB,iCAAkC,EAClC,yBAA0B,EAC1B,2BAA4B,EAC5B,uBAAwB,EACxB,6BAA8B,EAC9B,8BAA+B,EAC/B,iCAAkC,EAClC,oBAAqB,EAErB,wBAAyB,EACzB,qBAAsB,EACtB,gCAAiC,EACjC,uBAAwB,CAAC,EAAG,CAAC,EAC7B,qBAAsB,EACtB,2BAA4B,EAC5B,qBAAsB,EACtB,sBAAuB,EACvB,+BAAgC,EAChC,yBAA0B,EAC1B,wBAAyB,CAAC,EAAG,QAAQ,EACrC,gBAAiB,CACrB,CACJ,EAEOC,EAAQD","sourcesContent":["import type { Linter } from \"eslint\";\n\nconst config: Linter.Config = {\n plugins: [\"lodash\"],\n rules: {\n // Possible Errors\n \"lodash/callback-binding\": 2,\n // Disable stylistic rules = Use prettier\n \"lodash/chain-style\": [2, \"as-needed\"],\n \"lodash/chaining\": 2,\n \"lodash/collection-method-value\": 2,\n \"lodash/collection-ordering\": 2,\n \"lodash/collection-return\": 2,\n \"lodash/consistent-compose\": [2, \"flow\"],\n\n \"lodash/identity-shorthand\": [2, \"always\"],\n \"lodash/import-scope\": [2],\n \"lodash/matches-prop-shorthand\": [2, \"always\"],\n \"lodash/matches-shorthand\": [2, \"always\", 3],\n \"lodash/no-commit\": 2,\n \"lodash/no-double-unwrap\": 2,\n \"lodash/no-extra-args\": 2,\n \"lodash/no-unbound-this\": 2,\n \"lodash/path-style\": [2, \"string\"],\n \"lodash/prefer-compact\": 2,\n // Prefer over Native - DISABLED\n \"lodash/prefer-constant\": 0,\n \"lodash/prefer-filter\": [2, 3],\n \"lodash/prefer-find\": 2,\n \"lodash/prefer-flat-map\": 2,\n \"lodash/prefer-get\": 0,\n \"lodash/prefer-immutable-method\": 2,\n \"lodash/prefer-includes\": 0,\n \"lodash/prefer-invoke-map\": 2,\n \"lodash/prefer-is-nil\": 0,\n \"lodash/prefer-lodash-chain\": 0,\n \"lodash/prefer-lodash-method\": 0,\n \"lodash/prefer-lodash-typecheck\": 0,\n \"lodash/prefer-map\": 2,\n\n \"lodash/prefer-matches\": 0,\n \"lodash/prefer-noop\": 2,\n \"lodash/prefer-over-quantifier\": 0,\n \"lodash/prefer-reject\": [2, 3],\n \"lodash/prefer-some\": 0,\n \"lodash/prefer-startswith\": 0,\n \"lodash/prefer-thru\": 2,\n \"lodash/prefer-times\": 0,\n \"lodash/prefer-wrapper-method\": 2,\n \"lodash/preferred-alias\": 2,\n \"lodash/prop-shorthand\": [2, \"always\"],\n \"lodash/unwrap\": 2,\n },\n};\n\nexport default config;\n"]}
|