@anolilab/eslint-config 14.0.13 → 14.0.15
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 +14 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## @anolilab/eslint-config [14.0.15](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@14.0.14...@anolilab/eslint-config@14.0.15) (2023-09-29)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* added missing eslint-plugin-deprecation to the config list ([41fe9c5](https://github.com/anolilab/javascript-style-guide/commit/41fe9c564f1704b918099ebaabb214df3851305b))
|
|
7
|
+
|
|
8
|
+
## @anolilab/eslint-config [14.0.14](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@14.0.13...@anolilab/eslint-config@14.0.14) (2023-09-29)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* added missing eslint-plugin-n to the deps ([0f1e67f](https://github.com/anolilab/javascript-style-guide/commit/0f1e67f42cb29f6d1f2bdd2d41bc19286d8b3632))
|
|
14
|
+
|
|
1
15
|
## @anolilab/eslint-config [14.0.13](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@14.0.12...@anolilab/eslint-config@14.0.13) (2023-09-29)
|
|
2
16
|
|
|
3
17
|
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
13
13
|
|
|
14
14
|
var k__default = /*#__PURE__*/_interopDefault(k);
|
|
15
15
|
|
|
16
|
-
var O=["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","no-loops","antfu","unicorn","es","perfectionist"],D=[{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:"validate-jsx-nesting",dependencies:["eslint-plugin-validate-jsx-nesting"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"ssr-friendly",dependencies:["eslint-plugin-ssr-friendly"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"react-redux",dependencies:["eslint-plugin-react-redux"],oneOfDependency:["@reduxjs/toolkit","redux"]},{configName:"jsx-a11y",dependencies:["eslint-plugin-jsx-a11y"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"react-hooks",dependencies:["eslint-plugin-react-hooks"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"react-usememo",dependencies:["@arthurgeron/eslint-plugin-react-usememo"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{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"],oneOfDependency:["tailwindcss","@tailwindcss/typography","@tailwindcss/forms","@tailwindcss/aspect-ratio","@tailwindcss/line-clamp"]},{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:"deprecation",dependencies:["typescript"],files:["tsconfig.json","tsconfig.eslint.json"]},{configName:"no-only-tests",dependencies:[],oneOfDependency:["jest","mocha","jasmine","tape","ava","qunit","cypress"]},{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],l={};p.length===r.length&&D.forEach(o=>{let{configName:e,dependencies:a}=o;if(chunkWW4PDMXQ_js.a.plugin?.[e]!==!1){let t=[];if(a.forEach(s=>{(packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s))&&t.push(s);}),l[e]={},t.length===0){if(o.oneOfDependency!==void 0){let s=!1;o.oneOfDependency.forEach(i=>{!s&&(packageJsonUtils.hasDependency(i)||packageJsonUtils.hasDevDependency(i))&&(s=!0,l[e][i]=!0);});}o.resolve!==void 0&&o.resolve.forEach(s=>{packageJsonUtils.resolvePackage(s)!==void 0&&(l[e][s]=!0);}),o.files!==void 0&&o.files.forEach(s=>{packageJsonUtils.hasFile(s)&&(l[e][s]=!0);});}t.length===a.length?(delete l[e],p.push(e)):a.forEach(s=>{l[e][s]=packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s);});}});var u=O,m=p,y=l;var R={"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"}},b=R;if(!global.hasAnolilabEsLintConfigLoaded){process.env.DEBUG&&(chunkSEYYGHPU_js.b(`
|
|
16
|
+
var O=["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","no-loops","antfu","unicorn","es","perfectionist"],D=[{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:"validate-jsx-nesting",dependencies:["eslint-plugin-validate-jsx-nesting"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"ssr-friendly",dependencies:["eslint-plugin-ssr-friendly"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"react-redux",dependencies:["eslint-plugin-react-redux"],oneOfDependency:["@reduxjs/toolkit","redux"]},{configName:"jsx-a11y",dependencies:["eslint-plugin-jsx-a11y"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"react-hooks",dependencies:["eslint-plugin-react-hooks"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{configName:"react-usememo",dependencies:["@arthurgeron/eslint-plugin-react-usememo"],oneOfDependency:["react","react-dom","preact","preact/compat"]},{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"],oneOfDependency:["tailwindcss","@tailwindcss/typography","@tailwindcss/forms","@tailwindcss/aspect-ratio","@tailwindcss/line-clamp"]},{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:"deprecation",dependencies:["eslint-plugin-deprecation","typescript"],files:["tsconfig.json","tsconfig.eslint.json"]},{configName:"no-only-tests",dependencies:[],oneOfDependency:["jest","mocha","jasmine","tape","ava","qunit","cypress"]},{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],l={};p.length===r.length&&D.forEach(o=>{let{configName:e,dependencies:a}=o;if(chunkWW4PDMXQ_js.a.plugin?.[e]!==!1){let t=[];if(a.forEach(s=>{(packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s))&&t.push(s);}),l[e]={},t.length===0){if(o.oneOfDependency!==void 0){let s=!1;o.oneOfDependency.forEach(i=>{!s&&(packageJsonUtils.hasDependency(i)||packageJsonUtils.hasDevDependency(i))&&(s=!0,l[e][i]=!0);});}o.resolve!==void 0&&o.resolve.forEach(s=>{packageJsonUtils.resolvePackage(s)!==void 0&&(l[e][s]=!0);}),o.files!==void 0&&o.files.forEach(s=>{packageJsonUtils.hasFile(s)&&(l[e][s]=!0);});}t.length===a.length?(delete l[e],p.push(e)):a.forEach(s=>{l[e][s]=packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s);});}});var u=O,m=p,y=l;var R={"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"}},b=R;if(!global.hasAnolilabEsLintConfigLoaded){process.env.DEBUG&&(chunkSEYYGHPU_js.b(`
|
|
17
17
|
@anolilab/eslint-config loaded the following plugins:
|
|
18
18
|
`),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(y).forEach(([e,a])=>{Object.values(a).some(Boolean)&&(o=!0,chunkSEYYGHPU_js.b(`
|
|
19
19
|
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(`
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/engine-node-overwrite.ts"],"names":["join","hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","intersects","rcompare","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,QAAAA,MAAY,OAErB,OAAS,iBAAAC,EAAe,oBAAAC,EAAkB,uBAAAC,EAAqB,OAAAC,MAAW,+BAE1E,OAAOC,MAAa,UACpB,OAAS,cAAAC,EAAY,YAAAC,MAAgB,SCnBrC,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,OACA,WAGA,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,EAC3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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 { join } from \"node:path\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport { intersects, rcompare } 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 = {};\n\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(rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && 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 ...(packageIsTypeModule\n ? {\n __dirname: \"off\",\n __filename: \"off\",\n exports: \"off\",\n require: \"off\",\n }\n : { __dirname: true, __filename: true, exports: true, require: true }),\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 env: {\n commonjs: true,\n },\n files: [\"**/*.cjs\"],\n // inside *.cjs files. restore commonJS \"globals\"\n globals: {\n __dirname: true,\n __filename: true,\n exports: true,\n require: true,\n },\n },\n {\n env: {\n commonjs: false,\n },\n files: [\"**/*.mjs\"],\n globals: {\n __dirname: \"off\",\n __filename: \"off\",\n exports: \"off\",\n require: \"off\",\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 \"no-loops\",\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: \"validate-jsx-nesting\",\n dependencies: [\"eslint-plugin-validate-jsx-nesting\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\n },\n {\n configName: \"ssr-friendly\",\n dependencies: [\"eslint-plugin-ssr-friendly\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\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: [\"eslint-plugin-jsx-a11y\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"eslint-plugin-react-hooks\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"@arthurgeron/eslint-plugin-react-usememo\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\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 oneOfDependency: [\"tailwindcss\", \"@tailwindcss/typography\", \"@tailwindcss/forms\", \"@tailwindcss/aspect-ratio\", \"@tailwindcss/line-clamp\"],\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: \"deprecation\",\n dependencies: [\"typescript\"],\n files: [\"tsconfig.json\", \"tsconfig.eslint.json\"],\n },\n {\n configName: \"no-only-tests\",\n dependencies: [],\n oneOfDependency: [\"jest\", \"mocha\", \"jasmine\", \"tape\", \"ava\", \"qunit\", \"cypress\"],\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":["join","hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","intersects","rcompare","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,QAAAA,MAAY,OAErB,OAAS,iBAAAC,EAAe,oBAAAC,EAAkB,uBAAAC,EAAqB,OAAAC,MAAW,+BAE1E,OAAOC,MAAa,UACpB,OAAS,cAAAC,EAAY,YAAAC,MAAgB,SCnBrC,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,OACA,WAGA,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,EAC3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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 { join } from \"node:path\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport { intersects, rcompare } 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 = {};\n\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(rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && 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 ...(packageIsTypeModule\n ? {\n __dirname: \"off\",\n __filename: \"off\",\n exports: \"off\",\n require: \"off\",\n }\n : { __dirname: true, __filename: true, exports: true, require: true }),\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 env: {\n commonjs: true,\n },\n files: [\"**/*.cjs\"],\n // inside *.cjs files. restore commonJS \"globals\"\n globals: {\n __dirname: true,\n __filename: true,\n exports: true,\n require: true,\n },\n },\n {\n env: {\n commonjs: false,\n },\n files: [\"**/*.mjs\"],\n globals: {\n __dirname: \"off\",\n __filename: \"off\",\n exports: \"off\",\n require: \"off\",\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 \"no-loops\",\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: \"validate-jsx-nesting\",\n dependencies: [\"eslint-plugin-validate-jsx-nesting\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\n },\n {\n configName: \"ssr-friendly\",\n dependencies: [\"eslint-plugin-ssr-friendly\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\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: [\"eslint-plugin-jsx-a11y\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"eslint-plugin-react-hooks\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"@arthurgeron/eslint-plugin-react-usememo\"],\n oneOfDependency: [\"react\", \"react-dom\", \"preact\", \"preact/compat\"],\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 oneOfDependency: [\"tailwindcss\", \"@tailwindcss/typography\", \"@tailwindcss/forms\", \"@tailwindcss/aspect-ratio\", \"@tailwindcss/line-clamp\"],\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: \"deprecation\",\n dependencies: [\"eslint-plugin-deprecation\", \"typescript\"],\n files: [\"tsconfig.json\", \"tsconfig.eslint.json\"],\n },\n {\n configName: \"no-only-tests\",\n dependencies: [],\n oneOfDependency: [\"jest\", \"mocha\", \"jasmine\", \"tape\", \"ava\", \"qunit\", \"cypress\"],\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": "14.0.
|
|
3
|
+
"version": "14.0.15",
|
|
4
4
|
"description": "ESLint shareable config for the Anolilab JavaScript style guide.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"anolilab",
|
|
@@ -149,6 +149,7 @@
|
|
|
149
149
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
150
150
|
"eslint-plugin-html": "^7.1.0",
|
|
151
151
|
"eslint-plugin-i": "^2.28.1",
|
|
152
|
+
"eslint-plugin-n": "^16.1.0",
|
|
152
153
|
"eslint-plugin-jsonc": "^2.9.0",
|
|
153
154
|
"eslint-plugin-markdown": "^3.0.1",
|
|
154
155
|
"eslint-plugin-mdx": "^2.2.0",
|
|
@@ -233,7 +234,6 @@
|
|
|
233
234
|
"eslint-plugin-jest-formatting": "^3.1.0",
|
|
234
235
|
"eslint-plugin-jsdoc": "^46.8.2",
|
|
235
236
|
"eslint-plugin-jsx-a11y": "^6.7.1",
|
|
236
|
-
"eslint-plugin-n": "^16.1.0",
|
|
237
237
|
"eslint-plugin-no-unsanitized": "^4.0.2",
|
|
238
238
|
"eslint-plugin-playwright": "^0.16.0",
|
|
239
239
|
"eslint-plugin-prefer-object-spread": "^1.2.1",
|