@ethang/eslint-config 21.2.5 → 21.4.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/build.ts +34 -0
- package/{README.md → dist/README.md} +2 -2
- package/dist/config.react.js +2 -0
- package/dist/config.react.js.map +1 -0
- package/dist/eslint.config.js +2 -0
- package/dist/package.json +68 -0
- package/eslint.config.js +26 -2
- package/package.json +5 -5
- package/src/README.md +100 -0
- package/src/build/create-config-file.ts +57 -0
- package/src/build/create-config.ts +96 -0
- package/src/build/get-react-version.ts +19 -0
- package/src/build/list-utilities.ts +124 -0
- package/src/build/rule-list.ts +284 -0
- package/src/build/update-readme.ts +195 -0
- package/src/build/update-rules.ts +124 -0
- package/src/config.angular.js +107 -0
- package/src/config.astro.js +68 -0
- package/src/config.react.js +117 -0
- package/src/config.solid.js +34 -0
- package/src/constants.js +16 -0
- package/src/eslint.config.js +1051 -0
- package/src/setup/a11y.ts +19 -0
- package/src/setup/angular.ts +40 -0
- package/src/setup/astro.ts +14 -0
- package/src/setup/barrel.ts +17 -0
- package/src/setup/compat.ts +13 -0
- package/src/setup/cspell.ts +83 -0
- package/src/setup/css.ts +12 -0
- package/src/setup/depend.ts +14 -0
- package/src/setup/eslint.ts +246 -0
- package/src/setup/gen-rules.ts +75 -0
- package/src/setup/json.ts +17 -0
- package/src/setup/lodash.ts +58 -0
- package/src/setup/markdown.ts +16 -0
- package/src/setup/n.ts +86 -0
- package/src/setup/perfectionist.ts +68 -0
- package/src/setup/react.ts +82 -0
- package/src/setup/solid.ts +21 -0
- package/src/setup/sonar.ts +39 -0
- package/src/setup/tailwind.ts +10 -0
- package/src/setup/tanstack-query.ts +9 -0
- package/src/setup/tanstack-router.ts +9 -0
- package/src/setup/typescript-eslint.ts +118 -0
- package/src/setup/unicorn.ts +38 -0
- package/tsconfig.json +5 -0
- package/config.react.js +0 -2
- package/config.react.js.map +0 -1
- /package/{chunk-WK3YS7OG.js → dist/chunk-WK3YS7OG.js} +0 -0
- /package/{chunk-WK3YS7OG.js.map → dist/chunk-WK3YS7OG.js.map} +0 -0
- /package/{config.angular.d.ts → dist/config.angular.d.ts} +0 -0
- /package/{config.angular.js → dist/config.angular.js} +0 -0
- /package/{config.angular.js.map → dist/config.angular.js.map} +0 -0
- /package/{config.astro.d.ts → dist/config.astro.d.ts} +0 -0
- /package/{config.astro.js → dist/config.astro.js} +0 -0
- /package/{config.astro.js.map → dist/config.astro.js.map} +0 -0
- /package/{config.react.d.ts → dist/config.react.d.ts} +0 -0
- /package/{config.solid.d.ts → dist/config.solid.d.ts} +0 -0
- /package/{config.solid.js → dist/config.solid.js} +0 -0
- /package/{config.solid.js.map → dist/config.solid.js.map} +0 -0
- /package/{constants.js → dist/constants.js} +0 -0
- /package/{constants.js.map → dist/constants.js.map} +0 -0
- /package/{eslint.config.d.ts → dist/eslint.config.d.ts} +0 -0
- /package/{eslint.config.js.map → dist/eslint.config.js.map} +0 -0
package/build.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import replace from "lodash/replace.js";
|
|
2
|
+
import { copyFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
|
|
4
|
+
import { projectBuilder } from "../project-builder/src/project-builder.ts";
|
|
5
|
+
import { updateReadme } from "./src/build/update-readme.js";
|
|
6
|
+
import { updateRules } from "./src/build/update-rules.js";
|
|
7
|
+
|
|
8
|
+
const configFiles = [
|
|
9
|
+
"src/eslint.config.js",
|
|
10
|
+
"src/config.astro.js",
|
|
11
|
+
"src/config.react.js",
|
|
12
|
+
"src/config.solid.js",
|
|
13
|
+
"src/config.angular.js",
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
await updateRules();
|
|
17
|
+
updateReadme();
|
|
18
|
+
await projectBuilder(import.meta.dirname, {
|
|
19
|
+
entry: [...configFiles, "src/constants.js"],
|
|
20
|
+
outDir: "dist",
|
|
21
|
+
});
|
|
22
|
+
copyFileSync("src/README.md", "dist/README.md");
|
|
23
|
+
|
|
24
|
+
const typeFile = `import type { config } from "typescript-eslint";
|
|
25
|
+
|
|
26
|
+
declare const _default: ReturnType<typeof config>;
|
|
27
|
+
export default _default;
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
for (const configFile of configFiles) {
|
|
31
|
+
let distributionFile = replace(configFile, "src", "dist");
|
|
32
|
+
distributionFile = replace(distributionFile, ".js", ".d.ts");
|
|
33
|
+
writeFileSync(distributionFile, typeFile);
|
|
34
|
+
}
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
* 52 rules for **Astro**
|
|
34
34
|
* `import astroConfig from "@ethang/eslint-config/config.astro.js";`
|
|
35
35
|
* 52 rules from [eslint-plugin-astro](https://github.com/ota-meshi/eslint-plugin-astro)
|
|
36
|
-
*
|
|
36
|
+
* 88 rules for **React**
|
|
37
37
|
* `import reactConfig from "@ethang/eslint-config/config.react.js";`
|
|
38
|
-
*
|
|
38
|
+
* 85 rules from [@eslint-react/eslint-plugin](https://eslint-react.xyz/)
|
|
39
39
|
* 2 rules from [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks)
|
|
40
40
|
* 1 rules from [eslint-plugin-react-compiler](https://github.com/facebook/react/tree/main/compiler/packages/eslint-plugin-react-compiler)
|
|
41
41
|
* 18 rules for **Solid**
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as r,b as e}from"./chunk-WK3YS7OG.js";import o from"@eslint-react/eslint-plugin";import t from"eslint-plugin-react-compiler";import n from"eslint-plugin-react-hooks";import a from"typescript-eslint";var l=a.config({files:["**/*.{jsx,tsx}"],ignores:r,languageOptions:e,settings:{react:{version:"19.0.0"}},plugins:{react:o,"react-hooks":n,"react-compiler":t},rules:{"react/avoid-shorthand-boolean":"off","react/avoid-shorthand-fragment":"off","react/debug/class-component":"off","react/debug/function-component":"off","react/debug/hook":"off","react/debug/is-from-react":"off","react/debug/react-hooks":"off","react/dom/no-children-in-void-dom-elements":"error","react/dom/no-dangerously-set-innerhtml":"error","react/dom/no-dangerously-set-innerhtml-with-children":"error","react/dom/no-find-dom-node":"error","react/dom/no-flush-sync":"error","react/dom/no-missing-button-type":"error","react/dom/no-missing-iframe-sandbox":"error","react/dom/no-namespace":"error","react/dom/no-render-return-value":"error","react/dom/no-script-url":"error","react/dom/no-unknown-property":"error","react/dom/no-unsafe-iframe-sandbox":"error","react/dom/no-unsafe-target-blank":"error","react/dom/no-void-elements-with-children":"error","react/ensure-forward-ref-using-ref":"error","react/hooks-extra/ensure-custom-hooks-using-other-hooks":"error","react/hooks-extra/ensure-use-callback-has-non-empty-deps":"error","react/hooks-extra/ensure-use-memo-has-non-empty-deps":"error","react/hooks-extra/no-direct-set-state-in-use-effect":"error","react/hooks-extra/no-direct-set-state-in-use-layout-effect":"error","react/hooks-extra/no-redundant-custom-hook":"error","react/hooks-extra/no-unnecessary-use-callback":"error","react/hooks-extra/no-unnecessary-use-memo":"error","react/hooks-extra/no-useless-custom-hooks":"error","react/hooks-extra/prefer-use-state-lazy-initialization":"error","react/jsx-no-duplicate-props":"error","react/jsx-uses-vars":"error","react/naming-convention/component-name":"error","react/naming-convention/filename":["error",{rule:"kebab-case"}],"react/naming-convention/filename-extension":"error","react/naming-convention/use-state":"error","react/no-access-state-in-setstate":"error","react/no-array-index-key":"error","react/no-children-count":"error","react/no-children-for-each":"error","react/no-children-map":"error","react/no-children-only":"error","react/no-children-prop":"error","react/no-children-to-array":"error","react/no-class-component":"error","react/no-clone-element":"error","react/no-comment-textnodes":"error","react/no-complex-conditional-rendering":"error","react/no-complicated-conditional-rendering":"error","react/no-component-will-mount":"error","react/no-component-will-receive-props":"error","react/no-component-will-update":"error","react/no-context-provider":"error","react/no-create-ref":"error","react/no-default-props":"error","react/no-direct-mutation-state":"error","react/no-duplicate-jsx-props":"error","react/no-duplicate-key":"error","react/no-forward-ref":"error","react/no-implicit-key":"error","react/no-leaked-conditional-rendering":"error","react/no-missing-component-display-name":"error","react/no-missing-context-display-name":"error","react/no-missing-key":"error","react/no-nested-components":"error","react/no-prop-types":"error","react/no-redundant-should-component-update":"error","react/no-set-state-in-component-did-mount":"error","react/no-set-state-in-component-did-update":"error","react/no-set-state-in-component-will-update":"error","react/no-string-refs":"error","react/no-unsafe-component-will-mount":"error","react/no-unsafe-component-will-receive-props":"error","react/no-unsafe-component-will-update":"error","react/no-unstable-context-value":"error","react/no-unstable-default-props":"error","react/no-unused-class-component-members":"error","react/no-unused-state":"error","react/no-use-context":"error","react/no-useless-fragment":"error","react/prefer-destructuring-assignment":"error","react/prefer-react-namespace-import":"error","react/prefer-read-only-props":"error","react/prefer-shorthand-boolean":"error","react/prefer-shorthand-fragment":"error","react/use-jsx-vars":"error","react/web-api/no-leaked-event-listener":"error","react/web-api/no-leaked-interval":"error","react/web-api/no-leaked-resize-observer":"error","react/web-api/no-leaked-timeout":"error","react-hooks/exhaustive-deps":"error","react-hooks/rules-of-hooks":"error","react-compiler/react-compiler":"error"}});export{l as default};
|
|
2
|
+
//# sourceMappingURL=config.react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.react.js"],"sourcesContent":["// @ts-nocheck\nimport { ignores, languageOptions } from \"./constants.js\";\nimport react from \"@eslint-react/eslint-plugin\";\nimport reactCompiler from \"eslint-plugin-react-compiler\";\nimport reactHooks from \"eslint-plugin-react-hooks\";\nimport tseslint from \"typescript-eslint\";\n\nexport default tseslint.config(\n {\n files: [\"**/*.{jsx,tsx}\"],\nignores,\nlanguageOptions,\nsettings: {\n \"react\":{\"version\":\"19.0.0\"}\n},\n plugins: {\n \"react\": react,\"react-hooks\": reactHooks,\"react-compiler\": reactCompiler,\n },\n rules: {\n \"react/avoid-shorthand-boolean\":\"off\",\"react/avoid-shorthand-fragment\":\"off\",\"react/debug/class-component\":\"off\",\"react/debug/function-component\":\"off\",\"react/debug/hook\":\"off\",\"react/debug/is-from-react\":\"off\",\"react/debug/react-hooks\":\"off\",\"react/dom/no-children-in-void-dom-elements\":\"error\",\"react/dom/no-dangerously-set-innerhtml\":\"error\",\"react/dom/no-dangerously-set-innerhtml-with-children\":\"error\",\"react/dom/no-find-dom-node\":\"error\",\"react/dom/no-flush-sync\":\"error\",\"react/dom/no-missing-button-type\":\"error\",\"react/dom/no-missing-iframe-sandbox\":\"error\",\"react/dom/no-namespace\":\"error\",\"react/dom/no-render-return-value\":\"error\",\"react/dom/no-script-url\":\"error\",\"react/dom/no-unknown-property\":\"error\",\"react/dom/no-unsafe-iframe-sandbox\":\"error\",\"react/dom/no-unsafe-target-blank\":\"error\",\"react/dom/no-void-elements-with-children\":\"error\",\"react/ensure-forward-ref-using-ref\":\"error\",\"react/hooks-extra/ensure-custom-hooks-using-other-hooks\":\"error\",\"react/hooks-extra/ensure-use-callback-has-non-empty-deps\":\"error\",\"react/hooks-extra/ensure-use-memo-has-non-empty-deps\":\"error\",\"react/hooks-extra/no-direct-set-state-in-use-effect\":\"error\",\"react/hooks-extra/no-direct-set-state-in-use-layout-effect\":\"error\",\"react/hooks-extra/no-redundant-custom-hook\":\"error\",\"react/hooks-extra/no-unnecessary-use-callback\":\"error\",\"react/hooks-extra/no-unnecessary-use-memo\":\"error\",\"react/hooks-extra/no-useless-custom-hooks\":\"error\",\"react/hooks-extra/prefer-use-state-lazy-initialization\":\"error\",\"react/jsx-no-duplicate-props\":\"error\",\"react/jsx-uses-vars\":\"error\",\"react/naming-convention/component-name\":\"error\",\"react/naming-convention/filename\":[\"error\",{\"rule\":\"kebab-case\"}],\"react/naming-convention/filename-extension\":\"error\",\"react/naming-convention/use-state\":\"error\",\"react/no-access-state-in-setstate\":\"error\",\"react/no-array-index-key\":\"error\",\"react/no-children-count\":\"error\",\"react/no-children-for-each\":\"error\",\"react/no-children-map\":\"error\",\"react/no-children-only\":\"error\",\"react/no-children-prop\":\"error\",\"react/no-children-to-array\":\"error\",\"react/no-class-component\":\"error\",\"react/no-clone-element\":\"error\",\"react/no-comment-textnodes\":\"error\",\"react/no-complex-conditional-rendering\":\"error\",\"react/no-complicated-conditional-rendering\":\"error\",\"react/no-component-will-mount\":\"error\",\"react/no-component-will-receive-props\":\"error\",\"react/no-component-will-update\":\"error\",\"react/no-context-provider\":\"error\",\"react/no-create-ref\":\"error\",\"react/no-default-props\":\"error\",\"react/no-direct-mutation-state\":\"error\",\"react/no-duplicate-jsx-props\":\"error\",\"react/no-duplicate-key\":\"error\",\"react/no-forward-ref\":\"error\",\"react/no-implicit-key\":\"error\",\"react/no-leaked-conditional-rendering\":\"error\",\"react/no-missing-component-display-name\":\"error\",\"react/no-missing-context-display-name\":\"error\",\"react/no-missing-key\":\"error\",\"react/no-nested-components\":\"error\",\"react/no-prop-types\":\"error\",\"react/no-redundant-should-component-update\":\"error\",\"react/no-set-state-in-component-did-mount\":\"error\",\"react/no-set-state-in-component-did-update\":\"error\",\"react/no-set-state-in-component-will-update\":\"error\",\"react/no-string-refs\":\"error\",\"react/no-unsafe-component-will-mount\":\"error\",\"react/no-unsafe-component-will-receive-props\":\"error\",\"react/no-unsafe-component-will-update\":\"error\",\"react/no-unstable-context-value\":\"error\",\"react/no-unstable-default-props\":\"error\",\"react/no-unused-class-component-members\":\"error\",\"react/no-unused-state\":\"error\",\"react/no-use-context\":\"error\",\"react/no-useless-fragment\":\"error\",\"react/prefer-destructuring-assignment\":\"error\",\"react/prefer-react-namespace-import\":\"error\",\"react/prefer-read-only-props\":\"error\",\"react/prefer-shorthand-boolean\":\"error\",\"react/prefer-shorthand-fragment\":\"error\",\"react/use-jsx-vars\":\"error\",\"react/web-api/no-leaked-event-listener\":\"error\",\"react/web-api/no-leaked-interval\":\"error\",\"react/web-api/no-leaked-resize-observer\":\"error\",\"react/web-api/no-leaked-timeout\":\"error\",\"react-hooks/exhaustive-deps\":\"error\",\"react-hooks/rules-of-hooks\":\"error\",\"react-compiler/react-compiler\":\"error\"\n },\n },\n \n \n );\n"],"mappings":"+CAEA,OAAOA,MAAW,8BAClB,OAAOC,MAAmB,+BAC1B,OAAOC,MAAgB,4BACvB,OAAOC,MAAc,oBAErB,IAAOC,EAAQD,EAAS,OACpB,CACA,MAAO,CAAC,gBAAgB,EAC5B,QAAAE,EACA,gBAAAC,EACA,SAAU,CACR,MAAQ,CAAC,QAAU,QAAQ,CAC7B,EACI,QAAS,CACP,MAASN,EAAM,cAAeE,EAAW,iBAAkBD,CAC7D,EACA,MAAO,CACL,gCAAgC,MAAM,iCAAiC,MAAM,8BAA8B,MAAM,iCAAiC,MAAM,mBAAmB,MAAM,4BAA4B,MAAM,0BAA0B,MAAM,6CAA6C,QAAQ,yCAAyC,QAAQ,uDAAuD,QAAQ,6BAA6B,QAAQ,0BAA0B,QAAQ,mCAAmC,QAAQ,sCAAsC,QAAQ,yBAAyB,QAAQ,mCAAmC,QAAQ,0BAA0B,QAAQ,gCAAgC,QAAQ,qCAAqC,QAAQ,mCAAmC,QAAQ,2CAA2C,QAAQ,qCAAqC,QAAQ,0DAA0D,QAAQ,2DAA2D,QAAQ,uDAAuD,QAAQ,sDAAsD,QAAQ,6DAA6D,QAAQ,6CAA6C,QAAQ,gDAAgD,QAAQ,4CAA4C,QAAQ,4CAA4C,QAAQ,yDAAyD,QAAQ,+BAA+B,QAAQ,sBAAsB,QAAQ,yCAAyC,QAAQ,mCAAmC,CAAC,QAAQ,CAAC,KAAO,YAAY,CAAC,EAAE,6CAA6C,QAAQ,oCAAoC,QAAQ,oCAAoC,QAAQ,2BAA2B,QAAQ,0BAA0B,QAAQ,6BAA6B,QAAQ,wBAAwB,QAAQ,yBAAyB,QAAQ,yBAAyB,QAAQ,6BAA6B,QAAQ,2BAA2B,QAAQ,yBAAyB,QAAQ,6BAA6B,QAAQ,yCAAyC,QAAQ,6CAA6C,QAAQ,gCAAgC,QAAQ,wCAAwC,QAAQ,iCAAiC,QAAQ,4BAA4B,QAAQ,sBAAsB,QAAQ,yBAAyB,QAAQ,iCAAiC,QAAQ,+BAA+B,QAAQ,yBAAyB,QAAQ,uBAAuB,QAAQ,wBAAwB,QAAQ,wCAAwC,QAAQ,0CAA0C,QAAQ,wCAAwC,QAAQ,uBAAuB,QAAQ,6BAA6B,QAAQ,sBAAsB,QAAQ,6CAA6C,QAAQ,4CAA4C,QAAQ,6CAA6C,QAAQ,8CAA8C,QAAQ,uBAAuB,QAAQ,uCAAuC,QAAQ,+CAA+C,QAAQ,wCAAwC,QAAQ,kCAAkC,QAAQ,kCAAkC,QAAQ,0CAA0C,QAAQ,wBAAwB,QAAQ,uBAAuB,QAAQ,4BAA4B,QAAQ,wCAAwC,QAAQ,sCAAsC,QAAQ,+BAA+B,QAAQ,iCAAiC,QAAQ,kCAAkC,QAAQ,qBAAqB,QAAQ,yCAAyC,QAAQ,mCAAmC,QAAQ,0CAA0C,QAAQ,kCAAkC,QAAQ,8BAA8B,QAAQ,6BAA6B,QAAQ,gCAAgC,OAC7/H,CACF,CAGA","names":["react","reactCompiler","reactHooks","tseslint","config_react_default","ignores","languageOptions"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e,b as o}from"./chunk-WK3YS7OG.js";import{fixupPluginRules as s}from"@eslint/compat";import t from"eslint-plugin-jsx-a11y";import a from"eslint-plugin-barrel-files";import i from"eslint-plugin-compat";import c from"@cspell/eslint-plugin";import p from"@eslint/css";import l from"eslint-plugin-depend";import u from"eslint-config-prettier";import f from"eslint-plugin-prettier/recommended";import r from"@eslint/json";import d from"eslint-plugin-lodash";import m from"@eslint/markdown";import y from"eslint-plugin-perfectionist";import g from"eslint-plugin-sonarjs";import h from"eslint-plugin-tailwindcss";import b from"@tanstack/eslint-plugin-query";import w from"@tanstack/eslint-plugin-router";import n from"typescript-eslint";import v from"eslint-plugin-unicorn";var F=n.config({files:["**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts}"],ignores:e,languageOptions:o,settings:{react:{version:"19.0.0"}},plugins:{depend:l,barrel:a,compat:i,"@typescript-eslint":n.plugin,unicorn:v,lodash:d,sonar:s(g),tailwind:h,perfectionist:y,"@tanstack/query":b,"@tanstack/router":w,a11y:t,cspell:c},rules:{"depend/ban-dependencies":["error",{allowed:["lodash","fs-extra"]}],"barrel/avoid-barrel-files":"error","barrel/avoid-importing-barrel-files":"off","barrel/avoid-namespace-import":"error","barrel/avoid-re-export-all":"error","compat/compat":"error","accessor-pairs":"error","array-callback-return":"error","arrow-body-style":"off","block-scoped-var":"error",camelcase:"off","capitalized-comments":"off","class-methods-use-this":"off",complexity:"off","consistent-return":"off","consistent-this":"off","constructor-super":"error",curly:"off","default-case":"off","default-case-last":"off","default-param-last":"off","dot-notation":"off",eqeqeq:"error","for-direction":"error","func-name-matching":"error","func-names":"off","func-style":["error","declaration",{allowArrowFunctions:!0}],"getter-return":"error","grouped-accessor-pairs":"error","guard-for-in":"error","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","logical-assignment-operators":"error","max-classes-per-file":"error","max-depth":"error","max-lines":"off","max-lines-per-function":"off","max-nested-callbacks":"error","max-params":"off","max-statements":"off","new-cap":"off","no-alert":"error","no-array-constructor":"off","no-async-promise-executor":"error","no-await-in-loop":"error","no-bitwise":"error","no-caller":"error","no-case-declarations":"error","no-class-assign":"error","no-compare-neg-zero":"error","no-cond-assign":"error","no-console":"error","no-const-assign":"error","no-constant-binary-expression":"error","no-constant-condition":"error","no-constructor-return":"error","no-continue":"error","no-control-regex":"error","no-debugger":"error","no-delete-var":"error","no-div-regex":"error","no-dupe-args":"error","no-dupe-class-members":"off","no-dupe-else-if":"error","no-dupe-keys":"error","no-duplicate-case":"error","no-duplicate-imports":"error","no-else-return":"error","no-empty":"error","no-empty-character-class":"error","no-empty-function":"off","no-empty-pattern":"error","no-empty-static-block":"error","no-eq-null":"error","no-eval":"error","no-ex-assign":"error","no-extend-native":"error","no-extra-bind":"error","no-extra-boolean-cast":"error","no-extra-label":"error","no-fallthrough":"error","no-func-assign":"error","no-global-assign":"error","no-implicit-coercion":"error","no-implicit-globals":"off","no-implied-eval":"off","no-import-assign":"error","no-inline-comments":"off","no-inner-declarations":"error","no-invalid-regexp":"error","no-invalid-this":"error","no-irregular-whitespace":"error","no-iterator":"error","no-label-var":"error","no-labels":"error","no-lone-blocks":"error","no-lonely-if":"error","no-loop-func":"error","no-loss-of-precision":"error","no-magic-numbers":"off","no-misleading-character-class":"error","no-multi-assign":"error","no-multi-str":"error","no-negated-condition":"error","no-nested-ternary":"error","no-new":"error","no-new-func":"error","no-new-native-nonconstructor":"error","no-new-wrappers":"error","no-nonoctal-decimal-escape":"error","no-obj-calls":"error","no-object-constructor":"error","no-octal":"error","no-octal-escape":"error","no-param-reassign":"error","no-plusplus":"error","no-promise-executor-return":"error","no-proto":"error","no-prototype-builtins":"error","no-redeclare":"off","no-regex-spaces":"error","no-restricted-exports":"off","no-restricted-globals":"off","no-restricted-imports":"off","no-restricted-properties":"off","no-restricted-syntax":"off","no-return-assign":"error","no-script-url":"error","no-self-assign":"error","no-self-compare":"error","no-sequences":"error","no-setter-return":"error","no-shadow":"off","no-shadow-restricted-names":"error","no-sparse-arrays":"error","no-template-curly-in-string":"off","no-ternary":"off","no-this-before-super":"error","no-throw-literal":"off","no-undef":"off","no-undef-init":"error","no-undefined":"off","no-underscore-dangle":"off","no-unexpected-multiline":"off","no-unmodified-loop-condition":"error","no-unneeded-ternary":"error","no-unreachable":"error","no-unreachable-loop":"error","no-unsafe-finally":"error","no-unsafe-negation":"error","no-unsafe-optional-chaining":["error",{disallowArithmeticOperators:!0}],"no-unused-expressions":"off","no-unused-labels":"error","no-unused-private-class-members":"error","no-unused-vars":"off","no-use-before-define":"off","no-useless-assignment":"off","no-useless-backreference":"error","no-useless-call":"error","no-useless-catch":"error","no-useless-computed-key":"error","no-useless-concat":"error","no-useless-constructor":"off","no-useless-escape":"error","no-useless-rename":"error","no-useless-return":"error","no-var":"error","no-void":"error","no-warning-comments":"off","no-with":"error","object-shorthand":"error","one-var":"off","operator-assignment":"error","prefer-arrow-callback":"off","prefer-const":"error","prefer-destructuring":"off","prefer-exponentiation-operator":"error","prefer-named-capture-group":"error","prefer-numeric-literals":"error","prefer-object-has-own":"error","prefer-object-spread":"error","prefer-promise-reject-errors":"off","prefer-regex-literals":"error","prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error",radix:"error","require-atomic-updates":"error","require-await":"off","require-unicode-regexp":"error","require-yield":"error","sort-imports":"off","sort-keys":"off","sort-vars":"error",strict:"error","symbol-description":"error","unicode-bom":"error","use-isnan":"error","valid-typeof":"error","vars-on-top":"error",yoda:["error","always"],"@typescript-eslint/adjacent-overload-signatures":"off","@typescript-eslint/array-type":"error","@typescript-eslint/await-thenable":"error","@typescript-eslint/ban-ts-comment":"error","@typescript-eslint/ban-tslint-comment":"error","@typescript-eslint/class-literal-property-style":"error","@typescript-eslint/class-methods-use-this":"off","@typescript-eslint/consistent-generic-constructors":"error","@typescript-eslint/consistent-indexed-object-style":"error","@typescript-eslint/consistent-return":"off","@typescript-eslint/consistent-type-assertions":"error","@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/consistent-type-exports":"error","@typescript-eslint/consistent-type-imports":["error",{fixStyle:"inline-type-imports"}],"@typescript-eslint/default-param-last":"error","@typescript-eslint/dot-notation":"error","@typescript-eslint/explicit-function-return-type":"off","@typescript-eslint/explicit-member-accessibility":"error","@typescript-eslint/explicit-module-boundary-types":"off","@typescript-eslint/init-declarations":"off","@typescript-eslint/max-params":"off","@typescript-eslint/member-ordering":"off","@typescript-eslint/method-signature-style":"error","@typescript-eslint/naming-convention":"off","@typescript-eslint/no-array-constructor":"error","@typescript-eslint/no-array-delete":"error","@typescript-eslint/no-base-to-string":"error","@typescript-eslint/no-confusing-non-null-assertion":"error","@typescript-eslint/no-confusing-void-expression":"error","@typescript-eslint/no-deprecated":"error","@typescript-eslint/no-dupe-class-members":"off","@typescript-eslint/no-duplicate-enum-values":"error","@typescript-eslint/no-duplicate-type-constituents":"error","@typescript-eslint/no-dynamic-delete":"error","@typescript-eslint/no-empty-function":"error","@typescript-eslint/no-empty-object-type":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-extra-non-null-assertion":"error","@typescript-eslint/no-extraneous-class":"error","@typescript-eslint/no-floating-promises":"error","@typescript-eslint/no-for-in-array":"error","@typescript-eslint/no-implied-eval":"error","@typescript-eslint/no-import-type-side-effects":"error","@typescript-eslint/no-inferrable-types":"error","@typescript-eslint/no-invalid-this":"off","@typescript-eslint/no-invalid-void-type":"error","@typescript-eslint/no-loop-func":"error","@typescript-eslint/no-magic-numbers":"off","@typescript-eslint/no-meaningless-void-operator":"error","@typescript-eslint/no-misused-new":"error","@typescript-eslint/no-misused-promises":"error","@typescript-eslint/no-misused-spread":"error","@typescript-eslint/no-mixed-enums":"error","@typescript-eslint/no-namespace":"error","@typescript-eslint/no-non-null-asserted-nullish-coalescing":"error","@typescript-eslint/no-non-null-asserted-optional-chain":"error","@typescript-eslint/no-non-null-assertion":"error","@typescript-eslint/no-redeclare":"off","@typescript-eslint/no-redundant-type-constituents":"error","@typescript-eslint/no-require-imports":"error","@typescript-eslint/no-restricted-imports":"error","@typescript-eslint/no-restricted-types":"error","@typescript-eslint/no-shadow":"error","@typescript-eslint/no-this-alias":"error","@typescript-eslint/no-unnecessary-boolean-literal-compare":"error","@typescript-eslint/no-unnecessary-condition":"error","@typescript-eslint/no-unnecessary-parameter-property-assignment":"error","@typescript-eslint/no-unnecessary-qualifier":"error","@typescript-eslint/no-unnecessary-template-expression":"error","@typescript-eslint/no-unnecessary-type-arguments":"error","@typescript-eslint/no-unnecessary-type-assertion":"error","@typescript-eslint/no-unnecessary-type-constraint":"error","@typescript-eslint/no-unnecessary-type-parameters":"off","@typescript-eslint/no-unsafe-argument":"error","@typescript-eslint/no-unsafe-assignment":"error","@typescript-eslint/no-unsafe-call":"error","@typescript-eslint/no-unsafe-declaration-merging":"error","@typescript-eslint/no-unsafe-enum-comparison":"error","@typescript-eslint/no-unsafe-function-type":"error","@typescript-eslint/no-unsafe-member-access":"error","@typescript-eslint/no-unsafe-return":"error","@typescript-eslint/no-unsafe-type-assertion":"error","@typescript-eslint/no-unsafe-unary-minus":"error","@typescript-eslint/no-unused-expressions":"error","@typescript-eslint/no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}],"@typescript-eslint/no-use-before-define":"off","@typescript-eslint/no-useless-constructor":"error","@typescript-eslint/no-useless-empty-export":"error","@typescript-eslint/no-wrapper-object-types":"error","@typescript-eslint/non-nullable-type-assertion-style":"error","@typescript-eslint/only-throw-error":"error","@typescript-eslint/parameter-properties":"off","@typescript-eslint/prefer-as-const":"error","@typescript-eslint/prefer-destructuring":"error","@typescript-eslint/prefer-enum-initializers":"error","@typescript-eslint/prefer-find":"error","@typescript-eslint/prefer-for-of":"error","@typescript-eslint/prefer-function-type":"error","@typescript-eslint/prefer-includes":"error","@typescript-eslint/prefer-literal-enum-member":"error","@typescript-eslint/prefer-namespace-keyword":"error","@typescript-eslint/prefer-nullish-coalescing":"error","@typescript-eslint/prefer-optional-chain":"error","@typescript-eslint/prefer-promise-reject-errors":"error","@typescript-eslint/prefer-readonly":"error","@typescript-eslint/prefer-readonly-parameter-types":"off","@typescript-eslint/prefer-reduce-type-parameter":"error","@typescript-eslint/prefer-regexp-exec":"error","@typescript-eslint/prefer-return-this-type":"error","@typescript-eslint/prefer-string-starts-ends-with":"error","@typescript-eslint/promise-function-async":"error","@typescript-eslint/related-getter-setter-pairs":"error","@typescript-eslint/require-array-sort-compare":"error","@typescript-eslint/require-await":"error","@typescript-eslint/restrict-plus-operands":"error","@typescript-eslint/restrict-template-expressions":"error","@typescript-eslint/return-await":"error","@typescript-eslint/strict-boolean-expressions":"error","@typescript-eslint/switch-exhaustiveness-check":"error","@typescript-eslint/triple-slash-reference":"error","@typescript-eslint/typedef":"off","@typescript-eslint/unbound-method":"error","@typescript-eslint/unified-signatures":"error","@typescript-eslint/use-unknown-in-catch-callback-variable":"error","unicorn/better-regex":"error","unicorn/catch-error-name":"error","unicorn/consistent-assert":"error","unicorn/consistent-date-clone":"error","unicorn/consistent-destructuring":"error","unicorn/consistent-empty-array-spread":"error","unicorn/consistent-existence-index-check":"error","unicorn/consistent-function-scoping":"error","unicorn/custom-error-definition":"error","unicorn/empty-brace-spaces":"off","unicorn/error-message":"error","unicorn/escape-case":"error","unicorn/expiring-todo-comments":"error","unicorn/explicit-length-check":"off","unicorn/filename-case":"error","unicorn/import-style":"error","unicorn/new-for-builtins":"error","unicorn/no-abusive-eslint-disable":"error","unicorn/no-accessor-recursion":"error","unicorn/no-anonymous-default-export":"error","unicorn/no-array-callback-reference":"error","unicorn/no-array-for-each":"error","unicorn/no-array-method-this-argument":"error","unicorn/no-array-push-push":"error","unicorn/no-array-reduce":"error","unicorn/no-await-expression-member":"error","unicorn/no-await-in-promise-methods":"error","unicorn/no-console-spaces":"error","unicorn/no-document-cookie":"error","unicorn/no-empty-file":"error","unicorn/no-for-loop":"error","unicorn/no-hex-escape":"error","unicorn/no-instanceof-builtins":"error","unicorn/no-invalid-fetch-options":"error","unicorn/no-invalid-remove-event-listener":"error","unicorn/no-keyword-prefix":"off","unicorn/no-length-as-slice-end":"error","unicorn/no-lonely-if":"error","unicorn/no-magic-array-flat-depth":"error","unicorn/no-named-default":"error","unicorn/no-negated-condition":"error","unicorn/no-negation-in-equality-check":"error","unicorn/no-nested-ternary":"off","unicorn/no-new-array":"error","unicorn/no-new-buffer":"error","unicorn/no-null":"off","unicorn/no-object-as-default-parameter":"error","unicorn/no-process-exit":"error","unicorn/no-single-promise-in-promise-methods":"error","unicorn/no-static-only-class":"error","unicorn/no-thenable":"error","unicorn/no-this-assignment":"error","unicorn/no-typeof-undefined":"error","unicorn/no-unnecessary-await":"error","unicorn/no-unnecessary-polyfills":"error","unicorn/no-unreadable-array-destructuring":"error","unicorn/no-unreadable-iife":"error","unicorn/no-unused-properties":"error","unicorn/no-useless-fallback-in-spread":"error","unicorn/no-useless-length-check":"error","unicorn/no-useless-promise-resolve-reject":"error","unicorn/no-useless-spread":"error","unicorn/no-useless-switch-case":"error","unicorn/no-useless-undefined":"error","unicorn/no-zero-fractions":"error","unicorn/number-literal-case":"off","unicorn/numeric-separators-style":"error","unicorn/prefer-add-event-listener":"error","unicorn/prefer-array-find":"error","unicorn/prefer-array-flat":"error","unicorn/prefer-array-flat-map":"error","unicorn/prefer-array-index-of":"error","unicorn/prefer-array-some":"error","unicorn/prefer-at":"error","unicorn/prefer-blob-reading-methods":"error","unicorn/prefer-code-point":"error","unicorn/prefer-date-now":"error","unicorn/prefer-default-parameters":"error","unicorn/prefer-dom-node-append":"error","unicorn/prefer-dom-node-dataset":"error","unicorn/prefer-dom-node-remove":"error","unicorn/prefer-dom-node-text-content":"error","unicorn/prefer-event-target":"error","unicorn/prefer-export-from":"error","unicorn/prefer-global-this":"error","unicorn/prefer-includes":"error","unicorn/prefer-json-parse-buffer":"error","unicorn/prefer-keyboard-event-key":"error","unicorn/prefer-logical-operator-over-ternary":"error","unicorn/prefer-math-min-max":"error","unicorn/prefer-math-trunc":"error","unicorn/prefer-modern-dom-apis":"error","unicorn/prefer-modern-math-apis":"error","unicorn/prefer-module":"error","unicorn/prefer-native-coercion-functions":"error","unicorn/prefer-negative-index":"error","unicorn/prefer-node-protocol":"error","unicorn/prefer-number-properties":"error","unicorn/prefer-object-from-entries":"error","unicorn/prefer-optional-catch-binding":"error","unicorn/prefer-prototype-methods":"error","unicorn/prefer-query-selector":"error","unicorn/prefer-reflect-apply":"error","unicorn/prefer-regexp-test":"error","unicorn/prefer-set-has":"error","unicorn/prefer-set-size":"error","unicorn/prefer-spread":"error","unicorn/prefer-string-raw":"error","unicorn/prefer-string-replace-all":"error","unicorn/prefer-string-slice":"error","unicorn/prefer-string-starts-ends-with":"error","unicorn/prefer-string-trim-start-end":"error","unicorn/prefer-structured-clone":"error","unicorn/prefer-switch":"error","unicorn/prefer-ternary":"error","unicorn/prefer-top-level-await":"error","unicorn/prefer-type-error":"error","unicorn/prevent-abbreviations":"error","unicorn/relative-url-style":"error","unicorn/require-array-join-separator":"error","unicorn/require-number-to-fixed-digits-argument":"error","unicorn/require-post-message-target-origin":"error","unicorn/string-content":"error","unicorn/switch-case-braces":"error","unicorn/template-indent":"off","unicorn/text-encoding-identifier-case":"error","unicorn/throw-new-error":"error","lodash/callback-binding":"error","lodash/chain-style":[2,"as-needed"],"lodash/chaining":"error","lodash/collection-method-value":"error","lodash/collection-ordering":"error","lodash/collection-return":"error","lodash/consistent-compose":[2,"flow"],"lodash/identity-shorthand":[2,"always"],"lodash/import-scope":[2,"method"],"lodash/matches-prop-shorthand":[2,"always"],"lodash/matches-shorthand":[2,"always",3],"lodash/no-commit":"error","lodash/no-double-unwrap":"error","lodash/no-extra-args":"error","lodash/no-unbound-this":"error","lodash/path-style":[2,"array"],"lodash/prefer-compact":"error","lodash/prefer-constant":"error","lodash/prefer-filter":"error","lodash/prefer-find":"error","lodash/prefer-flat-map":"error","lodash/prefer-get":"error","lodash/prefer-immutable-method":"error","lodash/prefer-includes":[2,{includeNative:!0}],"lodash/prefer-invoke-map":"error","lodash/prefer-is-nil":"error","lodash/prefer-lodash-chain":"error","lodash/prefer-lodash-method":"error","lodash/prefer-lodash-typecheck":"error","lodash/prefer-map":"error","lodash/prefer-matches":"error","lodash/prefer-noop":"error","lodash/prefer-over-quantifier":"error","lodash/prefer-reject":"error","lodash/prefer-some":[2,{includeNative:!0}],"lodash/prefer-startswith":"error","lodash/prefer-thru":"error","lodash/prefer-times":"error","lodash/prefer-wrapper-method":"error","lodash/preferred-alias":"error","lodash/prop-shorthand":[2,"always"],"lodash/unwrap":"error","sonar/anchor-precedence":"error","sonar/argument-type":"error","sonar/arguments-order":"error","sonar/arguments-usage":"error","sonar/array-callback-without-return":"error","sonar/array-constructor":"error","sonar/arrow-function-convention":"off","sonar/assertions-in-tests":"error","sonar/aws-apigateway-public-api":"error","sonar/aws-ec2-rds-dms-public":"error","sonar/aws-ec2-unencrypted-ebs-volume":"error","sonar/aws-efs-unencrypted":"error","sonar/aws-iam-all-privileges":"error","sonar/aws-iam-all-resources-accessible":"error","sonar/aws-iam-privilege-escalation":"error","sonar/aws-iam-public-access":"error","sonar/aws-opensearchservice-domain":"error","sonar/aws-rds-unencrypted-databases":"error","sonar/aws-restricted-ip-admin-access":"error","sonar/aws-s3-bucket-granted-access":"error","sonar/aws-s3-bucket-insecure-http":"error","sonar/aws-s3-bucket-public-access":"error","sonar/aws-s3-bucket-versioning":"error","sonar/aws-sagemaker-unencrypted-notebook":"error","sonar/aws-sns-unencrypted-topics":"error","sonar/aws-sqs-unencrypted-queue":"error","sonar/bitwise-operators":"error","sonar/block-scoped-var":"error","sonar/bool-param-default":"error","sonar/call-argument-line":"error","sonar/chai-determinate-assertion":"error","sonar/class-name":"error","sonar/class-prototype":"error","sonar/code-eval":"error","sonar/cognitive-complexity":"error","sonar/comma-or-logical-or-case":"error","sonar/comment-regex":"off","sonar/concise-regex":"error","sonar/confidential-information-logging":"error","sonar/constructor-for-side-effects":"error","sonar/content-length":"error","sonar/content-security-policy":"error","sonar/cookie-no-httponly":"error","sonar/cors":"error","sonar/csrf":"error","sonar/cyclomatic-complexity":"off","sonar/declarations-in-global-scope":"error","sonar/deprecation":"error","sonar/destructuring-assignment-syntax":"error","sonar/different-types-comparison":"error","sonar/disabled-auto-escaping":"error","sonar/disabled-resource-integrity":"error","sonar/disabled-timeout":"error","sonar/duplicates-in-character-class":"error","sonar/elseif-without-else":"error","sonar/empty-string-repetition":"error","sonar/encryption-secure-mode":"error","sonar/existing-groups":"error","sonar/expression-complexity":"error","sonar/file-header":"off","sonar/file-name-differ-from-class":"error","sonar/file-permissions":"error","sonar/file-uploads":"error","sonar/fixme-tag":"error","sonar/for-in":"error","sonar/for-loop-increment-sign":"error","sonar/frame-ancestors":"error","sonar/function-inside-loop":"error","sonar/function-name":["error",{format:"^(?:[a-z][a-zA-Z0-9]*|[A-Z][A-Z0-9]*)$"}],"sonar/function-return-type":"off","sonar/future-reserved-words":"error","sonar/generator-without-yield":"error","sonar/hashing":"error","sonar/hidden-files":"error","sonar/in-operator-type-error":"error","sonar/inconsistent-function-call":"error","sonar/index-of-compare-to-positive-number":"error","sonar/insecure-cookie":"error","sonar/insecure-jwt-token":"error","sonar/inverted-assertion-arguments":"error","sonar/jsx-no-leaked-render":"error","sonar/label-position":"error","sonar/link-with-target-blank":"error","sonar/max-lines":"error","sonar/max-lines-per-function":"error","sonar/max-switch-cases":"error","sonar/max-union-size":"off","sonar/misplaced-loop-counter":"error","sonar/nested-control-flow":"error","sonar/new-operator-misuse":"error","sonar/no-all-duplicated-branches":"error","sonar/no-alphabetical-sort":"error","sonar/no-angular-bypass-sanitization":"error","sonar/no-array-delete":"error","sonar/no-associative-arrays":"error","sonar/no-async-constructor":"error","sonar/no-built-in-override":"error","sonar/no-case-label-in-switch":"error","sonar/no-clear-text-protocols":"error","sonar/no-code-after-done":"error","sonar/no-collapsible-if":"error","sonar/no-collection-size-mischeck":"error","sonar/no-commented-code":"error","sonar/no-control-regex":"error","sonar/no-dead-store":"error","sonar/no-delete-var":"error","sonar/no-duplicate-in-composite":"error","sonar/no-duplicate-string":"error","sonar/no-duplicated-branches":"error","sonar/no-element-overwrite":"error","sonar/no-empty-after-reluctant":"error","sonar/no-empty-alternatives":"error","sonar/no-empty-character-class":"error","sonar/no-empty-collection":"error","sonar/no-empty-group":"error","sonar/no-empty-test-file":"error","sonar/no-equals-in-for-termination":"error","sonar/no-exclusive-tests":"error","sonar/no-extra-arguments":"error","sonar/no-fallthrough":"error","sonar/no-for-in-iterable":"error","sonar/no-function-declaration-in-block":"error","sonar/no-global-this":"error","sonar/no-globals-shadowing":"error","sonar/no-gratuitous-expressions":"error","sonar/no-hardcoded-ip":"error","sonar/no-hardcoded-passwords":"error","sonar/no-hardcoded-secrets":"error","sonar/no-hook-setter-in-body":"error","sonar/no-identical-conditions":"error","sonar/no-identical-expressions":"error","sonar/no-identical-functions":"error","sonar/no-ignored-exceptions":"error","sonar/no-ignored-return":"error","sonar/no-implicit-dependencies":"off","sonar/no-implicit-global":"error","sonar/no-in-misuse":"error","sonar/no-incomplete-assertions":"error","sonar/no-inconsistent-returns":"off","sonar/no-incorrect-string-concat":"error","sonar/no-internal-api-use":"error","sonar/no-intrusive-permissions":"error","sonar/no-invalid-await":"error","sonar/no-invalid-regexp":"error","sonar/no-invariant-returns":"error","sonar/no-inverted-boolean-check":"error","sonar/no-ip-forward":"error","sonar/no-labels":"error","sonar/no-literal-call":"error","sonar/no-mime-sniff":"error","sonar/no-misleading-array-reverse":"error","sonar/no-misleading-character-class":"error","sonar/no-mixed-content":"error","sonar/no-nested-assignment":"error","sonar/no-nested-conditional":"error","sonar/no-nested-functions":"error","sonar/no-nested-incdec":"error","sonar/no-nested-switch":"error","sonar/no-nested-template-literals":"error","sonar/no-one-iteration-loop":"error","sonar/no-os-command-from-path":"error","sonar/no-parameter-reassignment":"error","sonar/no-primitive-wrappers":"error","sonar/no-redundant-assignments":"error","sonar/no-redundant-boolean":"error","sonar/no-redundant-jump":"error","sonar/no-redundant-optional":"error","sonar/no-reference-error":"error","sonar/no-referrer-policy":"error","sonar/no-regex-spaces":"error","sonar/no-require-or-define":"error","sonar/no-return-type-any":"error","sonar/no-same-argument-assert":"error","sonar/no-same-line-conditional":"error","sonar/no-selector-parameter":"error","sonar/no-skipped-tests":"error","sonar/no-small-switch":"error","sonar/no-sonar-comments":"error","sonar/no-table-as-layout":"error","sonar/no-try-promise":"error","sonar/no-undefined-argument":"error","sonar/no-undefined-assignment":"off","sonar/no-unenclosed-multiline-block":"error","sonar/no-uniq-key":"error","sonar/no-unsafe-unzip":"error","sonar/no-unthrown-error":"error","sonar/no-unused-collection":"error","sonar/no-unused-function-argument":"error","sonar/no-unused-vars":"error","sonar/no-use-of-empty-return-value":"error","sonar/no-useless-catch":"error","sonar/no-useless-increment":"error","sonar/no-useless-intersection":"error","sonar/no-useless-react-setstate":"error","sonar/no-variable-usage-before-declaration":"error","sonar/no-weak-cipher":"error","sonar/no-weak-keys":"error","sonar/no-wildcard-import":"error","sonar/non-existent-operator":"error","sonar/non-number-in-arithmetic-expression":"error","sonar/null-dereference":"error","sonar/object-alt-content":"error","sonar/operation-returning-nan":"error","sonar/os-command":"error","sonar/post-message":"error","sonar/prefer-default-last":"error","sonar/prefer-immediate-return":"error","sonar/prefer-object-literal":"error","sonar/prefer-promise-shorthand":"error","sonar/prefer-read-only-props":"error","sonar/prefer-regexp-exec":"error","sonar/prefer-single-boolean-return":"error","sonar/prefer-type-guard":"error","sonar/prefer-while":"error","sonar/production-debug":"error","sonar/pseudo-random":"error","sonar/public-static-readonly":"error","sonar/publicly-writable-directories":"error","sonar/reduce-initial-value":"error","sonar/redundant-type-aliases":"error","sonar/regex-complexity":"error","sonar/session-regeneration":"error","sonar/shorthand-property-grouping":"off","sonar/single-char-in-character-classes":"error","sonar/single-character-alternation":"error","sonar/slow-regex":"error","sonar/sql-queries":"error","sonar/stable-tests":"error","sonar/stateful-regex":"error","sonar/strict-transport-security":"error","sonar/strings-comparison":"error","sonar/super-invocation":"error","sonar/table-header":"error","sonar/table-header-reference":"error","sonar/test-check-exception":"error","sonar/todo-tag":"off","sonar/too-many-break-or-continue-in-loop":"error","sonar/unicode-aware-regex":"error","sonar/unused-import":"error","sonar/unused-named-groups":"error","sonar/unverified-certificate":"error","sonar/unverified-hostname":"error","sonar/updated-const-var":"error","sonar/updated-loop-counter":"error","sonar/use-type-alias":"error","sonar/values-not-convertible-to-numbers":"error","sonar/variable-name":"error","sonar/void-use":"error","sonar/weak-ssl":"error","sonar/x-powered-by":"error","sonar/xml-parser-xxe":"error","tailwind/classnames-order":"error","tailwind/enforces-negative-arbitrary-values":"error","tailwind/enforces-shorthand":"error","tailwind/migration-from-tailwind-2":"error","tailwind/no-arbitrary-value":"error","tailwind/no-contradicting-classname":"error","tailwind/no-custom-classname":"off","tailwind/no-unnecessary-arbitrary-value":"error","perfectionist/sort-array-includes":"error","perfectionist/sort-classes":"error","perfectionist/sort-decorators":"error","perfectionist/sort-enums":"error","perfectionist/sort-exports":"error","perfectionist/sort-heritage-clauses":"error","perfectionist/sort-imports":["error",{groups:["type",["builtin","external"],"internal-type","internal",["parent-type","sibling-type","index-type"],["parent","sibling","index"],"object","unknown"],newlinesBetween:"always"}],"perfectionist/sort-interfaces":"error","perfectionist/sort-intersection-types":"error","perfectionist/sort-jsx-props":["error",{groups:["shorthand","multiline"]}],"perfectionist/sort-maps":"error","perfectionist/sort-modules":"error","perfectionist/sort-named-exports":"error","perfectionist/sort-named-imports":"error","perfectionist/sort-object-types":"error","perfectionist/sort-objects":["error",{partitionByComment:!0}],"perfectionist/sort-sets":"error","perfectionist/sort-switch-case":["error",{order:"asc",type:"alphabetical"}],"perfectionist/sort-union-types":"error","perfectionist/sort-variable-declarations":["error",{order:"asc",type:"alphabetical"}],"@tanstack/query/exhaustive-deps":"error","@tanstack/query/infinite-query-property-order":"error","@tanstack/query/no-rest-destructuring":"error","@tanstack/query/no-unstable-deps":"error","@tanstack/query/stable-query-client":"error","@tanstack/router/create-route-property-order":"error","a11y/alt-text":"error","a11y/anchor-ambiguous-text":"error","a11y/anchor-has-content":"error","a11y/anchor-is-valid":"error","a11y/aria-activedescendant-has-tabindex":"error","a11y/aria-props":"error","a11y/aria-proptypes":"error","a11y/aria-role":"error","a11y/aria-unsupported-elements":"error","a11y/autocomplete-valid":"error","a11y/click-events-have-key-events":"error","a11y/control-has-associated-label":"off","a11y/heading-has-content":"error","a11y/html-has-lang":"error","a11y/iframe-has-title":"error","a11y/img-redundant-alt":"error","a11y/interactive-supports-focus":"error","a11y/label-has-associated-control":"error","a11y/lang":"error","a11y/media-has-caption":"off","a11y/mouse-events-have-key-events":"error","a11y/no-access-key":"error","a11y/no-aria-hidden-on-focusable":"error","a11y/no-autofocus":"error","a11y/no-distracting-elements":"error","a11y/no-interactive-element-to-noninteractive-role":"error","a11y/no-noninteractive-element-interactions":"error","a11y/no-noninteractive-element-to-interactive-role":"error","a11y/no-noninteractive-tabindex":"error","a11y/no-redundant-roles":"error","a11y/no-static-element-interactions":"error","a11y/prefer-tag-over-role":"error","a11y/role-has-required-aria-props":"error","a11y/role-supports-aria-props":"error","a11y/scope":"error","a11y/tabindex-no-positive":"error","cspell/spellchecker":["error",{cspell:{words:["typicode","toolbelt","taze","ethang","TSESTree","Boop","cldr","astro","laravel","qwik","sitecore","uswds","mediat","Packt","Academind","Udemy","Colte","Bootcamp","HTMX","MERN","Nuxt","Credly","Sterett","Beyonder","hotspot","lqip","Hawn","nextui","speculationrules","zustand","vinxi","datasource","turso","supabase","solidjs","labelledby","svix","blockqoute","cortexjs","mathrm","nums","lifecycles","krausest","Signalis","Plass","Iteree","Sonner","cmdk","ngsw","dexie","leetcode","ngsrc","sindresorhus","rogan","heroui","millis"]}}]}},{files:["**/*.md"],plugins:{markdown:m},rules:{"markdown/fenced-code-language":"error","markdown/heading-increment":"error","markdown/no-duplicate-headings":"error","markdown/no-empty-links":"error","markdown/no-html":"error","markdown/no-invalid-label-refs":"error","markdown/no-missing-label-refs":"error"}},{files:["**/*.css"],language:"css/css",plugins:{css:p},rules:{"css/no-duplicate-imports":"error","css/no-empty-blocks":"error","css/no-invalid-at-rules":"off","css/no-invalid-properties":"error"}},{files:["**/*.json"],language:"json/json",plugins:{json:r},rules:{"json/no-duplicate-keys":"error","json/no-empty-keys":"error","json/no-unnormalized-keys":"error","json/no-unsafe-values":"error","json/sort-keys":"error","json/top-level-interop":"error"}},{files:["**/*.jsonc"],language:"json/jsonc",plugins:{json:r},rules:{"json/no-duplicate-keys":"error","json/no-empty-keys":"error","json/no-unnormalized-keys":"error","json/no-unsafe-values":"error","json/sort-keys":"error","json/top-level-interop":"error"}},{files:["**/*.json5"],language:"json/json5",plugins:{json:r},rules:{"json/no-duplicate-keys":"error","json/no-empty-keys":"error","json/no-unnormalized-keys":"error","json/no-unsafe-values":"error","json/sort-keys":"error","json/top-level-interop":"error"}},u,f);export{F as default};
|
|
2
|
+
//# sourceMappingURL=eslint.config.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": "Ethan Glover",
|
|
3
|
+
"browserslist": [
|
|
4
|
+
"defaults and fully supports es6-module",
|
|
5
|
+
"maintained node versions"
|
|
6
|
+
],
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@angular-eslint/eslint-plugin": "^19.1.0",
|
|
9
|
+
"@angular-eslint/eslint-plugin-template": "^19.1.0",
|
|
10
|
+
"@angular-eslint/template-parser": "^19.1.0",
|
|
11
|
+
"@cspell/eslint-plugin": "^8.17.5",
|
|
12
|
+
"@eslint-react/eslint-plugin": "^1.28.0",
|
|
13
|
+
"@eslint/compat": "^1.2.7",
|
|
14
|
+
"@eslint/css": "0.2.0",
|
|
15
|
+
"@eslint/js": "^9.21.0",
|
|
16
|
+
"@eslint/json": "^0.10.0",
|
|
17
|
+
"@eslint/markdown": "^6.2.2",
|
|
18
|
+
"@tanstack/eslint-plugin-query": "^5.66.1",
|
|
19
|
+
"@tanstack/eslint-plugin-router": "^1.105.0",
|
|
20
|
+
"@typescript-eslint/parser": "^8.25.0",
|
|
21
|
+
"angular-eslint": "19.1.0",
|
|
22
|
+
"eslint": "^9.21.0",
|
|
23
|
+
"eslint-config-prettier": "^10.0.2",
|
|
24
|
+
"eslint-plugin-astro": "^1.3.1",
|
|
25
|
+
"eslint-plugin-barrel-files": "^3.0.1",
|
|
26
|
+
"eslint-plugin-compat": "^6.0.2",
|
|
27
|
+
"eslint-plugin-depend": "^0.12.0",
|
|
28
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
29
|
+
"eslint-plugin-lodash": "^8.0.0",
|
|
30
|
+
"eslint-plugin-n": "^17.15.1",
|
|
31
|
+
"eslint-plugin-perfectionist": "^4.9.0",
|
|
32
|
+
"eslint-plugin-prettier": "^5.2.3",
|
|
33
|
+
"eslint-plugin-react-compiler": "19.0.0-beta-e552027-20250112",
|
|
34
|
+
"eslint-plugin-react-hooks": "^5.1.0",
|
|
35
|
+
"eslint-plugin-solid": "^0.14.5",
|
|
36
|
+
"eslint-plugin-sonarjs": "3.0.2",
|
|
37
|
+
"eslint-plugin-tailwindcss": "^3.18.0",
|
|
38
|
+
"eslint-plugin-unicorn": "^57.0.0",
|
|
39
|
+
"prettier": "^3.5.2",
|
|
40
|
+
"typescript-eslint": "^8.25.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@ethang/markdown-generator": "^1.1.5",
|
|
44
|
+
"@ethang/toolbelt": "^4.4.0",
|
|
45
|
+
"@types/eslint-plugin-jsx-a11y": "^6.10.0",
|
|
46
|
+
"@types/eslint-plugin-tailwindcss": "^3.17.0",
|
|
47
|
+
"@types/lodash": "^4.17.15",
|
|
48
|
+
"@types/node": "^22.13.5",
|
|
49
|
+
"lodash": "^4.17.21",
|
|
50
|
+
"typescript": "^5.7.3",
|
|
51
|
+
"zod": "^3.24.2"
|
|
52
|
+
},
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=22"
|
|
55
|
+
},
|
|
56
|
+
"license": "ISC",
|
|
57
|
+
"main": "eslint.config.js",
|
|
58
|
+
"name": "@ethang/eslint-config",
|
|
59
|
+
"repository": {
|
|
60
|
+
"url": "https://github.com/eglove/ethang-monorepo/tree/master/packages/eslint-config"
|
|
61
|
+
},
|
|
62
|
+
"scripts": {
|
|
63
|
+
"build": "bun build.ts && pnpm lint",
|
|
64
|
+
"lint": "eslint . --fix && prettier src --write"
|
|
65
|
+
},
|
|
66
|
+
"type": "module",
|
|
67
|
+
"version": "21.3.0"
|
|
68
|
+
}
|
package/eslint.config.js
CHANGED
|
@@ -1,2 +1,26 @@
|
|
|
1
|
-
import{a as e,b as o}from"./chunk-WK3YS7OG.js";import{fixupPluginRules as s}from"@eslint/compat";import t from"eslint-plugin-jsx-a11y";import a from"eslint-plugin-barrel-files";import i from"eslint-plugin-compat";import c from"@cspell/eslint-plugin";import p from"@eslint/css";import l from"eslint-plugin-depend";import u from"eslint-config-prettier";import f from"eslint-plugin-prettier/recommended";import r from"@eslint/json";import d from"eslint-plugin-lodash";import m from"@eslint/markdown";import y from"eslint-plugin-perfectionist";import g from"eslint-plugin-sonarjs";import h from"eslint-plugin-tailwindcss";import b from"@tanstack/eslint-plugin-query";import w from"@tanstack/eslint-plugin-router";import n from"typescript-eslint";import v from"eslint-plugin-unicorn";var F=n.config({files:["**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts}"],ignores:e,languageOptions:o,settings:{react:{version:"19.0.0"}},plugins:{depend:l,barrel:a,compat:i,"@typescript-eslint":n.plugin,unicorn:v,lodash:d,sonar:s(g),tailwind:h,perfectionist:y,"@tanstack/query":b,"@tanstack/router":w,a11y:t,cspell:c},rules:{"depend/ban-dependencies":["error",{allowed:["lodash","fs-extra"]}],"barrel/avoid-barrel-files":"error","barrel/avoid-importing-barrel-files":"off","barrel/avoid-namespace-import":"error","barrel/avoid-re-export-all":"error","compat/compat":"error","accessor-pairs":"error","array-callback-return":"error","arrow-body-style":"off","block-scoped-var":"error",camelcase:"off","capitalized-comments":"off","class-methods-use-this":"off",complexity:"off","consistent-return":"off","consistent-this":"off","constructor-super":"error",curly:"off","default-case":"off","default-case-last":"off","default-param-last":"off","dot-notation":"off",eqeqeq:"error","for-direction":"error","func-name-matching":"error","func-names":"off","func-style":["error","declaration",{allowArrowFunctions:!0}],"getter-return":"error","grouped-accessor-pairs":"error","guard-for-in":"error","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","logical-assignment-operators":"error","max-classes-per-file":"error","max-depth":"error","max-lines":"off","max-lines-per-function":"off","max-nested-callbacks":"error","max-params":"off","max-statements":"off","new-cap":"off","no-alert":"error","no-array-constructor":"off","no-async-promise-executor":"error","no-await-in-loop":"error","no-bitwise":"error","no-caller":"error","no-case-declarations":"error","no-class-assign":"error","no-compare-neg-zero":"error","no-cond-assign":"error","no-console":"error","no-const-assign":"error","no-constant-binary-expression":"error","no-constant-condition":"error","no-constructor-return":"error","no-continue":"error","no-control-regex":"error","no-debugger":"error","no-delete-var":"error","no-div-regex":"error","no-dupe-args":"error","no-dupe-class-members":"off","no-dupe-else-if":"error","no-dupe-keys":"error","no-duplicate-case":"error","no-duplicate-imports":"error","no-else-return":"error","no-empty":"error","no-empty-character-class":"error","no-empty-function":"off","no-empty-pattern":"error","no-empty-static-block":"error","no-eq-null":"error","no-eval":"error","no-ex-assign":"error","no-extend-native":"error","no-extra-bind":"error","no-extra-boolean-cast":"error","no-extra-label":"error","no-fallthrough":"error","no-func-assign":"error","no-global-assign":"error","no-implicit-coercion":"error","no-implicit-globals":"off","no-implied-eval":"off","no-import-assign":"error","no-inline-comments":"off","no-inner-declarations":"error","no-invalid-regexp":"error","no-invalid-this":"error","no-irregular-whitespace":"error","no-iterator":"error","no-label-var":"error","no-labels":"error","no-lone-blocks":"error","no-lonely-if":"error","no-loop-func":"error","no-loss-of-precision":"error","no-magic-numbers":"off","no-misleading-character-class":"error","no-multi-assign":"error","no-multi-str":"error","no-negated-condition":"error","no-nested-ternary":"error","no-new":"error","no-new-func":"error","no-new-native-nonconstructor":"error","no-new-wrappers":"error","no-nonoctal-decimal-escape":"error","no-obj-calls":"error","no-object-constructor":"error","no-octal":"error","no-octal-escape":"error","no-param-reassign":"error","no-plusplus":"error","no-promise-executor-return":"error","no-proto":"error","no-prototype-builtins":"error","no-redeclare":"off","no-regex-spaces":"error","no-restricted-exports":"off","no-restricted-globals":"off","no-restricted-imports":"off","no-restricted-properties":"off","no-restricted-syntax":"off","no-return-assign":"error","no-script-url":"error","no-self-assign":"error","no-self-compare":"error","no-sequences":"error","no-setter-return":"error","no-shadow":"off","no-shadow-restricted-names":"error","no-sparse-arrays":"error","no-template-curly-in-string":"off","no-ternary":"off","no-this-before-super":"error","no-throw-literal":"off","no-undef":"off","no-undef-init":"error","no-undefined":"off","no-underscore-dangle":"off","no-unexpected-multiline":"off","no-unmodified-loop-condition":"error","no-unneeded-ternary":"error","no-unreachable":"error","no-unreachable-loop":"error","no-unsafe-finally":"error","no-unsafe-negation":"error","no-unsafe-optional-chaining":["error",{disallowArithmeticOperators:!0}],"no-unused-expressions":"off","no-unused-labels":"error","no-unused-private-class-members":"error","no-unused-vars":"off","no-use-before-define":"off","no-useless-assignment":"off","no-useless-backreference":"error","no-useless-call":"error","no-useless-catch":"error","no-useless-computed-key":"error","no-useless-concat":"error","no-useless-constructor":"off","no-useless-escape":"error","no-useless-rename":"error","no-useless-return":"error","no-var":"error","no-void":"error","no-warning-comments":"off","no-with":"error","object-shorthand":"error","one-var":"off","operator-assignment":"error","prefer-arrow-callback":"off","prefer-const":"error","prefer-destructuring":"off","prefer-exponentiation-operator":"error","prefer-named-capture-group":"error","prefer-numeric-literals":"error","prefer-object-has-own":"error","prefer-object-spread":"error","prefer-promise-reject-errors":"off","prefer-regex-literals":"error","prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error",radix:"error","require-atomic-updates":"error","require-await":"off","require-unicode-regexp":"error","require-yield":"error","sort-imports":"off","sort-keys":"off","sort-vars":"error",strict:"error","symbol-description":"error","unicode-bom":"error","use-isnan":"error","valid-typeof":"error","vars-on-top":"error",yoda:["error","always"],"@typescript-eslint/adjacent-overload-signatures":"off","@typescript-eslint/array-type":"error","@typescript-eslint/await-thenable":"error","@typescript-eslint/ban-ts-comment":"error","@typescript-eslint/ban-tslint-comment":"error","@typescript-eslint/class-literal-property-style":"error","@typescript-eslint/class-methods-use-this":"off","@typescript-eslint/consistent-generic-constructors":"error","@typescript-eslint/consistent-indexed-object-style":"error","@typescript-eslint/consistent-return":"off","@typescript-eslint/consistent-type-assertions":"error","@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/consistent-type-exports":"error","@typescript-eslint/consistent-type-imports":["error",{fixStyle:"inline-type-imports"}],"@typescript-eslint/default-param-last":"error","@typescript-eslint/dot-notation":"error","@typescript-eslint/explicit-function-return-type":"off","@typescript-eslint/explicit-member-accessibility":"error","@typescript-eslint/explicit-module-boundary-types":"off","@typescript-eslint/init-declarations":"off","@typescript-eslint/max-params":"off","@typescript-eslint/member-ordering":"off","@typescript-eslint/method-signature-style":"error","@typescript-eslint/naming-convention":"off","@typescript-eslint/no-array-constructor":"error","@typescript-eslint/no-array-delete":"error","@typescript-eslint/no-base-to-string":"error","@typescript-eslint/no-confusing-non-null-assertion":"error","@typescript-eslint/no-confusing-void-expression":"error","@typescript-eslint/no-deprecated":"error","@typescript-eslint/no-dupe-class-members":"off","@typescript-eslint/no-duplicate-enum-values":"error","@typescript-eslint/no-duplicate-type-constituents":"error","@typescript-eslint/no-dynamic-delete":"error","@typescript-eslint/no-empty-function":"error","@typescript-eslint/no-empty-object-type":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-extra-non-null-assertion":"error","@typescript-eslint/no-extraneous-class":"error","@typescript-eslint/no-floating-promises":"error","@typescript-eslint/no-for-in-array":"error","@typescript-eslint/no-implied-eval":"error","@typescript-eslint/no-import-type-side-effects":"error","@typescript-eslint/no-inferrable-types":"error","@typescript-eslint/no-invalid-this":"off","@typescript-eslint/no-invalid-void-type":"error","@typescript-eslint/no-loop-func":"error","@typescript-eslint/no-magic-numbers":"off","@typescript-eslint/no-meaningless-void-operator":"error","@typescript-eslint/no-misused-new":"error","@typescript-eslint/no-misused-promises":"error","@typescript-eslint/no-misused-spread":"error","@typescript-eslint/no-mixed-enums":"error","@typescript-eslint/no-namespace":"error","@typescript-eslint/no-non-null-asserted-nullish-coalescing":"error","@typescript-eslint/no-non-null-asserted-optional-chain":"error","@typescript-eslint/no-non-null-assertion":"error","@typescript-eslint/no-redeclare":"off","@typescript-eslint/no-redundant-type-constituents":"error","@typescript-eslint/no-require-imports":"error","@typescript-eslint/no-restricted-imports":"error","@typescript-eslint/no-restricted-types":"error","@typescript-eslint/no-shadow":"error","@typescript-eslint/no-this-alias":"error","@typescript-eslint/no-unnecessary-boolean-literal-compare":"error","@typescript-eslint/no-unnecessary-condition":"error","@typescript-eslint/no-unnecessary-parameter-property-assignment":"error","@typescript-eslint/no-unnecessary-qualifier":"error","@typescript-eslint/no-unnecessary-template-expression":"error","@typescript-eslint/no-unnecessary-type-arguments":"error","@typescript-eslint/no-unnecessary-type-assertion":"error","@typescript-eslint/no-unnecessary-type-constraint":"error","@typescript-eslint/no-unnecessary-type-parameters":"off","@typescript-eslint/no-unsafe-argument":"error","@typescript-eslint/no-unsafe-assignment":"error","@typescript-eslint/no-unsafe-call":"error","@typescript-eslint/no-unsafe-declaration-merging":"error","@typescript-eslint/no-unsafe-enum-comparison":"error","@typescript-eslint/no-unsafe-function-type":"error","@typescript-eslint/no-unsafe-member-access":"error","@typescript-eslint/no-unsafe-return":"error","@typescript-eslint/no-unsafe-type-assertion":"error","@typescript-eslint/no-unsafe-unary-minus":"error","@typescript-eslint/no-unused-expressions":"error","@typescript-eslint/no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",ignoreRestSiblings:!0,varsIgnorePattern:"^_"}],"@typescript-eslint/no-use-before-define":"off","@typescript-eslint/no-useless-constructor":"error","@typescript-eslint/no-useless-empty-export":"error","@typescript-eslint/no-wrapper-object-types":"error","@typescript-eslint/non-nullable-type-assertion-style":"error","@typescript-eslint/only-throw-error":"error","@typescript-eslint/parameter-properties":"off","@typescript-eslint/prefer-as-const":"error","@typescript-eslint/prefer-destructuring":"error","@typescript-eslint/prefer-enum-initializers":"error","@typescript-eslint/prefer-find":"error","@typescript-eslint/prefer-for-of":"error","@typescript-eslint/prefer-function-type":"error","@typescript-eslint/prefer-includes":"error","@typescript-eslint/prefer-literal-enum-member":"error","@typescript-eslint/prefer-namespace-keyword":"error","@typescript-eslint/prefer-nullish-coalescing":"error","@typescript-eslint/prefer-optional-chain":"error","@typescript-eslint/prefer-promise-reject-errors":"error","@typescript-eslint/prefer-readonly":"error","@typescript-eslint/prefer-readonly-parameter-types":"off","@typescript-eslint/prefer-reduce-type-parameter":"error","@typescript-eslint/prefer-regexp-exec":"error","@typescript-eslint/prefer-return-this-type":"error","@typescript-eslint/prefer-string-starts-ends-with":"error","@typescript-eslint/promise-function-async":"error","@typescript-eslint/related-getter-setter-pairs":"error","@typescript-eslint/require-array-sort-compare":"error","@typescript-eslint/require-await":"error","@typescript-eslint/restrict-plus-operands":"error","@typescript-eslint/restrict-template-expressions":"error","@typescript-eslint/return-await":"error","@typescript-eslint/strict-boolean-expressions":"error","@typescript-eslint/switch-exhaustiveness-check":"error","@typescript-eslint/triple-slash-reference":"error","@typescript-eslint/typedef":"off","@typescript-eslint/unbound-method":"error","@typescript-eslint/unified-signatures":"error","@typescript-eslint/use-unknown-in-catch-callback-variable":"error","unicorn/better-regex":"error","unicorn/catch-error-name":"error","unicorn/consistent-assert":"error","unicorn/consistent-date-clone":"error","unicorn/consistent-destructuring":"error","unicorn/consistent-empty-array-spread":"error","unicorn/consistent-existence-index-check":"error","unicorn/consistent-function-scoping":"error","unicorn/custom-error-definition":"error","unicorn/empty-brace-spaces":"off","unicorn/error-message":"error","unicorn/escape-case":"error","unicorn/expiring-todo-comments":"error","unicorn/explicit-length-check":"off","unicorn/filename-case":"error","unicorn/import-style":"error","unicorn/new-for-builtins":"error","unicorn/no-abusive-eslint-disable":"error","unicorn/no-accessor-recursion":"error","unicorn/no-anonymous-default-export":"error","unicorn/no-array-callback-reference":"error","unicorn/no-array-for-each":"error","unicorn/no-array-method-this-argument":"error","unicorn/no-array-push-push":"error","unicorn/no-array-reduce":"error","unicorn/no-await-expression-member":"error","unicorn/no-await-in-promise-methods":"error","unicorn/no-console-spaces":"error","unicorn/no-document-cookie":"error","unicorn/no-empty-file":"error","unicorn/no-for-loop":"error","unicorn/no-hex-escape":"error","unicorn/no-instanceof-builtins":"error","unicorn/no-invalid-fetch-options":"error","unicorn/no-invalid-remove-event-listener":"error","unicorn/no-keyword-prefix":"off","unicorn/no-length-as-slice-end":"error","unicorn/no-lonely-if":"error","unicorn/no-magic-array-flat-depth":"error","unicorn/no-named-default":"error","unicorn/no-negated-condition":"error","unicorn/no-negation-in-equality-check":"error","unicorn/no-nested-ternary":"off","unicorn/no-new-array":"error","unicorn/no-new-buffer":"error","unicorn/no-null":"off","unicorn/no-object-as-default-parameter":"error","unicorn/no-process-exit":"error","unicorn/no-single-promise-in-promise-methods":"error","unicorn/no-static-only-class":"error","unicorn/no-thenable":"error","unicorn/no-this-assignment":"error","unicorn/no-typeof-undefined":"error","unicorn/no-unnecessary-await":"error","unicorn/no-unnecessary-polyfills":"error","unicorn/no-unreadable-array-destructuring":"error","unicorn/no-unreadable-iife":"error","unicorn/no-unused-properties":"error","unicorn/no-useless-fallback-in-spread":"error","unicorn/no-useless-length-check":"error","unicorn/no-useless-promise-resolve-reject":"error","unicorn/no-useless-spread":"error","unicorn/no-useless-switch-case":"error","unicorn/no-useless-undefined":"error","unicorn/no-zero-fractions":"error","unicorn/number-literal-case":"off","unicorn/numeric-separators-style":"error","unicorn/prefer-add-event-listener":"error","unicorn/prefer-array-find":"error","unicorn/prefer-array-flat":"error","unicorn/prefer-array-flat-map":"error","unicorn/prefer-array-index-of":"error","unicorn/prefer-array-some":"error","unicorn/prefer-at":"error","unicorn/prefer-blob-reading-methods":"error","unicorn/prefer-code-point":"error","unicorn/prefer-date-now":"error","unicorn/prefer-default-parameters":"error","unicorn/prefer-dom-node-append":"error","unicorn/prefer-dom-node-dataset":"error","unicorn/prefer-dom-node-remove":"error","unicorn/prefer-dom-node-text-content":"error","unicorn/prefer-event-target":"error","unicorn/prefer-export-from":"error","unicorn/prefer-global-this":"error","unicorn/prefer-includes":"error","unicorn/prefer-json-parse-buffer":"error","unicorn/prefer-keyboard-event-key":"error","unicorn/prefer-logical-operator-over-ternary":"error","unicorn/prefer-math-min-max":"error","unicorn/prefer-math-trunc":"error","unicorn/prefer-modern-dom-apis":"error","unicorn/prefer-modern-math-apis":"error","unicorn/prefer-module":"error","unicorn/prefer-native-coercion-functions":"error","unicorn/prefer-negative-index":"error","unicorn/prefer-node-protocol":"error","unicorn/prefer-number-properties":"error","unicorn/prefer-object-from-entries":"error","unicorn/prefer-optional-catch-binding":"error","unicorn/prefer-prototype-methods":"error","unicorn/prefer-query-selector":"error","unicorn/prefer-reflect-apply":"error","unicorn/prefer-regexp-test":"error","unicorn/prefer-set-has":"error","unicorn/prefer-set-size":"error","unicorn/prefer-spread":"error","unicorn/prefer-string-raw":"error","unicorn/prefer-string-replace-all":"error","unicorn/prefer-string-slice":"error","unicorn/prefer-string-starts-ends-with":"error","unicorn/prefer-string-trim-start-end":"error","unicorn/prefer-structured-clone":"error","unicorn/prefer-switch":"error","unicorn/prefer-ternary":"error","unicorn/prefer-top-level-await":"error","unicorn/prefer-type-error":"error","unicorn/prevent-abbreviations":"error","unicorn/relative-url-style":"error","unicorn/require-array-join-separator":"error","unicorn/require-number-to-fixed-digits-argument":"error","unicorn/require-post-message-target-origin":"error","unicorn/string-content":"error","unicorn/switch-case-braces":"error","unicorn/template-indent":"off","unicorn/text-encoding-identifier-case":"error","unicorn/throw-new-error":"error","lodash/callback-binding":"error","lodash/chain-style":[2,"as-needed"],"lodash/chaining":"error","lodash/collection-method-value":"error","lodash/collection-ordering":"error","lodash/collection-return":"error","lodash/consistent-compose":[2,"flow"],"lodash/identity-shorthand":[2,"always"],"lodash/import-scope":[2,"method"],"lodash/matches-prop-shorthand":[2,"always"],"lodash/matches-shorthand":[2,"always",3],"lodash/no-commit":"error","lodash/no-double-unwrap":"error","lodash/no-extra-args":"error","lodash/no-unbound-this":"error","lodash/path-style":[2,"array"],"lodash/prefer-compact":"error","lodash/prefer-constant":"error","lodash/prefer-filter":"error","lodash/prefer-find":"error","lodash/prefer-flat-map":"error","lodash/prefer-get":"error","lodash/prefer-immutable-method":"error","lodash/prefer-includes":[2,{includeNative:!0}],"lodash/prefer-invoke-map":"error","lodash/prefer-is-nil":"error","lodash/prefer-lodash-chain":"error","lodash/prefer-lodash-method":"error","lodash/prefer-lodash-typecheck":"error","lodash/prefer-map":"error","lodash/prefer-matches":"error","lodash/prefer-noop":"error","lodash/prefer-over-quantifier":"error","lodash/prefer-reject":"error","lodash/prefer-some":[2,{includeNative:!0}],"lodash/prefer-startswith":"error","lodash/prefer-thru":"error","lodash/prefer-times":"error","lodash/prefer-wrapper-method":"error","lodash/preferred-alias":"error","lodash/prop-shorthand":[2,"always"],"lodash/unwrap":"error","sonar/anchor-precedence":"error","sonar/argument-type":"error","sonar/arguments-order":"error","sonar/arguments-usage":"error","sonar/array-callback-without-return":"error","sonar/array-constructor":"error","sonar/arrow-function-convention":"off","sonar/assertions-in-tests":"error","sonar/aws-apigateway-public-api":"error","sonar/aws-ec2-rds-dms-public":"error","sonar/aws-ec2-unencrypted-ebs-volume":"error","sonar/aws-efs-unencrypted":"error","sonar/aws-iam-all-privileges":"error","sonar/aws-iam-all-resources-accessible":"error","sonar/aws-iam-privilege-escalation":"error","sonar/aws-iam-public-access":"error","sonar/aws-opensearchservice-domain":"error","sonar/aws-rds-unencrypted-databases":"error","sonar/aws-restricted-ip-admin-access":"error","sonar/aws-s3-bucket-granted-access":"error","sonar/aws-s3-bucket-insecure-http":"error","sonar/aws-s3-bucket-public-access":"error","sonar/aws-s3-bucket-versioning":"error","sonar/aws-sagemaker-unencrypted-notebook":"error","sonar/aws-sns-unencrypted-topics":"error","sonar/aws-sqs-unencrypted-queue":"error","sonar/bitwise-operators":"error","sonar/block-scoped-var":"error","sonar/bool-param-default":"error","sonar/call-argument-line":"error","sonar/chai-determinate-assertion":"error","sonar/class-name":"error","sonar/class-prototype":"error","sonar/code-eval":"error","sonar/cognitive-complexity":"error","sonar/comma-or-logical-or-case":"error","sonar/comment-regex":"off","sonar/concise-regex":"error","sonar/confidential-information-logging":"error","sonar/constructor-for-side-effects":"error","sonar/content-length":"error","sonar/content-security-policy":"error","sonar/cookie-no-httponly":"error","sonar/cors":"error","sonar/csrf":"error","sonar/cyclomatic-complexity":"off","sonar/declarations-in-global-scope":"error","sonar/deprecation":"error","sonar/destructuring-assignment-syntax":"error","sonar/different-types-comparison":"error","sonar/disabled-auto-escaping":"error","sonar/disabled-resource-integrity":"error","sonar/disabled-timeout":"error","sonar/duplicates-in-character-class":"error","sonar/elseif-without-else":"error","sonar/empty-string-repetition":"error","sonar/encryption-secure-mode":"error","sonar/existing-groups":"error","sonar/expression-complexity":"error","sonar/file-header":"off","sonar/file-name-differ-from-class":"error","sonar/file-permissions":"error","sonar/file-uploads":"error","sonar/fixme-tag":"error","sonar/for-in":"error","sonar/for-loop-increment-sign":"error","sonar/frame-ancestors":"error","sonar/function-inside-loop":"error","sonar/function-name":["error",{format:"^(?:[a-z][a-zA-Z0-9]*|[A-Z][A-Z0-9]*)$"}],"sonar/function-return-type":"off","sonar/future-reserved-words":"error","sonar/generator-without-yield":"error","sonar/hashing":"error","sonar/hidden-files":"error","sonar/in-operator-type-error":"error","sonar/inconsistent-function-call":"error","sonar/index-of-compare-to-positive-number":"error","sonar/insecure-cookie":"error","sonar/insecure-jwt-token":"error","sonar/inverted-assertion-arguments":"error","sonar/jsx-no-leaked-render":"error","sonar/label-position":"error","sonar/link-with-target-blank":"error","sonar/max-lines":"error","sonar/max-lines-per-function":"error","sonar/max-switch-cases":"error","sonar/max-union-size":"off","sonar/misplaced-loop-counter":"error","sonar/nested-control-flow":"error","sonar/new-operator-misuse":"error","sonar/no-all-duplicated-branches":"error","sonar/no-alphabetical-sort":"error","sonar/no-angular-bypass-sanitization":"error","sonar/no-array-delete":"error","sonar/no-associative-arrays":"error","sonar/no-async-constructor":"error","sonar/no-built-in-override":"error","sonar/no-case-label-in-switch":"error","sonar/no-clear-text-protocols":"error","sonar/no-code-after-done":"error","sonar/no-collapsible-if":"error","sonar/no-collection-size-mischeck":"error","sonar/no-commented-code":"error","sonar/no-control-regex":"error","sonar/no-dead-store":"error","sonar/no-delete-var":"error","sonar/no-duplicate-in-composite":"error","sonar/no-duplicate-string":"error","sonar/no-duplicated-branches":"error","sonar/no-element-overwrite":"error","sonar/no-empty-after-reluctant":"error","sonar/no-empty-alternatives":"error","sonar/no-empty-character-class":"error","sonar/no-empty-collection":"error","sonar/no-empty-group":"error","sonar/no-empty-test-file":"error","sonar/no-equals-in-for-termination":"error","sonar/no-exclusive-tests":"error","sonar/no-extra-arguments":"error","sonar/no-fallthrough":"error","sonar/no-for-in-iterable":"error","sonar/no-function-declaration-in-block":"error","sonar/no-global-this":"error","sonar/no-globals-shadowing":"error","sonar/no-gratuitous-expressions":"error","sonar/no-hardcoded-ip":"error","sonar/no-hardcoded-passwords":"error","sonar/no-hardcoded-secrets":"error","sonar/no-hook-setter-in-body":"error","sonar/no-identical-conditions":"error","sonar/no-identical-expressions":"error","sonar/no-identical-functions":"error","sonar/no-ignored-exceptions":"error","sonar/no-ignored-return":"error","sonar/no-implicit-dependencies":"off","sonar/no-implicit-global":"error","sonar/no-in-misuse":"error","sonar/no-incomplete-assertions":"error","sonar/no-inconsistent-returns":"off","sonar/no-incorrect-string-concat":"error","sonar/no-internal-api-use":"error","sonar/no-intrusive-permissions":"error","sonar/no-invalid-await":"error","sonar/no-invalid-regexp":"error","sonar/no-invariant-returns":"error","sonar/no-inverted-boolean-check":"error","sonar/no-ip-forward":"error","sonar/no-labels":"error","sonar/no-literal-call":"error","sonar/no-mime-sniff":"error","sonar/no-misleading-array-reverse":"error","sonar/no-misleading-character-class":"error","sonar/no-mixed-content":"error","sonar/no-nested-assignment":"error","sonar/no-nested-conditional":"error","sonar/no-nested-functions":"error","sonar/no-nested-incdec":"error","sonar/no-nested-switch":"error","sonar/no-nested-template-literals":"error","sonar/no-one-iteration-loop":"error","sonar/no-os-command-from-path":"error","sonar/no-parameter-reassignment":"error","sonar/no-primitive-wrappers":"error","sonar/no-redundant-assignments":"error","sonar/no-redundant-boolean":"error","sonar/no-redundant-jump":"error","sonar/no-redundant-optional":"error","sonar/no-reference-error":"error","sonar/no-referrer-policy":"error","sonar/no-regex-spaces":"error","sonar/no-require-or-define":"error","sonar/no-return-type-any":"error","sonar/no-same-argument-assert":"error","sonar/no-same-line-conditional":"error","sonar/no-selector-parameter":"error","sonar/no-skipped-tests":"error","sonar/no-small-switch":"error","sonar/no-sonar-comments":"error","sonar/no-table-as-layout":"error","sonar/no-try-promise":"error","sonar/no-undefined-argument":"error","sonar/no-undefined-assignment":"off","sonar/no-unenclosed-multiline-block":"error","sonar/no-uniq-key":"error","sonar/no-unsafe-unzip":"error","sonar/no-unthrown-error":"error","sonar/no-unused-collection":"error","sonar/no-unused-function-argument":"error","sonar/no-unused-vars":"error","sonar/no-use-of-empty-return-value":"error","sonar/no-useless-catch":"error","sonar/no-useless-increment":"error","sonar/no-useless-intersection":"error","sonar/no-useless-react-setstate":"error","sonar/no-variable-usage-before-declaration":"error","sonar/no-weak-cipher":"error","sonar/no-weak-keys":"error","sonar/no-wildcard-import":"error","sonar/non-existent-operator":"error","sonar/non-number-in-arithmetic-expression":"error","sonar/null-dereference":"error","sonar/object-alt-content":"error","sonar/operation-returning-nan":"error","sonar/os-command":"error","sonar/post-message":"error","sonar/prefer-default-last":"error","sonar/prefer-immediate-return":"error","sonar/prefer-object-literal":"error","sonar/prefer-promise-shorthand":"error","sonar/prefer-read-only-props":"error","sonar/prefer-regexp-exec":"error","sonar/prefer-single-boolean-return":"error","sonar/prefer-type-guard":"error","sonar/prefer-while":"error","sonar/production-debug":"error","sonar/pseudo-random":"error","sonar/public-static-readonly":"error","sonar/publicly-writable-directories":"error","sonar/reduce-initial-value":"error","sonar/redundant-type-aliases":"error","sonar/regex-complexity":"error","sonar/session-regeneration":"error","sonar/shorthand-property-grouping":"off","sonar/single-char-in-character-classes":"error","sonar/single-character-alternation":"error","sonar/slow-regex":"error","sonar/sql-queries":"error","sonar/stable-tests":"error","sonar/stateful-regex":"error","sonar/strict-transport-security":"error","sonar/strings-comparison":"error","sonar/super-invocation":"error","sonar/table-header":"error","sonar/table-header-reference":"error","sonar/test-check-exception":"error","sonar/todo-tag":"off","sonar/too-many-break-or-continue-in-loop":"error","sonar/unicode-aware-regex":"error","sonar/unused-import":"error","sonar/unused-named-groups":"error","sonar/unverified-certificate":"error","sonar/unverified-hostname":"error","sonar/updated-const-var":"error","sonar/updated-loop-counter":"error","sonar/use-type-alias":"error","sonar/values-not-convertible-to-numbers":"error","sonar/variable-name":"error","sonar/void-use":"error","sonar/weak-ssl":"error","sonar/x-powered-by":"error","sonar/xml-parser-xxe":"error","tailwind/classnames-order":"error","tailwind/enforces-negative-arbitrary-values":"error","tailwind/enforces-shorthand":"error","tailwind/migration-from-tailwind-2":"error","tailwind/no-arbitrary-value":"error","tailwind/no-contradicting-classname":"error","tailwind/no-custom-classname":"off","tailwind/no-unnecessary-arbitrary-value":"error","perfectionist/sort-array-includes":"error","perfectionist/sort-classes":"error","perfectionist/sort-decorators":"error","perfectionist/sort-enums":"error","perfectionist/sort-exports":"error","perfectionist/sort-heritage-clauses":"error","perfectionist/sort-imports":["error",{groups:["type",["builtin","external"],"internal-type","internal",["parent-type","sibling-type","index-type"],["parent","sibling","index"],"object","unknown"],newlinesBetween:"always"}],"perfectionist/sort-interfaces":"error","perfectionist/sort-intersection-types":"error","perfectionist/sort-jsx-props":["error",{groups:["shorthand","multiline"]}],"perfectionist/sort-maps":"error","perfectionist/sort-modules":"error","perfectionist/sort-named-exports":"error","perfectionist/sort-named-imports":"error","perfectionist/sort-object-types":"error","perfectionist/sort-objects":["error",{partitionByComment:!0}],"perfectionist/sort-sets":"error","perfectionist/sort-switch-case":["error",{order:"asc",type:"alphabetical"}],"perfectionist/sort-union-types":"error","perfectionist/sort-variable-declarations":["error",{order:"asc",type:"alphabetical"}],"@tanstack/query/exhaustive-deps":"error","@tanstack/query/infinite-query-property-order":"error","@tanstack/query/no-rest-destructuring":"error","@tanstack/query/no-unstable-deps":"error","@tanstack/query/stable-query-client":"error","@tanstack/router/create-route-property-order":"error","a11y/alt-text":"error","a11y/anchor-ambiguous-text":"error","a11y/anchor-has-content":"error","a11y/anchor-is-valid":"error","a11y/aria-activedescendant-has-tabindex":"error","a11y/aria-props":"error","a11y/aria-proptypes":"error","a11y/aria-role":"error","a11y/aria-unsupported-elements":"error","a11y/autocomplete-valid":"error","a11y/click-events-have-key-events":"error","a11y/control-has-associated-label":"off","a11y/heading-has-content":"error","a11y/html-has-lang":"error","a11y/iframe-has-title":"error","a11y/img-redundant-alt":"error","a11y/interactive-supports-focus":"error","a11y/label-has-associated-control":"error","a11y/lang":"error","a11y/media-has-caption":"off","a11y/mouse-events-have-key-events":"error","a11y/no-access-key":"error","a11y/no-aria-hidden-on-focusable":"error","a11y/no-autofocus":"error","a11y/no-distracting-elements":"error","a11y/no-interactive-element-to-noninteractive-role":"error","a11y/no-noninteractive-element-interactions":"error","a11y/no-noninteractive-element-to-interactive-role":"error","a11y/no-noninteractive-tabindex":"error","a11y/no-redundant-roles":"error","a11y/no-static-element-interactions":"error","a11y/prefer-tag-over-role":"error","a11y/role-has-required-aria-props":"error","a11y/role-supports-aria-props":"error","a11y/scope":"error","a11y/tabindex-no-positive":"error","cspell/spellchecker":["error",{cspell:{words:["typicode","toolbelt","taze","ethang","TSESTree","Boop","cldr","astro","laravel","qwik","sitecore","uswds","mediat","Packt","Academind","Udemy","Colte","Bootcamp","HTMX","MERN","Nuxt","Credly","Sterett","Beyonder","hotspot","lqip","Hawn","nextui","speculationrules","zustand","vinxi","datasource","turso","supabase","solidjs","labelledby","svix","blockqoute","cortexjs","mathrm","nums","lifecycles","krausest","Signalis","Plass","Iteree","Sonner","cmdk","ngsw","dexie","leetcode","ngsrc","sindresorhus","rogan","heroui","millis"]}}]}},{files:["**/*.md"],plugins:{markdown:m},rules:{"markdown/fenced-code-language":"error","markdown/heading-increment":"error","markdown/no-duplicate-headings":"error","markdown/no-empty-links":"error","markdown/no-html":"error","markdown/no-invalid-label-refs":"error","markdown/no-missing-label-refs":"error"}},{files:["**/*.css"],language:"css/css",plugins:{css:p},rules:{"css/no-duplicate-imports":"error","css/no-empty-blocks":"error","css/no-invalid-at-rules":"off","css/no-invalid-properties":"error"}},{files:["**/*.json"],language:"json/json",plugins:{json:r},rules:{"json/no-duplicate-keys":"error","json/no-empty-keys":"error","json/no-unnormalized-keys":"error","json/no-unsafe-values":"error","json/sort-keys":"error","json/top-level-interop":"error"}},{files:["**/*.jsonc"],language:"json/jsonc",plugins:{json:r},rules:{"json/no-duplicate-keys":"error","json/no-empty-keys":"error","json/no-unnormalized-keys":"error","json/no-unsafe-values":"error","json/sort-keys":"error","json/top-level-interop":"error"}},{files:["**/*.json5"],language:"json/json5",plugins:{json:r},rules:{"json/no-duplicate-keys":"error","json/no-empty-keys":"error","json/no-unnormalized-keys":"error","json/no-unsafe-values":"error","json/sort-keys":"error","json/top-level-interop":"error"}},u,f);export{F as default};
|
|
2
|
-
|
|
1
|
+
import config from "./src/eslint.config.js";
|
|
2
|
+
import tseslint from "typescript-eslint";
|
|
3
|
+
|
|
4
|
+
export default tseslint.config(
|
|
5
|
+
{
|
|
6
|
+
ignores: [
|
|
7
|
+
"dist",
|
|
8
|
+
"src/README.md",
|
|
9
|
+
"src/eslint.config.js",
|
|
10
|
+
"src/config.solid.js",
|
|
11
|
+
"src/config.react.js",
|
|
12
|
+
"src/config.astro.js",
|
|
13
|
+
"src/config.angular.js",
|
|
14
|
+
"**/*.d.ts",
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
...config,
|
|
18
|
+
{
|
|
19
|
+
languageOptions: {
|
|
20
|
+
parserOptions: {
|
|
21
|
+
project: true,
|
|
22
|
+
tsconfigRootDir: import.meta.dirname,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
);
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"@angular-eslint/eslint-plugin-template": "^19.1.0",
|
|
10
10
|
"@angular-eslint/template-parser": "^19.1.0",
|
|
11
11
|
"@cspell/eslint-plugin": "^8.17.5",
|
|
12
|
-
"@eslint-react/eslint-plugin": "^1.
|
|
12
|
+
"@eslint-react/eslint-plugin": "^1.28.0",
|
|
13
13
|
"@eslint/compat": "^1.2.7",
|
|
14
14
|
"@eslint/css": "0.2.0",
|
|
15
15
|
"@eslint/js": "^9.21.0",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"@eslint/markdown": "^6.2.2",
|
|
18
18
|
"@tanstack/eslint-plugin-query": "^5.66.1",
|
|
19
19
|
"@tanstack/eslint-plugin-router": "^1.105.0",
|
|
20
|
-
"@typescript-eslint/parser": "^8.
|
|
20
|
+
"@typescript-eslint/parser": "^8.25.0",
|
|
21
21
|
"angular-eslint": "19.1.0",
|
|
22
22
|
"eslint": "^9.21.0",
|
|
23
|
-
"eslint-config-prettier": "^10.0.
|
|
23
|
+
"eslint-config-prettier": "^10.0.2",
|
|
24
24
|
"eslint-plugin-astro": "^1.3.1",
|
|
25
25
|
"eslint-plugin-barrel-files": "^3.0.1",
|
|
26
26
|
"eslint-plugin-compat": "^6.0.2",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"eslint-plugin-tailwindcss": "^3.18.0",
|
|
38
38
|
"eslint-plugin-unicorn": "^57.0.0",
|
|
39
39
|
"prettier": "^3.5.2",
|
|
40
|
-
"typescript-eslint": "^8.
|
|
40
|
+
"typescript-eslint": "^8.25.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@ethang/markdown-generator": "^1.1.5",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"lint": "eslint . --fix && prettier src --write"
|
|
65
65
|
},
|
|
66
66
|
"type": "module",
|
|
67
|
-
"version": "21.
|
|
67
|
+
"version": "21.4.0"
|
|
68
68
|
}
|
package/src/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Relentless. Unapologetic.
|
|
2
|
+
|
|
3
|
+
[View Config](https://eslint-config-ethang.pages.dev/rules)
|
|
4
|
+
|
|
5
|
+
> [!CAUTION]
|
|
6
|
+
> Prettier is already included for styling!
|
|
7
|
+
|
|
8
|
+
- 728 errored rules.
|
|
9
|
+
- 240 rules from [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md)
|
|
10
|
+
- 141 rules from [@eslint/js](https://github.com/eslint/eslint/tree/main/packages/js)
|
|
11
|
+
- 120 rules from [sindresorhus/eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn)
|
|
12
|
+
- 106 rules from [@typescript/eslint](https://github.com/typescript-eslint/typescript-eslint)
|
|
13
|
+
- 34 rules from [jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y)
|
|
14
|
+
- 32 rules from [eslint-plugin-lodash](https://github.com/wix-incubator/eslint-plugin-lodash)
|
|
15
|
+
- 20 rules from [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist)
|
|
16
|
+
- 7 rules from [eslint-plugin-tailwindcss](https://github.com/francoismassart/eslint-plugin-tailwindcss)
|
|
17
|
+
- 7 rules from [@eslint/markdown](https://github.com/eslint/markdown)
|
|
18
|
+
- 6 rules from [@eslint/json](https://github.com/eslint/json)
|
|
19
|
+
- 5 rules from [@tanstack/eslint-plugin-query](https://tanstack.com/query/latest/docs/eslint/eslint-plugin-query)
|
|
20
|
+
- 3 rules from [eslint-plugin-barrel-files](https://github.com/thepassle/eslint-plugin-barrel-files)
|
|
21
|
+
- 3 rules from [@eslint/css](https://github.com/eslint/css)
|
|
22
|
+
- 1 rule from [eslint-plugin-depend](https://github.com/es-tooling/eslint-plugin-depend/tree/main)
|
|
23
|
+
- 1 rule from [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat)
|
|
24
|
+
- 1 rule from [@tanstack/eslint-plugin-router](https://tanstack.com/router/latest/docs/eslint/eslint-plugin-router)
|
|
25
|
+
- 1 rule from [@cspell/eslint-plugin](https://github.com/streetsidesoftware/cspell/tree/main/packages/cspell-eslint-plugin)
|
|
26
|
+
|
|
27
|
+
# Add Even More!
|
|
28
|
+
|
|
29
|
+
- 65 rules for **Angular**
|
|
30
|
+
- `import angularConfig from "@ethang/eslint-config/config.angular.js";`
|
|
31
|
+
- 38 rules from [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/README.md)
|
|
32
|
+
- 27 rules from [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/README.md)
|
|
33
|
+
- 52 rules for **Astro**
|
|
34
|
+
- `import astroConfig from "@ethang/eslint-config/config.astro.js";`
|
|
35
|
+
- 52 rules from [eslint-plugin-astro](https://github.com/ota-meshi/eslint-plugin-astro)
|
|
36
|
+
- 88 rules for **React**
|
|
37
|
+
- `import reactConfig from "@ethang/eslint-config/config.react.js";`
|
|
38
|
+
- 85 rules from [@eslint-react/eslint-plugin](https://eslint-react.xyz/)
|
|
39
|
+
- 2 rules from [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks)
|
|
40
|
+
- 1 rules from [eslint-plugin-react-compiler](https://github.com/facebook/react/tree/main/compiler/packages/eslint-plugin-react-compiler)
|
|
41
|
+
- 18 rules for **Solid**
|
|
42
|
+
- `import solidConfig from "@ethang/eslint-config/config.solid.js";`
|
|
43
|
+
- 18 rules from [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid)
|
|
44
|
+
|
|
45
|
+
# Install
|
|
46
|
+
|
|
47
|
+
`pnpm i -D eslint typescript-eslint @ethang/eslint-config`
|
|
48
|
+
|
|
49
|
+
**Requires TypesScript and tsconfig.json at root directory.**
|
|
50
|
+
|
|
51
|
+
# Config
|
|
52
|
+
|
|
53
|
+
In **eslint.config.js**
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
import config from "@ethang/eslint-config/eslint.config.js";
|
|
57
|
+
import tseslint from "typescript-eslint";
|
|
58
|
+
import astroConfig from "@ethang/eslint-config/config.astro.js"; // OPTIONAL
|
|
59
|
+
import reactConfig from "@ethang/eslint-config/config.react.js"; // OPTIONAL
|
|
60
|
+
|
|
61
|
+
export default tseslint.config(
|
|
62
|
+
{
|
|
63
|
+
ignores: [], // Ignored files apply to all following configs
|
|
64
|
+
},
|
|
65
|
+
...config,
|
|
66
|
+
...astroConfig,
|
|
67
|
+
...reactConfig,
|
|
68
|
+
{
|
|
69
|
+
languageOptions: {
|
|
70
|
+
parserOptions: {
|
|
71
|
+
project: true,
|
|
72
|
+
tsconfigRootDir: import.meta.dirname,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
rules: {
|
|
76
|
+
// Override rules from above configs
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
);
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Scripts**
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
"scripts": {
|
|
86
|
+
"lint": "eslint",
|
|
87
|
+
"lint:fix": "eslint . --fix",
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Browserslist**
|
|
92
|
+
|
|
93
|
+
This config will also lint for browserslist features. Make sure to set this in package.json. [More info.](https://github.com/browserslist/browserslist)
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
"browserslist": [
|
|
97
|
+
"defaults and fully supports es6-module",
|
|
98
|
+
"maintained node versions"
|
|
99
|
+
]
|
|
100
|
+
```
|