@anolilab/eslint-config 11.0.3 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +12 -5
  3. package/bin/generate-eslint-cofig.js +2 -0
  4. package/dist/chunk-KP2UPQGN.js +11 -0
  5. package/dist/chunk-KP2UPQGN.js.map +1 -0
  6. package/dist/chunk-MFE6DF6Y.js +8 -0
  7. package/dist/config/best-practices.js +1 -1
  8. package/dist/config/errors.js +1 -1
  9. package/dist/config/es6.js +1 -1
  10. package/dist/config/plugins/antfu.js +1 -1
  11. package/dist/config/plugins/array-func.js +1 -1
  12. package/dist/config/plugins/ava.js +1 -1
  13. package/dist/config/plugins/babel.js +3 -3
  14. package/dist/config/plugins/compat.js +1 -1
  15. package/dist/config/plugins/cypress.js +1 -1
  16. package/dist/config/plugins/editorconfig.d.ts +5 -0
  17. package/dist/config/plugins/editorconfig.js +10 -0
  18. package/dist/config/plugins/editorconfig.js.map +1 -0
  19. package/dist/config/plugins/es.js +1 -1
  20. package/dist/config/plugins/eslint-comments.js +1 -1
  21. package/dist/config/plugins/etc.js +1 -1
  22. package/dist/config/plugins/html.js +1 -1
  23. package/dist/config/plugins/import.js +1 -1
  24. package/dist/config/plugins/jest-async.js +1 -1
  25. package/dist/config/plugins/jest-dom.js +1 -1
  26. package/dist/config/plugins/jest-formatting.js +1 -1
  27. package/dist/config/plugins/jest.js +1 -1
  28. package/dist/config/plugins/jsdoc.js +1 -1
  29. package/dist/config/plugins/jsonc.js +1 -1
  30. package/dist/config/plugins/jsx-a11y.js +1 -1
  31. package/dist/config/plugins/lodash-fp.js +1 -1
  32. package/dist/config/plugins/lodash.js +1 -1
  33. package/dist/config/plugins/markdown.js +1 -1
  34. package/dist/config/plugins/mdx.js +1 -1
  35. package/dist/config/plugins/no-extend-native.js +1 -1
  36. package/dist/config/plugins/no-loops.js +1 -1
  37. package/dist/config/plugins/no-secrets.js +1 -1
  38. package/dist/config/plugins/no-unsanitized.js +1 -1
  39. package/dist/config/plugins/node.js +1 -1
  40. package/dist/config/plugins/perfectionist.js +1 -1
  41. package/dist/config/plugins/playwright.js +1 -1
  42. package/dist/config/plugins/promise.js +1 -1
  43. package/dist/config/plugins/react-hooks.js +1 -1
  44. package/dist/config/plugins/react-redux.js +1 -1
  45. package/dist/config/plugins/react-usememo.js +1 -1
  46. package/dist/config/plugins/react.js +3 -3
  47. package/dist/config/plugins/regexp.js +1 -1
  48. package/dist/config/plugins/security.js +1 -1
  49. package/dist/config/plugins/simple-import-sort.js +1 -1
  50. package/dist/config/plugins/sonarjs.js +1 -1
  51. package/dist/config/plugins/storybook.js +1 -1
  52. package/dist/config/plugins/tailwindcss.js +1 -1
  53. package/dist/config/plugins/tanstack-query.js +1 -1
  54. package/dist/config/plugins/testing-library-dom.js +1 -1
  55. package/dist/config/plugins/testing-library-react.js +1 -1
  56. package/dist/config/plugins/toml.js +1 -1
  57. package/dist/config/plugins/tsdoc.js +1 -1
  58. package/dist/config/plugins/typescript.js +3 -3
  59. package/dist/config/plugins/unicorn.js +1 -1
  60. package/dist/config/plugins/vitest.js +1 -1
  61. package/dist/config/plugins/yml.js +1 -1
  62. package/dist/config/plugins/you-dont-need-lodash-underscore.js +1 -1
  63. package/dist/config/plugins/you-dont-need-momentjs.js +1 -1
  64. package/dist/config/plugins/zod.js +1 -1
  65. package/dist/config/style.js +3 -3
  66. package/dist/config/variables.js +1 -1
  67. package/dist/define-config.d.ts +1 -0
  68. package/dist/define-config.js +17 -0
  69. package/dist/define-config.js.map +1 -0
  70. package/dist/globals.js +1 -1
  71. package/dist/index.js +7 -7
  72. package/dist/index.js.map +1 -1
  73. package/dist/postinstall.js +16 -14
  74. package/dist/postinstall.js.map +1 -1
  75. package/dist/typescript-type-checking.js +1 -1
  76. package/package.json +17 -4
  77. package/dist/chunk-3NVDJZNH.js +0 -7
  78. package/dist/chunk-CATTWGKB.js +0 -11
  79. package/dist/chunk-CATTWGKB.js.map +0 -1
  80. /package/dist/{chunk-3NVDJZNH.js.map → chunk-MFE6DF6Y.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('../../chunk-3NVDJZNH.js');
3
+ require('../../chunk-MFE6DF6Y.js');
4
4
  var packageJsonUtils = require('@anolilab/package-json-utils');
5
5
 
6
6
  if(global.anolilabEslintConfigNodeRules===void 0&&packageJsonUtils.pkg?.engines?.node){let n=packageJsonUtils.pkg.engines.node;global.anolilabEslintConfigNodeRules={"n/no-unsupported-features/es-builtins":["error",{version:n}],"n/no-unsupported-features/es-syntax":["error",{ignores:["modules"],version:n}],"n/no-unsupported-features/node-builtins":["error",{version:n}]};}var o={env:{node:!0},extends:["plugin:n/recommended"],parserOptions:{ecmaVersion:2021},plugins:["n"],rules:{"global-require":"error","n/callback-return":"off","n/file-extension-in-import":"off","n/handle-callback-err":"off","n/no-extraneous-import":"off","n/no-extraneous-require":"off","n/no-missing-import":"off","n/no-missing-require":"off","n/no-mixed-requires":["error",{allowCall:!0,grouping:!0}],"n/no-new-require":"error","n/no-process-env":"off","n/no-process-exit":"off","n/no-restricted-modules":"off","n/no-sync":"off","n/no-unpublished-bin":"error","n/process-exit-as-throw":"error","no-buffer-constructor":"error","no-path-concat":"error",...global.anolilabEslintConfigNodeRules}},i=o;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkSEYYGHPU_js = require('../../chunk-SEYYGHPU.js');
4
4
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
5
- require('../../chunk-3NVDJZNH.js');
5
+ require('../../chunk-MFE6DF6Y.js');
6
6
  var packageJsonUtils = require('@anolilab/package-json-utils');
7
7
 
8
8
  !global.hasAnolilabEsLintConfigPerfectionistTypescriptSortKeys&&(packageJsonUtils.hasDependency("eslint-plugin-typescript-sort-keys")||packageJsonUtils.hasDevDependency("eslint-plugin-typescript-sort-keys"))&&(global.hasAnolilabEsLintConfigPerfectionistTypescriptSortKeys=!0,chunkSEYYGHPU_js.b(`
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('../../chunk-3NVDJZNH.js');
3
+ require('../../chunk-MFE6DF6Y.js');
4
4
  var packageJsonUtils = require('@anolilab/package-json-utils');
5
5
 
6
6
  !global.hasAnolilabEsLintConfigPlaywrightJest&&(packageJsonUtils.hasDependency("jest")||packageJsonUtils.hasDevDependency("jest")||packageJsonUtils.hasDevDependency("eslint-plugin-jest")||packageJsonUtils.hasDevDependency("eslint-plugin-jest")||packageJsonUtils.hasDevDependency("@types/jest")||packageJsonUtils.hasDevDependency("@types/jest"))&&(global.hasAnolilabEsLintConfigPlaywrightJest=!0);var s={env:{browser:!0,es6:!0,node:!0},overrides:[{extends:[global.hasAnolilabEsLintConfigPlaywrightJest?"plugin:playwright/jest-playwright":"plugin:playwright/recommended"],files:["**/e2e/**/*.test.{js,ts}"],rules:{"@typescript-eslint/no-empty-function":"off","@typescript-eslint/no-non-null-assertion":"off","@typescript-eslint/no-object-literal-type-assertion":"off"}}]},i=s;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('../../chunk-3NVDJZNH.js');
3
+ require('../../chunk-MFE6DF6Y.js');
4
4
 
5
5
  var e={extends:["plugin:promise/recommended"],plugins:["promise"],rules:{"promise/prefer-await-to-callbacks":"off","promise/prefer-await-to-then":"off"}},o=e;
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var r=chunkWG6GTAIA_js.a("jsx_and_tsx",{parserOptions:{ecmaFeatures:{jsx:!0}},plugins:["react-hooks"],rules:{"react-hooks/exhaustive-deps":"error","react-hooks/rules-of-hooks":"error"}}),t=r;
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var r=chunkWG6GTAIA_js.a("jsx_and_tsx",{extends:["plugin:react-redux/recommended"],plugins:["react-redux"],rules:{"react-redux/mapStateToProps-prefer-selectors":"off","react-redux/prefer-separate-component-file":"off"}}),o=r;
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var r=chunkWG6GTAIA_js.a("jsx_and_tsx",{parserOptions:{ecmaFeatures:{jsx:!0}},plugins:["@arthurgeron/react-usememo"],rules:{"@arthurgeron/react-usememo/require-usememo":"error"}}),o=r;
7
7
 
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkSEYYGHPU_js = require('../../chunk-SEYYGHPU.js');
4
- var chunkCATTWGKB_js = require('../../chunk-CATTWGKB.js');
4
+ var chunkKP2UPQGN_js = require('../../chunk-KP2UPQGN.js');
5
5
  var chunkO7JDC6TD_js = require('../../chunk-O7JDC6TD.js');
6
6
  var chunkOCCLNRZC_js = require('../../chunk-OCCLNRZC.js');
7
7
  require('../../chunk-WG6GTAIA.js');
8
- require('../../chunk-3NVDJZNH.js');
8
+ require('../../chunk-MFE6DF6Y.js');
9
9
  var packageJsonUtils = require('@anolilab/package-json-utils');
10
10
  var u = require('find-up');
11
11
  var process = require('process');
@@ -15,7 +15,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
15
 
16
16
  var u__default = /*#__PURE__*/_interopDefault(u);
17
17
 
18
- var g=chunkCATTWGKB_js.a.overrides[0].rules,s=g["no-underscore-dangle"];!global.hasAnolilabEsLintConfigPrettier&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.hasAnolilabEsLintConfigPrettier=!0);global.anolilabEslintConfigReactPrettierRules===void 0&&global.hasAnolilabEsLintConfigPrettier&&(global.anolilabEslintConfigReactPrettierRules={"react/jsx-child-element-spacing":"off","react/jsx-closing-bracket-location":"off","react/jsx-closing-tag-location":"off","react/jsx-curly-newline":"off","react/jsx-curly-spacing":"off","react/jsx-equals-spacing":"off","react/jsx-first-prop-new-line":"off","react/jsx-indent":"off","react/jsx-indent-props":"off","react/jsx-max-props-per-line":"off","react/jsx-newline":"off","react/jsx-one-expression-per-line":"off","react/jsx-props-no-multi-spaces":"off","react/jsx-tag-spacing":"off","react/jsx-wrap-multilines":"off"});var c=(()=>{if(!global.hasAnolilabEsLintConfigReactRuntimePath){let e=typeof u__default.default.sync("node_modules/react/jsx-runtime.js")=="string",o=process.env.DISABLE_INFO_ON_DISABLING_JSX_REACT_RULE!=="true";o&&chunkOCCLNRZC_js.a.info_on_disabling_jsx_react_rule!==void 0&&(o=chunkOCCLNRZC_js.a.info_on_disabling_jsx_react_rule),o&&e&&chunkSEYYGHPU_js.b(`
18
+ var g=chunkKP2UPQGN_js.a.overrides[0].rules,s=g["no-underscore-dangle"];!global.hasAnolilabEsLintConfigPrettier&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.hasAnolilabEsLintConfigPrettier=!0);global.anolilabEslintConfigReactPrettierRules===void 0&&global.hasAnolilabEsLintConfigPrettier&&(global.anolilabEslintConfigReactPrettierRules={"react/jsx-child-element-spacing":"off","react/jsx-closing-bracket-location":"off","react/jsx-closing-tag-location":"off","react/jsx-curly-newline":"off","react/jsx-curly-spacing":"off","react/jsx-equals-spacing":"off","react/jsx-first-prop-new-line":"off","react/jsx-indent":"off","react/jsx-indent-props":"off","react/jsx-max-props-per-line":"off","react/jsx-newline":"off","react/jsx-one-expression-per-line":"off","react/jsx-props-no-multi-spaces":"off","react/jsx-tag-spacing":"off","react/jsx-wrap-multilines":"off"});var c=(()=>{if(!global.hasAnolilabEsLintConfigReactRuntimePath){let e=typeof u__default.default.sync("node_modules/react/jsx-runtime.js")=="string",o=process.env.DISABLE_INFO_ON_DISABLING_JSX_REACT_RULE!=="true";o&&chunkOCCLNRZC_js.a.info_on_disabling_jsx_react_rule!==void 0&&(o=chunkOCCLNRZC_js.a.info_on_disabling_jsx_react_rule),o&&e&&chunkSEYYGHPU_js.b(`
19
19
  @anolilab/eslint-config found react jsx-runtime.
20
20
 
21
21
  Following rules are disabled: "react/jsx-uses-react" and "react/react-in-jsx-scope".
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var n=chunkWG6GTAIA_js.a("all",{extends:["plugin:regexp/recommended"],plugins:["regexp"]}),t=n;
7
7
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('../../chunk-3NVDJZNH.js');
3
+ require('../../chunk-MFE6DF6Y.js');
4
4
 
5
5
  var e={extends:["plugin:security/recommended"],plugins:["@rushstack/eslint-plugin-security"],rules:{"@rushstack/security/no-unsafe-regexp":process.env.TRUSTED_TOOL?"off":"warn"}},n=e;
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var o=chunkWG6GTAIA_js.a("all",{env:{es6:!0},parserOptions:{sourceType:"module"},plugins:["simple-import-sort"],rules:{"import/first":"error","import/newline-after-import":"error","import/no-duplicates":"error","simple-import-sort/exports":"off","simple-import-sort/imports":"off"}}),t=o;
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var e=chunkWG6GTAIA_js.b([{config:{excludedFiles:["**/?(*.)+(test).{js,jsx,ts,tsx}","*.stories.{js,ts,jsx,tsx}"],extends:["plugin:sonarjs/recommended"],rules:{"sonarjs/no-nested-template-literals":"off"}},type:"all"},{config:{rules:{"sonarjs/cognitive-complexity":["error",15],"sonarjs/no-duplicate-string":"off"}},type:"js_and_ts"},{config:{parser:"espree",parserOptions:{ecmaVersion:2020},rules:{"sonarjs/no-all-duplicated-branches":"off","sonarjs/no-duplicate-string":"off"}},type:"javascript"}]),o=e;
7
7
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('../../chunk-3NVDJZNH.js');
3
+ require('../../chunk-MFE6DF6Y.js');
4
4
 
5
5
  var e={env:{browser:!0,es6:!0,node:!0},overrides:[{extends:["plugin:storybook/recommended"],files:["**/*.stories.{ts,tsx,mdx}"]}]},t=e;
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var t=chunkWG6GTAIA_js.a("jsx_and_tsx",{extends:["plugin:tailwindcss/recommended"],plugins:["tailwindcss"]},{browser:!0,es6:!0,node:!0}),i=t;
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var t=chunkWG6GTAIA_js.a("all",{extends:["plugin:@tanstack/eslint-plugin-query/recommended"]}),i=t;
7
7
 
@@ -3,7 +3,7 @@
3
3
  var chunkSEYYGHPU_js = require('../../chunk-SEYYGHPU.js');
4
4
  var chunkOCCLNRZC_js = require('../../chunk-OCCLNRZC.js');
5
5
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
6
- require('../../chunk-3NVDJZNH.js');
6
+ require('../../chunk-MFE6DF6Y.js');
7
7
 
8
8
  global.hasAnolilabEsLintTestConfigLoaded||(chunkOCCLNRZC_js.a.info_on_testing_library_framework!==!1&&chunkSEYYGHPU_js.a('testing-library: loading "dom" ruleset'),global.hasAnolilabEsLintTestConfigLoaded=!0);var e=chunkWG6GTAIA_js.a("tests",{extends:["plugin:testing-library/dom"]},{browser:!0,es6:!0,node:!0}),s=e;
9
9
 
@@ -3,7 +3,7 @@
3
3
  var chunkSEYYGHPU_js = require('../../chunk-SEYYGHPU.js');
4
4
  var chunkOCCLNRZC_js = require('../../chunk-OCCLNRZC.js');
5
5
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
6
- require('../../chunk-3NVDJZNH.js');
6
+ require('../../chunk-MFE6DF6Y.js');
7
7
 
8
8
  global.hasAnolilabEsLintTestConfigLoaded||(chunkOCCLNRZC_js.a.info_on_testing_library_framework!==!1&&chunkSEYYGHPU_js.a('testing-library: loading "react" ruleset'),global.hasAnolilabEsLintTestConfigLoaded=!0);var o=chunkWG6GTAIA_js.a("tests",{extends:["plugin:testing-library/react"]},{browser:!0,es6:!0,node:!0}),a=o;
9
9
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('../../chunk-3NVDJZNH.js');
3
+ require('../../chunk-MFE6DF6Y.js');
4
4
 
5
5
  var e={overrides:[{extends:["plugin:toml/standard"],files:["*.toml"],parser:"toml-eslint-parser"}]},t=e;
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var r=chunkWG6GTAIA_js.a("typescript",{plugins:["eslint-plugin-tsdoc"],rules:{"tsdoc/syntax":"error"}}),i=r;
7
7
 
@@ -2,17 +2,17 @@
2
2
 
3
3
  var chunkZFO6DTP4_js = require('../../chunk-ZFO6DTP4.js');
4
4
  var chunkKKHL2OSJ_js = require('../../chunk-KKHL2OSJ.js');
5
- var chunkCATTWGKB_js = require('../../chunk-CATTWGKB.js');
5
+ var chunkKP2UPQGN_js = require('../../chunk-KP2UPQGN.js');
6
6
  require('../../chunk-O7JDC6TD.js');
7
7
  var chunkOCCLNRZC_js = require('../../chunk-OCCLNRZC.js');
8
8
  var chunk2L7ILCIC_js = require('../../chunk-2L7ILCIC.js');
9
9
  var chunkMGBRUNOT_js = require('../../chunk-MGBRUNOT.js');
10
10
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
11
- require('../../chunk-3NVDJZNH.js');
11
+ require('../../chunk-MFE6DF6Y.js');
12
12
  var packageJsonUtils = require('@anolilab/package-json-utils');
13
13
  var process = require('process');
14
14
 
15
- var t=chunk2L7ILCIC_js.a.rules,y=chunkMGBRUNOT_js.a.overrides[0].rules,e=chunkCATTWGKB_js.a.overrides[0].rules,f=chunkKKHL2OSJ_js.a.rules,n=chunkZFO6DTP4_js.a.rules,{indent:b,quotes:x,semi:R}=e;global.anolilabEslintConfigTypescriptPrettierRules===void 0&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.anolilabEslintConfigTypescriptPrettierRules={"@typescript-eslint/block-spacing":"off","@typescript-eslint/brace-style":"off","@typescript-eslint/comma-dangle":"off","@typescript-eslint/comma-spacing":"off","@typescript-eslint/func-call-spacing":"off","@typescript-eslint/indent":"off","@typescript-eslint/key-spacing":"off","@typescript-eslint/keyword-spacing":"off","@typescript-eslint/lines-around-comment":0,"@typescript-eslint/member-delimiter-style":"off","@typescript-eslint/no-extra-parens":"off","@typescript-eslint/no-extra-semi":"off","@typescript-eslint/object-curly-spacing":"off","@typescript-eslint/quotes":0,"@typescript-eslint/semi":"off","@typescript-eslint/space-before-blocks":"off","@typescript-eslint/space-before-function-paren":"off","@typescript-eslint/space-infix-ops":"off","@typescript-eslint/type-annotation-spacing":"off"});var s=e["comma-dangle"],u=process.env.DISABLE_ESLINT_WARN_UNSUPPORTED_TYPESCRIPT_VERSION!=="true";chunkOCCLNRZC_js.a.warn_on_unsupported_typescript_version!==void 0&&(u=chunkOCCLNRZC_js.a.warn_on_unsupported_typescript_version);var C=chunkWG6GTAIA_js.b([{config:{extends:["plugin:@typescript-eslint/recommended","plugin:@typescript-eslint/stylistic","plugin:@typescript-eslint/strict"],parser:"@typescript-eslint/parser",parserOptions:{ecmaFeatures:{jsx:!0},sourceType:"module",warnOnUnsupportedTypeScriptVersion:u},plugins:["@typescript-eslint"],rules:{"@typescript-eslint/adjacent-overload-signatures":"off","@typescript-eslint/array-type":["error",{default:"array",readonly:"generic"}],"@typescript-eslint/ban-types":["error",{types:{Array:{message:"Provide a more specific type"},Boolean:{fixWith:"boolean",message:"Use boolean instead"},Number:{fixWith:"number",message:"Use number instead"},Object:{fixWith:"object",message:"Use object instead"},String:{fixWith:"string",message:"Use string instead"}}}],"@typescript-eslint/brace-style":e["brace-style"],"@typescript-eslint/comma-dangle":[s[0],{...s[1],enums:s[1].arrays,generics:s[1].arrays,tuples:s[1].arrays}],"@typescript-eslint/comma-spacing":e["comma-spacing"],"@typescript-eslint/consistent-generic-constructors":"error","@typescript-eslint/consistent-type-imports":"error","@typescript-eslint/explicit-member-accessibility":"error","@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/func-call-spacing":e["func-call-spacing"],"@typescript-eslint/indent":b,"@typescript-eslint/keyword-spacing":e["keyword-spacing"],"@typescript-eslint/lines-between-class-members":["error","always",{exceptAfterSingleLine:!1}],"@typescript-eslint/member-ordering":"off","@typescript-eslint/method-signature-style":"error","@typescript-eslint/naming-convention":["error",{format:["camelCase","PascalCase","UPPER_CASE"],selector:"variable"},{format:["camelCase","PascalCase"],selector:"function"},{format:["PascalCase"],selector:"typeLike"}],"@typescript-eslint/no-array-constructor":e["no-array-constructor"],"@typescript-eslint/no-confusing-non-null-assertion":"error","@typescript-eslint/no-dupe-class-members":f["no-dupe-class-members"],"@typescript-eslint/no-duplicate-enum-values":"error","@typescript-eslint/no-dynamic-delete":"warn","@typescript-eslint/no-empty-function":t["no-empty-function"],"@typescript-eslint/no-extra-non-null-assertion":"error","@typescript-eslint/no-extra-parens":y["no-extra-parens"],"@typescript-eslint/no-extra-semi":y["no-extra-semi"],"@typescript-eslint/no-import-type-side-effects":"error","@typescript-eslint/no-invalid-void-type":"warn","@typescript-eslint/no-loop-func":t["no-loop-func"],"@typescript-eslint/no-magic-numbers":t["no-magic-numbers"],"@typescript-eslint/no-misused-new":"error","@typescript-eslint/no-namespace":"error","@typescript-eslint/no-non-null-asserted-nullish-coalescing":"warn","@typescript-eslint/no-non-null-asserted-optional-chain":"error","@typescript-eslint/no-non-null-assertion":"error","@typescript-eslint/no-redeclare":t["no-redeclare"],"@typescript-eslint/no-require-imports":"error","@typescript-eslint/no-shadow":n["no-shadow"],"@typescript-eslint/no-this-alias":"error","@typescript-eslint/no-unnecessary-type-assertion":"error","@typescript-eslint/no-unnecessary-type-constraint":"error","@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-member-access":"error","@typescript-eslint/no-unsafe-return":"error","@typescript-eslint/no-unused-expressions":t["no-unused-expressions"],"@typescript-eslint/no-unused-vars":n["no-unused-vars"],"@typescript-eslint/no-use-before-define":n["no-use-before-define"],"@typescript-eslint/no-useless-constructor":f["no-useless-constructor"],"@typescript-eslint/no-useless-empty-export":"error","@typescript-eslint/non-nullable-type-assertion-style":"off","@typescript-eslint/prefer-enum-initializers":"error","@typescript-eslint/prefer-function-type":"error","@typescript-eslint/prefer-nullish-coalescing":"error","@typescript-eslint/prefer-optional-chain":"error","@typescript-eslint/prefer-ts-expect-error":"error","@typescript-eslint/quotes":x,"@typescript-eslint/return-await":t["no-return-await"],"@typescript-eslint/semi":R,"@typescript-eslint/sort-type-constituents":"error","@typescript-eslint/space-before-function-paren":e["space-before-function-paren"],"@typescript-eslint/space-infix-ops":e["space-infix-ops"],...global.anolilabEslintConfigTypescriptPrettierRules}},type:"typescript"}]),U=C;
15
+ var t=chunk2L7ILCIC_js.a.rules,y=chunkMGBRUNOT_js.a.overrides[0].rules,e=chunkKP2UPQGN_js.a.overrides[0].rules,f=chunkKKHL2OSJ_js.a.rules,n=chunkZFO6DTP4_js.a.rules,{indent:b,quotes:x,semi:R}=e;global.anolilabEslintConfigTypescriptPrettierRules===void 0&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.anolilabEslintConfigTypescriptPrettierRules={"@typescript-eslint/block-spacing":"off","@typescript-eslint/brace-style":"off","@typescript-eslint/comma-dangle":"off","@typescript-eslint/comma-spacing":"off","@typescript-eslint/func-call-spacing":"off","@typescript-eslint/indent":"off","@typescript-eslint/key-spacing":"off","@typescript-eslint/keyword-spacing":"off","@typescript-eslint/lines-around-comment":0,"@typescript-eslint/member-delimiter-style":"off","@typescript-eslint/no-extra-parens":"off","@typescript-eslint/no-extra-semi":"off","@typescript-eslint/object-curly-spacing":"off","@typescript-eslint/quotes":0,"@typescript-eslint/semi":"off","@typescript-eslint/space-before-blocks":"off","@typescript-eslint/space-before-function-paren":"off","@typescript-eslint/space-infix-ops":"off","@typescript-eslint/type-annotation-spacing":"off"});var s=e["comma-dangle"],u=process.env.DISABLE_ESLINT_WARN_UNSUPPORTED_TYPESCRIPT_VERSION!=="true";chunkOCCLNRZC_js.a.warn_on_unsupported_typescript_version!==void 0&&(u=chunkOCCLNRZC_js.a.warn_on_unsupported_typescript_version);var C=chunkWG6GTAIA_js.b([{config:{extends:["plugin:@typescript-eslint/recommended","plugin:@typescript-eslint/stylistic","plugin:@typescript-eslint/strict"],parser:"@typescript-eslint/parser",parserOptions:{ecmaFeatures:{jsx:!0},sourceType:"module",warnOnUnsupportedTypeScriptVersion:u},plugins:["@typescript-eslint"],rules:{"@typescript-eslint/adjacent-overload-signatures":"off","@typescript-eslint/array-type":["error",{default:"array",readonly:"generic"}],"@typescript-eslint/ban-types":["error",{types:{Array:{message:"Provide a more specific type"},Boolean:{fixWith:"boolean",message:"Use boolean instead"},Number:{fixWith:"number",message:"Use number instead"},Object:{fixWith:"object",message:"Use object instead"},String:{fixWith:"string",message:"Use string instead"}}}],"@typescript-eslint/brace-style":e["brace-style"],"@typescript-eslint/comma-dangle":[s[0],{...s[1],enums:s[1].arrays,generics:s[1].arrays,tuples:s[1].arrays}],"@typescript-eslint/comma-spacing":e["comma-spacing"],"@typescript-eslint/consistent-generic-constructors":"error","@typescript-eslint/consistent-type-imports":"error","@typescript-eslint/explicit-member-accessibility":"error","@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/func-call-spacing":e["func-call-spacing"],"@typescript-eslint/indent":b,"@typescript-eslint/keyword-spacing":e["keyword-spacing"],"@typescript-eslint/lines-between-class-members":["error","always",{exceptAfterSingleLine:!1}],"@typescript-eslint/member-ordering":"off","@typescript-eslint/method-signature-style":"error","@typescript-eslint/naming-convention":["error",{format:["camelCase","PascalCase","UPPER_CASE"],selector:"variable"},{format:["camelCase","PascalCase"],selector:"function"},{format:["PascalCase"],selector:"typeLike"}],"@typescript-eslint/no-array-constructor":e["no-array-constructor"],"@typescript-eslint/no-confusing-non-null-assertion":"error","@typescript-eslint/no-dupe-class-members":f["no-dupe-class-members"],"@typescript-eslint/no-duplicate-enum-values":"error","@typescript-eslint/no-dynamic-delete":"warn","@typescript-eslint/no-empty-function":t["no-empty-function"],"@typescript-eslint/no-extra-non-null-assertion":"error","@typescript-eslint/no-extra-parens":y["no-extra-parens"],"@typescript-eslint/no-extra-semi":y["no-extra-semi"],"@typescript-eslint/no-import-type-side-effects":"error","@typescript-eslint/no-invalid-void-type":"warn","@typescript-eslint/no-loop-func":t["no-loop-func"],"@typescript-eslint/no-magic-numbers":t["no-magic-numbers"],"@typescript-eslint/no-misused-new":"error","@typescript-eslint/no-namespace":"error","@typescript-eslint/no-non-null-asserted-nullish-coalescing":"warn","@typescript-eslint/no-non-null-asserted-optional-chain":"error","@typescript-eslint/no-non-null-assertion":"error","@typescript-eslint/no-redeclare":t["no-redeclare"],"@typescript-eslint/no-require-imports":"error","@typescript-eslint/no-shadow":n["no-shadow"],"@typescript-eslint/no-this-alias":"error","@typescript-eslint/no-unnecessary-type-assertion":"error","@typescript-eslint/no-unnecessary-type-constraint":"error","@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-member-access":"error","@typescript-eslint/no-unsafe-return":"error","@typescript-eslint/no-unused-expressions":t["no-unused-expressions"],"@typescript-eslint/no-unused-vars":n["no-unused-vars"],"@typescript-eslint/no-use-before-define":n["no-use-before-define"],"@typescript-eslint/no-useless-constructor":f["no-useless-constructor"],"@typescript-eslint/no-useless-empty-export":"error","@typescript-eslint/non-nullable-type-assertion-style":"off","@typescript-eslint/prefer-enum-initializers":"error","@typescript-eslint/prefer-function-type":"error","@typescript-eslint/prefer-nullish-coalescing":"error","@typescript-eslint/prefer-optional-chain":"error","@typescript-eslint/prefer-ts-expect-error":"error","@typescript-eslint/quotes":x,"@typescript-eslint/return-await":t["no-return-await"],"@typescript-eslint/semi":R,"@typescript-eslint/sort-type-constituents":"error","@typescript-eslint/space-before-function-paren":e["space-before-function-paren"],"@typescript-eslint/space-infix-ops":e["space-infix-ops"],...global.anolilabEslintConfigTypescriptPrettierRules}},type:"typescript"}]),U=C;
16
16
 
17
17
  module.exports = U;
18
18
  //# sourceMappingURL=out.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkO7JDC6TD_js = require('../../chunk-O7JDC6TD.js');
4
4
  require('../../chunk-OCCLNRZC.js');
5
- require('../../chunk-3NVDJZNH.js');
5
+ require('../../chunk-MFE6DF6Y.js');
6
6
  var packageJsonUtils = require('@anolilab/package-json-utils');
7
7
  var i = require('semver');
8
8
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('../../chunk-3NVDJZNH.js');
3
+ require('../../chunk-MFE6DF6Y.js');
4
4
 
5
5
  var t={overrides:[{extends:["plugin:vitest/recommended","plugin:vitest/all"],files:["**/__tests__/**/*.?(c|m)[jt]s?(x)","**/?(*.){test,spec}.?(c|m)[jt]s?(x)"],plugins:["vitest"],rules:{"vitest/max-expects":"off","vitest/no-hooks":"off","vitest/no-mocks-import":"off","vitest/no-restricted-vi-methods":"off","vitest/no-standalone-expect":"error","vitest/valid-expect":["error",{alwaysAwait:!0,maxArgs:2,minArgs:1}]}}]},e=t;
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkO7JDC6TD_js = require('../../chunk-O7JDC6TD.js');
4
4
  require('../../chunk-OCCLNRZC.js');
5
- require('../../chunk-3NVDJZNH.js');
5
+ require('../../chunk-MFE6DF6Y.js');
6
6
  var packageJsonUtils = require('@anolilab/package-json-utils');
7
7
 
8
8
  !global.hasAnolilabEsLintConfigPrettier&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.hasAnolilabEsLintConfigPrettier=!0);var t={overrides:[{extends:["plugin:yml/recommended",...global.hasAnolilabEsLintConfigPrettier?["plugin:yml/prettier"]:[]],files:["*.yaml","*.yml"],parser:"yaml-eslint-parser",rules:{indent:[global.hasAnolilabEsLintConfigPrettier?"off":"error",chunkO7JDC6TD_js.a],"spaced-comment":"off"}}]},o=t;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var o=chunkWG6GTAIA_js.a("all",{extends:["plugin:you-dont-need-lodash-underscore/compatible"]}),n=o;
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var n=chunkWG6GTAIA_js.a("all",{extends:["plugin:you-dont-need-momentjs/recommended"]}),t=n;
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkWG6GTAIA_js = require('../../chunk-WG6GTAIA.js');
4
- require('../../chunk-3NVDJZNH.js');
4
+ require('../../chunk-MFE6DF6Y.js');
5
5
 
6
6
  var e=chunkWG6GTAIA_js.a("all",{plugins:["zod"],rules:{"zod/prefer-enum":"error","zod/require-strict":"error"}}),t=e;
7
7
 
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkCATTWGKB_js = require('../chunk-CATTWGKB.js');
3
+ var chunkKP2UPQGN_js = require('../chunk-KP2UPQGN.js');
4
4
  require('../chunk-O7JDC6TD.js');
5
5
  require('../chunk-OCCLNRZC.js');
6
6
  require('../chunk-WG6GTAIA.js');
7
- require('../chunk-3NVDJZNH.js');
7
+ require('../chunk-MFE6DF6Y.js');
8
8
 
9
9
 
10
10
 
11
- module.exports = chunkCATTWGKB_js.a;
11
+ module.exports = chunkKP2UPQGN_js.a;
12
12
  //# sourceMappingURL=out.js.map
13
13
  //# sourceMappingURL=style.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkZFO6DTP4_js = require('../chunk-ZFO6DTP4.js');
4
- require('../chunk-3NVDJZNH.js');
4
+ require('../chunk-MFE6DF6Y.js');
5
5
 
6
6
 
7
7
 
@@ -0,0 +1 @@
1
+ export { defineConfig, defineFlatConfig } from 'eslint-define-config';
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ require('./chunk-MFE6DF6Y.js');
4
+ var eslintDefineConfig = require('eslint-define-config');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, 'defineConfig', {
9
+ enumerable: true,
10
+ get: function () { return eslintDefineConfig.defineConfig; }
11
+ });
12
+ Object.defineProperty(exports, 'defineFlatConfig', {
13
+ enumerable: true,
14
+ get: function () { return eslintDefineConfig.defineFlatConfig; }
15
+ });
16
+ //# sourceMappingURL=out.js.map
17
+ //# sourceMappingURL=define-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/define-config.ts"],"names":["defineConfig","defineFlatConfig"],"mappings":"4BAAA,OAAS,gBAAAA,EAAc,oBAAAC,MAAwB","sourcesContent":["export { defineConfig, defineFlatConfig } from \"eslint-define-config\";\n"]}
package/dist/globals.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('./chunk-3NVDJZNH.js');
3
+ require('./chunk-MFE6DF6Y.js');
4
4
  var s = require('globals');
5
5
 
6
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkSEYYGHPU_js = require('./chunk-SEYYGHPU.js');
4
4
  var chunkOCCLNRZC_js = require('./chunk-OCCLNRZC.js');
5
- require('./chunk-3NVDJZNH.js');
5
+ require('./chunk-MFE6DF6Y.js');
6
6
  require('@rushstack/eslint-patch/modern-module-resolution');
7
7
  var packageJsonUtils = require('@anolilab/package-json-utils');
8
8
  var x = require('globals');
@@ -14,14 +14,14 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
14
  var x__default = /*#__PURE__*/_interopDefault(x);
15
15
  var k__default = /*#__PURE__*/_interopDefault(k);
16
16
 
17
- var w=["best-practices","errors","style","es6","variables"],p=["compat","eslint-comments","import","promise","simple-import-sort","no-extend-native","node","no-secrets","sonarjs","security","regexp","jsonc","markdown","toml","yml","html","antfu","unicorn","es","perfectionist"],E=[{configName:"array-func",dependencies:["eslint-plugin-array-func"]},{configName:"jsdoc",dependencies:["eslint-plugin-jsdoc"]},{configName:"tsdoc",dependencies:["eslint-plugin-tsdoc","typescript"]},{configName:"lodash",dependencies:["lodash","eslint-plugin-lodash"]},{configName:"lodash-fp",dependencies:["lodash","eslint-plugin-lodash-fp"]},{configName:"you-dont-need-lodash-underscore",dependencies:["lodash","eslint-plugin-you-dont-need-lodash-underscore"]},{configName:"mdx",dependencies:["eslint-plugin-mdx"],oneOfDependency:["nextra","docz","@docusaurus/core","gatsby-plugin-mdx"],resolve:["@mdx-js/mdx","remark-mdx","@mdx-js/loader","@mdx-js/rollup","@mdx-js/react"]},{configName:"no-unsanitized",dependencies:["eslint-plugin-no-unsanitized"]},{configName:"react",dependencies:["react","react-dom","eslint-plugin-react"]},{configName:"react-redux",dependencies:["eslint-plugin-react-redux"],oneOfDependency:["@reduxjs/toolkit","redux"]},{configName:"jsx-a11y",dependencies:["react","react-dom","eslint-plugin-jsx-a11y"]},{configName:"react-hooks",dependencies:["react","react-dom","eslint-plugin-react-hooks"]},{configName:"react-usememo",dependencies:["react","react-dom","@arthurgeron/eslint-plugin-react-usememo"]},{configName:"you-dont-need-momentjs",dependencies:["moment","eslint-plugin-you-dont-need-momentjs"]},{configName:"you-dont-need-momentjs",dependencies:["moment-timezone","eslint-plugin-you-dont-need-momentjs"]},{configName:"tailwindcss",dependencies:["eslint-plugin-tailwindcss"]},{configName:"cypress",dependencies:["cypress","eslint-plugin-cypress"]},{configName:"jest",dependencies:["jest","eslint-plugin-jest"]},{configName:"jest-dom",dependencies:["jest","@testing-library/jest-dom","eslint-plugin-jest-dom"]},{configName:"jest-async",dependencies:["jest","eslint-plugin-jest-async"]},{configName:"jest-formatting",dependencies:["jest","eslint-plugin-jest-formatting"]},{configName:"tailwindcss",dependencies:["tailwindcss"]},{configName:"testing-library-dom",dependencies:["@testing-library/dom","eslint-plugin-testing-library"]},{configName:"testing-library-react",dependencies:["react","@testing-library/react","eslint-plugin-testing-library"]},{configName:"typescript",dependencies:["typescript"]},{configName:"etc",dependencies:["typescript","eslint-plugin-etc"]},{configName:"vitest",dependencies:["vitest","eslint-plugin-vitest"]},{configName:"zod",dependencies:["zod","eslint-plugin-zod"]},{configName:"ava",dependencies:["ava","eslint-plugin-ava"]},{configName:"storybook",dependencies:["storybook","eslint-plugin-storybook"]},{configName:"playwright",dependencies:["playwright","eslint-plugin-playwright"]},{configName:"tanstack-query",dependencies:["@tanstack/react-query","@tanstack/eslint-plugin-query"]}],m=[...p],r={};E.forEach(n=>{let{configName:e,dependencies:i}=n;if(chunkOCCLNRZC_js.a.plugin?.[e]!==!1){let a=[];i.forEach(s=>{(packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s))&&a.push(s);}),r[e]={},a.length===0&&n.resolve!==void 0&&n.resolve.forEach(s=>{packageJsonUtils.resolvePackage(s)!==void 0&&i.forEach(t=>{r[e][t]=packageJsonUtils.hasDependency(t)||packageJsonUtils.hasDevDependency(t);});}),a.length===i.length?(delete r[e],m.push(e)):i.forEach(s=>{r[e][s]=packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s);});}});var u=w,b=m,h=r;var R={"n/prefer-global/text-decoder":{"11.0.0":"off"},"n/prefer-global/text-encoder":{"11.0.0":"off"},"n/prefer-global/url":{"10.0.0":"off"},"n/prefer-global/url-search-params":{"10.0.0":"off"},"n/prefer-promises/dns":{"11.14.0":"off"},"n/prefer-promises/fs":{"11.14.0":"off"},"no-useless-catch":{"10.0.0":"off"},"prefer-destructuring":{"6.0.0":"off"},"prefer-named-capture-group":{"10.0.0":"off"},"prefer-object-spread":{"8.3.0":"off"},"prefer-rest-params":{"6.0.0":"off"},"promise/prefer-await-to-then":{"7.6.0":"off"},"unicorn/no-new-buffer":{"5.10.0":"off"},"unicorn/prefer-flat-map":{"11.0.0":"off"},"unicorn/prefer-spread":{"5.0.0":"off"}},y=R;if(!global.hasAnolilabEsLintConfigLoaded){process.env.DEBUG&&(chunkSEYYGHPU_js.b(`
17
+ var R=["best-practices","errors","style","es6","variables"],c=["compat","eslint-comments","import","promise","simple-import-sort","no-extend-native","node","no-secrets","sonarjs","security","regexp","jsonc","markdown","toml","yml","html","antfu","unicorn","es","perfectionist"],E=[{configName:"array-func",dependencies:["eslint-plugin-array-func"]},{configName:"jsdoc",dependencies:["eslint-plugin-jsdoc"]},{configName:"tsdoc",dependencies:["eslint-plugin-tsdoc","typescript"]},{configName:"lodash",dependencies:["lodash","eslint-plugin-lodash"]},{configName:"lodash-fp",dependencies:["lodash","eslint-plugin-lodash-fp"]},{configName:"you-dont-need-lodash-underscore",dependencies:["lodash","eslint-plugin-you-dont-need-lodash-underscore"]},{configName:"mdx",dependencies:["eslint-plugin-mdx"],oneOfDependency:["nextra","docz","@docusaurus/core","gatsby-plugin-mdx"],resolve:["@mdx-js/mdx","remark-mdx","@mdx-js/loader","@mdx-js/rollup","@mdx-js/react"]},{configName:"no-unsanitized",dependencies:["eslint-plugin-no-unsanitized"]},{configName:"react",dependencies:["react","react-dom","eslint-plugin-react"]},{configName:"react-redux",dependencies:["eslint-plugin-react-redux"],oneOfDependency:["@reduxjs/toolkit","redux"]},{configName:"jsx-a11y",dependencies:["react","react-dom","eslint-plugin-jsx-a11y"]},{configName:"react-hooks",dependencies:["react","react-dom","eslint-plugin-react-hooks"]},{configName:"react-usememo",dependencies:["react","react-dom","@arthurgeron/eslint-plugin-react-usememo"]},{configName:"you-dont-need-momentjs",dependencies:["moment","eslint-plugin-you-dont-need-momentjs"]},{configName:"you-dont-need-momentjs",dependencies:["moment-timezone","eslint-plugin-you-dont-need-momentjs"]},{configName:"tailwindcss",dependencies:["eslint-plugin-tailwindcss"]},{configName:"cypress",dependencies:["cypress","eslint-plugin-cypress"]},{configName:"jest",dependencies:["jest","eslint-plugin-jest"]},{configName:"jest-dom",dependencies:["jest","@testing-library/jest-dom","eslint-plugin-jest-dom"]},{configName:"jest-async",dependencies:["jest","eslint-plugin-jest-async"]},{configName:"jest-formatting",dependencies:["jest","eslint-plugin-jest-formatting"]},{configName:"tailwindcss",dependencies:["tailwindcss"]},{configName:"testing-library-dom",dependencies:["@testing-library/dom","eslint-plugin-testing-library"]},{configName:"testing-library-react",dependencies:["react","@testing-library/react","eslint-plugin-testing-library"]},{configName:"typescript",dependencies:["typescript"],files:["tsconfig.json","tsconfig.eslint.json"]},{configName:"etc",dependencies:["typescript","eslint-plugin-etc"]},{configName:"vitest",dependencies:["vitest","eslint-plugin-vitest"]},{configName:"zod",dependencies:["zod","eslint-plugin-zod"]},{configName:"ava",dependencies:["ava","eslint-plugin-ava"]},{configName:"editorconfig",dependencies:["eslint-plugin-editorconfig"],files:[".editorconfig"]},{configName:"storybook",dependencies:["storybook","eslint-plugin-storybook"]},{configName:"playwright",dependencies:["playwright","eslint-plugin-playwright"]},{configName:"tanstack-query",dependencies:["@tanstack/react-query","@tanstack/eslint-plugin-query"]}],p=[...c],t={};p.length===c.length&&E.forEach(s=>{let{configName:e,dependencies:i}=s;if(chunkOCCLNRZC_js.a.plugin?.[e]!==!1){let a=[];if(i.forEach(n=>{(packageJsonUtils.hasDependency(n)||packageJsonUtils.hasDevDependency(n))&&a.push(n);}),t[e]={},a.length===0){if(s.oneOfDependency!==void 0){let n=!1;s.oneOfDependency.forEach(r=>{!n&&(packageJsonUtils.hasDependency(r)||packageJsonUtils.hasDevDependency(r))&&(n=!0,t[e][r]=!0);});}s.resolve!==void 0&&s.resolve.forEach(n=>{packageJsonUtils.resolvePackage(n)!==void 0&&(t[e][n]=!0);}),s.files!==void 0&&s.files.forEach(n=>{packageJsonUtils.hasFile(n)&&(t[e][n]=!0);});}a.length===i.length?(delete t[e],p.push(e)):i.forEach(n=>{t[e][n]=packageJsonUtils.hasDependency(n)||packageJsonUtils.hasDevDependency(n);});}});var m=R,b=p,h=t;var O={"n/prefer-global/text-decoder":{"11.0.0":"off"},"n/prefer-global/text-encoder":{"11.0.0":"off"},"n/prefer-global/url":{"10.0.0":"off"},"n/prefer-global/url-search-params":{"10.0.0":"off"},"n/prefer-promises/dns":{"11.14.0":"off"},"n/prefer-promises/fs":{"11.14.0":"off"},"no-useless-catch":{"10.0.0":"off"},"prefer-destructuring":{"6.0.0":"off"},"prefer-named-capture-group":{"10.0.0":"off"},"prefer-object-spread":{"8.3.0":"off"},"prefer-rest-params":{"6.0.0":"off"},"promise/prefer-await-to-then":{"7.6.0":"off"},"unicorn/no-new-buffer":{"5.10.0":"off"},"unicorn/prefer-flat-map":{"11.0.0":"off"},"unicorn/prefer-spread":{"5.0.0":"off"}},y=O;if(!global.hasAnolilabEsLintConfigLoaded){process.env.DEBUG&&(chunkSEYYGHPU_js.b(`
18
18
  @anolilab/eslint-config loaded the following plugins:
19
- `),chunkSEYYGHPU_js.b(" @rushstack/eslint-plugin-security"),p.map(e=>e==="import"?"i":e==="node"?"n":e).forEach(e=>chunkSEYYGHPU_js.a(e)));let n=!1;Object.entries(h).forEach(([e,i])=>{Object.values(i).some(Boolean)&&(n=!0,chunkSEYYGHPU_js.b(`
20
- Your package.json container dependencies for the "${e}" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`),Object.entries(i).forEach(([s,t])=>{t||chunkSEYYGHPU_js.b(` ${s}`);}));}),n&&(chunkSEYYGHPU_js.b(`
19
+ `),chunkSEYYGHPU_js.b(" @rushstack/eslint-plugin-security"),c.map(e=>e==="import"?"i":e==="node"?"n":e).forEach(e=>chunkSEYYGHPU_js.a(e)));let s=!1;Object.entries(h).forEach(([e,i])=>{Object.values(i).some(Boolean)&&(s=!0,chunkSEYYGHPU_js.b(`
20
+ Your package.json container dependencies for the "${e}" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`),Object.entries(i).forEach(([n,r])=>{r||chunkSEYYGHPU_js.b(` ${n}`);}));}),s&&(chunkSEYYGHPU_js.b(`
21
21
  To disable this message, add the following to your package.json:`),chunkSEYYGHPU_js.b(` "anolilab": { "eslint-config": { plugin: { "plugin-name": false } } }
22
- `)),chunkSEYYGHPU_js.b('To disable all logging, add the following to your eslint command call "NO_LOGS=true eslint ..."'),global.hasAnolilabEsLintConfigLoaded=!0;}var _={},f;packageJsonUtils.pkg?.engines?.node&&(f=packageJsonUtils.pkg.engines.node);Object.entries(y).forEach(([n,e])=>{Object.keys(e).sort(k__default.default.rcompare).forEach(i=>{f&&k__default.default.intersects(f,`<${i}`)&&(_[n]=e[i]);});});!global.hasAnolilabEsLintConfigPrettier&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.hasAnolilabEsLintConfigPrettier=!0,chunkOCCLNRZC_js.a.info_on_disabling_prettier_conflict_rule!==!1&&chunkSEYYGHPU_js.b(`
23
- Found prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier`));var C={extends:[...u.map(n=>path.join(__dirname,`./config/${n}.js`)),...b.map(n=>path.join(__dirname,`./config/plugins/${n}.js`))],globals:{...x__default.default.browser,...x__default.default.nodeBuiltin},ignorePatterns:["!.*",".git/","node_modules/","bower_components/","jspm_packages/",".npm/","lib-cov/","coverage/",".nyc_output/",".cache/","build/","dist/","tmp/","**/*.min.*","*.d.ts","pnpm-lock.yaml"],overrides:[{files:["**/migrations/*.{js,ts}"],rules:{"filenames/match-regex":"off"}},{files:["**/*.spec.{js,ts,tsx}","**/*.test.{js,ts,tsx}","**/__mocks__/*.{js,ts,tsx}","**/__tests__/*.{js,ts,tsx}","**/test/*.{js,ts,tsx}"],rules:{"no-magic-numbers":"off","sonarjs/no-duplicate-string":"off"}},{files:packageJsonUtils.packageIsTypeModule?["*.js","*.mjs"]:["*.mjs"],parser:"@babel/eslint-parser",parserOptions:{babelOptions:{plugins:["@babel/plugin-syntax-import-assertions"]},requireConfigFile:!1}}],parser:"",rules:{..._}},Y=C;
22
+ `)),chunkSEYYGHPU_js.b('To disable all logging, add the following to your eslint command call "NO_LOGS=true eslint ..."'),global.hasAnolilabEsLintConfigLoaded=!0;}var _={},g;packageJsonUtils.pkg?.engines?.node&&(g=packageJsonUtils.pkg.engines.node);Object.entries(y).forEach(([s,e])=>{Object.keys(e).sort(k__default.default.rcompare).forEach(i=>{g&&k__default.default.intersects(g,`<${i}`)&&(_[s]=e[i]);});});!global.hasAnolilabEsLintConfigPrettier&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.hasAnolilabEsLintConfigPrettier=!0,chunkOCCLNRZC_js.a.info_on_disabling_prettier_conflict_rule!==!1&&chunkSEYYGHPU_js.b(`
23
+ Found prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier`));var C={extends:[...m.map(s=>path.join(__dirname,`./config/${s}.js`)),...b.map(s=>path.join(__dirname,`./config/plugins/${s}.js`))],globals:{...x__default.default.browser,...x__default.default.nodeBuiltin},ignorePatterns:["!.*",".git/","node_modules/","bower_components/","jspm_packages/",".npm/","lib-cov/","coverage/",".nyc_output/",".cache/","build/","dist/","tmp/","**/*.min.*","*.d.ts","pnpm-lock.yaml"],overrides:[{files:["**/migrations/*.{js,ts}"],rules:{"filenames/match-regex":"off"}},{files:["**/*.spec.{js,ts,tsx}","**/*.test.{js,ts,tsx}","**/__mocks__/*.{js,ts,tsx}","**/__tests__/*.{js,ts,tsx}","**/test/*.{js,ts,tsx}"],rules:{"no-magic-numbers":"off","sonarjs/no-duplicate-string":"off"}},{files:packageJsonUtils.packageIsTypeModule?["*.js","*.mjs"]:["*.mjs"],parser:"@babel/eslint-parser",parserOptions:{babelOptions:{plugins:["@babel/plugin-syntax-import-assertions"]},requireConfigFile:!1}}],parser:"",rules:{..._}},H=C;
24
24
 
25
- module.exports = Y;
25
+ module.exports = H;
26
26
  //# sourceMappingURL=out.js.map
27
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/engine-node-overwrite.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","join","semver","resolvePackage","baseConfig","internalPluginConfig","pluginConfig","loadedPlugins","possiblePlugins","plugin","configName","dependencies","eslint_config_default","foundDependencies","dependency","rdependency","rules","pluginRules","possiblePluginRules","engineRules","engine_node_overwrite_default","consoleLog","name","consolePlugin","hasLogged","installed","configRules","nodeVersion","rule","ruleConfig","minVersion","config","src_default"],"mappings":"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","sourcesContent":["/**\n * rushstack eslint-patch is used to include plugins as dev\n * dependencies instead of imposing them as peer dependencies\n *\n * {@link https://www.npmjs.com/package/@rushstack/eslint-patch}\n * {@link https://stackoverflow.com/a/74478635/1392749}\n * {@link https://github.com/eslint/eslint/issues/3458}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-1/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-2/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-3/}\n * {@link https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new}\n */\nimport \"@rushstack/eslint-patch/modern-module-resolution\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { internalPluginConfig, pluginRules, possiblePluginRules, rules } from \"./config\";\nimport engineRules from \"./engine-node-overwrite\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\nimport { consoleLog, consolePlugin } from \"./utils/loggers\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigLoaded) {\n if (process.env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/eslint-config loaded the following plugins:\\n\");\n\n consoleLog(\" @rushstack/eslint-plugin-security\");\n internalPluginConfig\n .map((name: string) => {\n if (name === \"import\") {\n return \"i\";\n }\n\n if (name === \"node\") {\n return \"n\";\n }\n\n return name;\n })\n .forEach((plugin) => consolePlugin(plugin));\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePluginRules).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"eslint-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabEsLintConfigLoaded = true;\n}\n\nconst configRules: Linter.RulesRecord = {};\nlet nodeVersion: string | undefined;\n\nif (pkg?.engines?.[\"node\"]) {\n nodeVersion = pkg.engines[\"node\"];\n}\n\nObject.entries(engineRules).forEach(([rule, ruleConfig]) => {\n Object.keys(ruleConfig)\n .sort(semver.rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && semver.intersects(nodeVersion, `<${minVersion}`)) {\n // eslint-disable-next-line security/detect-object-injection\n configRules[rule] = ruleConfig[minVersion as keyof typeof ruleConfig] as Linter.RuleEntry;\n }\n });\n});\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigPrettier && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.hasAnolilabEsLintConfigPrettier = true;\n\n if (anolilabEslintConfig[\"info_on_disabling_prettier_conflict_rule\"] !== false) {\n consoleLog(\"\\nFound prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier\");\n }\n}\n\nconst config: Linter.Config = {\n // After an .eslintrc.js file is loaded, ESLint will normally continue visiting all parent folders\n // to look for other .eslintrc.js files, and also consult a personal file ~/.eslintrc.js. If any files\n // are found, their options will be merged. This is difficult for humans to understand, and it will cause\n // nondeterministic behavior if files are loaded from outside the Git working folder.\n //\n // Setting root=true causes ESLint to stop looking for other config files after the first .eslintrc.js\n extends: [\n ...rules.map((plugin) => join(__dirname, `./config/${plugin}.js`)),\n\n ...pluginRules.map((plugin) => join(__dirname, `./config/plugins/${plugin}.js`)),\n ],\n globals: {\n ...globals.browser,\n ...globals.nodeBuiltin,\n },\n ignorePatterns: [\n \"!.*\",\n\n \".git/\",\n \"node_modules/\",\n \"bower_components/\",\n \"jspm_packages/\",\n \".npm/\",\n\n \"lib-cov/\",\n \"coverage/\",\n \".nyc_output/\",\n \".cache/\",\n\n \"build/\",\n \"dist/\",\n \"tmp/\",\n\n \"**/*.min.*\",\n\n // Manually authored .d.ts files are generally used to describe external APIs that are not expected\n // to follow our coding conventions. Linting those files tends to produce a lot of spurious suppressions,\n // so we simply ignore them.\n \"*.d.ts\",\n\n \"pnpm-lock.yaml\",\n ],\n overrides: [\n {\n files: [\"**/migrations/*.{js,ts}\"],\n rules: {\n \"filenames/match-regex\": \"off\",\n },\n },\n {\n files: [\n // Test files\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n\n // Facebook convention\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n\n // Microsoft convention\n \"**/test/*.{js,ts,tsx}\",\n ],\n rules: {\n \"no-magic-numbers\": \"off\",\n \"sonarjs/no-duplicate-string\": \"off\",\n },\n },\n // Fixes https://github.com/eslint/eslint/discussions/15305\n {\n files: packageIsTypeModule ? [\"*.js\", \"*.mjs\"] : [\"*.mjs\"],\n parser: \"@babel/eslint-parser\",\n parserOptions: {\n babelOptions: {\n plugins: [\"@babel/plugin-syntax-import-assertions\"],\n },\n requireConfigFile: false,\n },\n },\n ],\n // Disable the parser by default\n parser: \"\",\n // is loaded.\n rules: {\n ...configRules,\n },\n};\n\nexport default config;\n","import { hasDependency, hasDevDependency, resolvePackage } from \"@anolilab/package-json-utils\";\n\nimport type { PackageRules } from \"./types\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst baseConfig = [\"best-practices\", \"errors\", \"style\", \"es6\", \"variables\"];\n\n// eslint-disable-next-line import/exports-last\nexport const internalPluginConfig = [\n \"compat\",\n \"eslint-comments\",\n \"import\",\n \"promise\",\n \"simple-import-sort\",\n \"no-extend-native\",\n \"node\",\n // Security Rules\n \"no-secrets\",\n \"sonarjs\",\n \"security\",\n \"regexp\",\n // file rules\n \"jsonc\",\n \"markdown\",\n \"toml\",\n \"yml\",\n \"html\",\n\n // custom rules\n \"antfu\",\n \"unicorn\",\n \"es\",\n \"perfectionist\",\n];\n\nconst pluginConfig: PackageRules = [\n {\n configName: \"array-func\",\n dependencies: [\"eslint-plugin-array-func\"],\n },\n {\n configName: \"jsdoc\",\n dependencies: [\"eslint-plugin-jsdoc\"],\n },\n {\n configName: \"tsdoc\",\n dependencies: [\"eslint-plugin-tsdoc\", \"typescript\"],\n },\n {\n configName: \"lodash\",\n dependencies: [\"lodash\", \"eslint-plugin-lodash\"],\n },\n {\n configName: \"lodash-fp\",\n dependencies: [\"lodash\", \"eslint-plugin-lodash-fp\"],\n },\n {\n configName: \"you-dont-need-lodash-underscore\",\n dependencies: [\"lodash\", \"eslint-plugin-you-dont-need-lodash-underscore\"],\n },\n {\n configName: \"mdx\",\n dependencies: [\"eslint-plugin-mdx\"],\n oneOfDependency: [\"nextra\", \"docz\", \"@docusaurus/core\", \"gatsby-plugin-mdx\"],\n resolve: [\"@mdx-js/mdx\", \"remark-mdx\", \"@mdx-js/loader\", \"@mdx-js/rollup\", \"@mdx-js/react\"],\n },\n {\n configName: \"no-unsanitized\",\n dependencies: [\"eslint-plugin-no-unsanitized\"],\n },\n {\n configName: \"react\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react\"],\n },\n {\n configName: \"react-redux\",\n dependencies: [\"eslint-plugin-react-redux\"],\n oneOfDependency: [\"@reduxjs/toolkit\", \"redux\"],\n },\n {\n configName: \"jsx-a11y\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-jsx-a11y\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react-hooks\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"react\", \"react-dom\", \"@arthurgeron/eslint-plugin-react-usememo\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment-timezone\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"eslint-plugin-tailwindcss\"],\n },\n {\n configName: \"cypress\",\n dependencies: [\"cypress\", \"eslint-plugin-cypress\"],\n },\n {\n configName: \"jest\",\n dependencies: [\"jest\", \"eslint-plugin-jest\"],\n },\n {\n configName: \"jest-dom\",\n dependencies: [\"jest\", \"@testing-library/jest-dom\", \"eslint-plugin-jest-dom\"],\n },\n {\n configName: \"jest-async\",\n dependencies: [\"jest\", \"eslint-plugin-jest-async\"],\n },\n {\n configName: \"jest-formatting\",\n dependencies: [\"jest\", \"eslint-plugin-jest-formatting\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"tailwindcss\"],\n },\n {\n configName: \"testing-library-dom\",\n dependencies: [\"@testing-library/dom\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"testing-library-react\",\n dependencies: [\"react\", \"@testing-library/react\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"typescript\",\n dependencies: [\"typescript\"],\n },\n {\n configName: \"etc\",\n dependencies: [\"typescript\", \"eslint-plugin-etc\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\"],\n },\n {\n configName: \"zod\",\n dependencies: [\"zod\", \"eslint-plugin-zod\"],\n },\n {\n configName: \"ava\",\n dependencies: [\"ava\", \"eslint-plugin-ava\"],\n },\n {\n configName: \"storybook\",\n dependencies: [\"storybook\", \"eslint-plugin-storybook\"],\n },\n {\n configName: \"playwright\",\n dependencies: [\"playwright\", \"eslint-plugin-playwright\"],\n },\n {\n configName: \"tanstack-query\",\n dependencies: [\"@tanstack/react-query\", \"@tanstack/eslint-plugin-query\"],\n },\n];\n\nconst loadedPlugins: string[] = [...internalPluginConfig];\nconst possiblePlugins: Record<string, Record<string, boolean>> = {};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\npluginConfig.forEach((plugin) => {\n const { configName, dependencies } = plugin;\n\n // eslint-disable-next-line security/detect-object-injection\n if ((anolilabEslintConfig as unknown as Record<string, Record<string, false | undefined>>)[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n // eslint-disable-next-line security/detect-object-injection\n possiblePlugins[configName] = {};\n\n if (foundDependencies.length === 0 && plugin.resolve !== undefined) {\n plugin.resolve.forEach((rdependency) => {\n if (resolvePackage(rdependency) !== undefined) {\n dependencies.forEach((dependency) => {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n });\n }\n\n if (foundDependencies.length === dependencies.length) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-dynamic-delete\n delete possiblePlugins[configName];\n\n loadedPlugins.push(configName);\n } else {\n dependencies.forEach((dependency) => {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n});\n\nexport const rules = baseConfig;\nexport const pluginRules = loadedPlugins;\n\nexport const possiblePluginRules = possiblePlugins;\n","/**\nDefine the rules config that are overwritten only for specific version of Node.js based on `engines.node` in package.json or the `nodeVersion` option.\n\nThe keys are rule names and the values are an Object with a valid semver (`4.0.0` is valid `4` is not) as keys and the rule configuration as values.\n\nEach entry define the rule config and the maximum Node.js version for which to set it.\nThe entry with the lowest version that is compliant with the `engines.node`/`nodeVersion` range will be used.\n\n@type {Object}\n\n@example\n```\n{\n 'plugin/rule': {\n '6.0.0': ['error', {prop: 'node-6-conf'}],\n '8.0.0': ['error', {prop: 'node-8-conf'}]\n }\n}\n```\n\nWith `engines.node` set to `>=4` the rule `plugin/rule` will not be used.\nWith `engines.node` set to `>=6` the rule `plugin/rule` will be used with the config `{prop: 'node-6-conf'}`.\nWith `engines.node` set to `>=8` the rule `plugin/rule` will be used with the config `{prop: 'node-8-conf'}`.\n*/\nconst engineRules = {\n \"n/prefer-global/text-decoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/text-encoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/url\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-global/url-search-params\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-promises/dns\": {\n \"11.14.0\": \"off\",\n },\n \"n/prefer-promises/fs\": {\n \"11.14.0\": \"off\",\n },\n \"no-useless-catch\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-destructuring\": {\n \"6.0.0\": \"off\",\n },\n \"prefer-named-capture-group\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-object-spread\": {\n \"8.3.0\": \"off\",\n },\n \"prefer-rest-params\": {\n \"6.0.0\": \"off\",\n },\n \"promise/prefer-await-to-then\": {\n \"7.6.0\": \"off\",\n },\n \"unicorn/no-new-buffer\": {\n \"5.10.0\": \"off\",\n },\n \"unicorn/prefer-flat-map\": {\n \"11.0.0\": \"off\",\n },\n \"unicorn/prefer-spread\": {\n \"5.0.0\": \"off\",\n },\n};\n\nexport default engineRules;\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/engine-node-overwrite.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","join","semver","hasFile","resolvePackage","baseConfig","internalPluginConfig","pluginConfig","loadedPlugins","possiblePlugins","plugin","configName","dependencies","eslint_config_default","foundDependencies","dependency","foundOneOfDependency","rdependency","file","rules","pluginRules","possiblePluginRules","engineRules","engine_node_overwrite_default","consoleLog","name","consolePlugin","hasLogged","installed","configRules","nodeVersion","rule","ruleConfig","minVersion","config","src_default"],"mappings":"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","sourcesContent":["/**\n * rushstack eslint-patch is used to include plugins as dev\n * dependencies instead of imposing them as peer dependencies\n *\n * {@link https://www.npmjs.com/package/@rushstack/eslint-patch}\n * {@link https://stackoverflow.com/a/74478635/1392749}\n * {@link https://github.com/eslint/eslint/issues/3458}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-1/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-2/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-3/}\n * {@link https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new}\n */\nimport \"@rushstack/eslint-patch/modern-module-resolution\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { internalPluginConfig, pluginRules, possiblePluginRules, rules } from \"./config\";\nimport engineRules from \"./engine-node-overwrite\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\nimport { consoleLog, consolePlugin } from \"./utils/loggers\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigLoaded) {\n if (process.env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/eslint-config loaded the following plugins:\\n\");\n\n consoleLog(\" @rushstack/eslint-plugin-security\");\n internalPluginConfig\n .map((name: string) => {\n if (name === \"import\") {\n return \"i\";\n }\n\n if (name === \"node\") {\n return \"n\";\n }\n\n return name;\n })\n .forEach((plugin) => consolePlugin(plugin));\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePluginRules).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"eslint-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabEsLintConfigLoaded = true;\n}\n\nconst configRules: Linter.RulesRecord = {};\nlet nodeVersion: string | undefined;\n\nif (pkg?.engines?.[\"node\"]) {\n nodeVersion = pkg.engines[\"node\"];\n}\n\nObject.entries(engineRules).forEach(([rule, ruleConfig]) => {\n Object.keys(ruleConfig)\n .sort(semver.rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && semver.intersects(nodeVersion, `<${minVersion}`)) {\n // eslint-disable-next-line security/detect-object-injection\n configRules[rule] = ruleConfig[minVersion as keyof typeof ruleConfig] as Linter.RuleEntry;\n }\n });\n});\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigPrettier && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.hasAnolilabEsLintConfigPrettier = true;\n\n if (anolilabEslintConfig[\"info_on_disabling_prettier_conflict_rule\"] !== false) {\n consoleLog(\"\\nFound prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier\");\n }\n}\n\nconst config: Linter.Config = {\n // After an .eslintrc.js file is loaded, ESLint will normally continue visiting all parent folders\n // to look for other .eslintrc.js files, and also consult a personal file ~/.eslintrc.js. If any files\n // are found, their options will be merged. This is difficult for humans to understand, and it will cause\n // nondeterministic behavior if files are loaded from outside the Git working folder.\n //\n // Setting root=true causes ESLint to stop looking for other config files after the first .eslintrc.js\n extends: [\n ...rules.map((plugin) => join(__dirname, `./config/${plugin}.js`)),\n\n ...pluginRules.map((plugin) => join(__dirname, `./config/plugins/${plugin}.js`)),\n ],\n globals: {\n ...globals.browser,\n ...globals.nodeBuiltin,\n },\n ignorePatterns: [\n \"!.*\",\n\n \".git/\",\n \"node_modules/\",\n \"bower_components/\",\n \"jspm_packages/\",\n \".npm/\",\n\n \"lib-cov/\",\n \"coverage/\",\n \".nyc_output/\",\n \".cache/\",\n\n \"build/\",\n \"dist/\",\n \"tmp/\",\n\n \"**/*.min.*\",\n\n // Manually authored .d.ts files are generally used to describe external APIs that are not expected\n // to follow our coding conventions. Linting those files tends to produce a lot of spurious suppressions,\n // so we simply ignore them.\n \"*.d.ts\",\n\n \"pnpm-lock.yaml\",\n ],\n overrides: [\n {\n files: [\"**/migrations/*.{js,ts}\"],\n rules: {\n \"filenames/match-regex\": \"off\",\n },\n },\n {\n files: [\n // Test files\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n\n // Facebook convention\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n\n // Microsoft convention\n \"**/test/*.{js,ts,tsx}\",\n ],\n rules: {\n \"no-magic-numbers\": \"off\",\n \"sonarjs/no-duplicate-string\": \"off\",\n },\n },\n // Fixes https://github.com/eslint/eslint/discussions/15305\n {\n files: packageIsTypeModule ? [\"*.js\", \"*.mjs\"] : [\"*.mjs\"],\n parser: \"@babel/eslint-parser\",\n parserOptions: {\n babelOptions: {\n plugins: [\"@babel/plugin-syntax-import-assertions\"],\n },\n requireConfigFile: false,\n },\n },\n ],\n // Disable the parser by default\n parser: \"\",\n // is loaded.\n rules: {\n ...configRules,\n },\n};\n\nexport default config;\n","import { hasDependency, hasDevDependency, hasFile, resolvePackage } from \"@anolilab/package-json-utils\";\n\nimport type { PackageRules } from \"./types\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst baseConfig = [\"best-practices\", \"errors\", \"style\", \"es6\", \"variables\"];\n\n// eslint-disable-next-line import/exports-last\nexport const internalPluginConfig = [\n \"compat\",\n \"eslint-comments\",\n \"import\",\n \"promise\",\n \"simple-import-sort\",\n \"no-extend-native\",\n \"node\",\n // Security Rules\n \"no-secrets\",\n \"sonarjs\",\n \"security\",\n \"regexp\",\n // file rules\n \"jsonc\",\n \"markdown\",\n \"toml\",\n \"yml\",\n \"html\",\n\n // custom rules\n \"antfu\",\n \"unicorn\",\n \"es\",\n \"perfectionist\",\n];\n\nconst pluginConfig: PackageRules = [\n {\n configName: \"array-func\",\n dependencies: [\"eslint-plugin-array-func\"],\n },\n {\n configName: \"jsdoc\",\n dependencies: [\"eslint-plugin-jsdoc\"],\n },\n {\n configName: \"tsdoc\",\n dependencies: [\"eslint-plugin-tsdoc\", \"typescript\"],\n },\n {\n configName: \"lodash\",\n dependencies: [\"lodash\", \"eslint-plugin-lodash\"],\n },\n {\n configName: \"lodash-fp\",\n dependencies: [\"lodash\", \"eslint-plugin-lodash-fp\"],\n },\n {\n configName: \"you-dont-need-lodash-underscore\",\n dependencies: [\"lodash\", \"eslint-plugin-you-dont-need-lodash-underscore\"],\n },\n {\n configName: \"mdx\",\n dependencies: [\"eslint-plugin-mdx\"],\n oneOfDependency: [\"nextra\", \"docz\", \"@docusaurus/core\", \"gatsby-plugin-mdx\"],\n resolve: [\"@mdx-js/mdx\", \"remark-mdx\", \"@mdx-js/loader\", \"@mdx-js/rollup\", \"@mdx-js/react\"],\n },\n {\n configName: \"no-unsanitized\",\n dependencies: [\"eslint-plugin-no-unsanitized\"],\n },\n {\n configName: \"react\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react\"],\n },\n {\n configName: \"react-redux\",\n dependencies: [\"eslint-plugin-react-redux\"],\n oneOfDependency: [\"@reduxjs/toolkit\", \"redux\"],\n },\n {\n configName: \"jsx-a11y\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-jsx-a11y\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react-hooks\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"react\", \"react-dom\", \"@arthurgeron/eslint-plugin-react-usememo\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment-timezone\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"eslint-plugin-tailwindcss\"],\n },\n {\n configName: \"cypress\",\n dependencies: [\"cypress\", \"eslint-plugin-cypress\"],\n },\n {\n configName: \"jest\",\n dependencies: [\"jest\", \"eslint-plugin-jest\"],\n },\n {\n configName: \"jest-dom\",\n dependencies: [\"jest\", \"@testing-library/jest-dom\", \"eslint-plugin-jest-dom\"],\n },\n {\n configName: \"jest-async\",\n dependencies: [\"jest\", \"eslint-plugin-jest-async\"],\n },\n {\n configName: \"jest-formatting\",\n dependencies: [\"jest\", \"eslint-plugin-jest-formatting\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"tailwindcss\"],\n },\n {\n configName: \"testing-library-dom\",\n dependencies: [\"@testing-library/dom\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"testing-library-react\",\n dependencies: [\"react\", \"@testing-library/react\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"typescript\",\n dependencies: [\"typescript\"],\n files: [\"tsconfig.json\", \"tsconfig.eslint.json\"],\n },\n {\n configName: \"etc\",\n dependencies: [\"typescript\", \"eslint-plugin-etc\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\"],\n },\n {\n configName: \"zod\",\n dependencies: [\"zod\", \"eslint-plugin-zod\"],\n },\n {\n configName: \"ava\",\n dependencies: [\"ava\", \"eslint-plugin-ava\"],\n },\n {\n configName: \"editorconfig\",\n dependencies: [\"eslint-plugin-editorconfig\"],\n files: [\".editorconfig\"],\n },\n {\n configName: \"storybook\",\n dependencies: [\"storybook\", \"eslint-plugin-storybook\"],\n },\n {\n configName: \"playwright\",\n dependencies: [\"playwright\", \"eslint-plugin-playwright\"],\n },\n {\n configName: \"tanstack-query\",\n dependencies: [\"@tanstack/react-query\", \"@tanstack/eslint-plugin-query\"],\n },\n];\n\nconst loadedPlugins: string[] = [...internalPluginConfig];\nconst possiblePlugins: Record<string, Record<string, boolean>> = {};\n\nif (loadedPlugins.length === internalPluginConfig.length) {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n pluginConfig.forEach((plugin) => {\n const { configName, dependencies } = plugin;\n\n // eslint-disable-next-line security/detect-object-injection\n if ((anolilabEslintConfig as unknown as Record<string, Record<string, false | undefined>>)[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n // eslint-disable-next-line security/detect-object-injection\n possiblePlugins[configName] = {};\n\n if (foundDependencies.length === 0) {\n if (plugin.oneOfDependency !== undefined) {\n let foundOneOfDependency = false;\n\n plugin.oneOfDependency.forEach((dependency) => {\n if (!foundOneOfDependency && (hasDependency(dependency) || hasDevDependency(dependency))) {\n foundOneOfDependency = true;\n\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = true;\n }\n });\n }\n\n if (plugin.resolve !== undefined) {\n plugin.resolve.forEach((rdependency) => {\n if (resolvePackage(rdependency) !== undefined) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[rdependency] = true;\n }\n });\n }\n\n if (plugin.files !== undefined) {\n plugin.files.forEach((file) => {\n if (hasFile(file)) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[file] = true;\n }\n });\n }\n }\n\n if (foundDependencies.length === dependencies.length) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-dynamic-delete\n delete possiblePlugins[configName];\n\n loadedPlugins.push(configName);\n } else {\n dependencies.forEach((dependency) => {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n });\n}\n\nexport const rules = baseConfig;\nexport const pluginRules = loadedPlugins;\n\nexport const possiblePluginRules = possiblePlugins;\n","/**\nDefine the rules config that are overwritten only for specific version of Node.js based on `engines.node` in package.json or the `nodeVersion` option.\n\nThe keys are rule names and the values are an Object with a valid semver (`4.0.0` is valid `4` is not) as keys and the rule configuration as values.\n\nEach entry define the rule config and the maximum Node.js version for which to set it.\nThe entry with the lowest version that is compliant with the `engines.node`/`nodeVersion` range will be used.\n\n@type {Object}\n\n@example\n```\n{\n 'plugin/rule': {\n '6.0.0': ['error', {prop: 'node-6-conf'}],\n '8.0.0': ['error', {prop: 'node-8-conf'}]\n }\n}\n```\n\nWith `engines.node` set to `>=4` the rule `plugin/rule` will not be used.\nWith `engines.node` set to `>=6` the rule `plugin/rule` will be used with the config `{prop: 'node-6-conf'}`.\nWith `engines.node` set to `>=8` the rule `plugin/rule` will be used with the config `{prop: 'node-8-conf'}`.\n*/\nconst engineRules = {\n \"n/prefer-global/text-decoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/text-encoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/url\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-global/url-search-params\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-promises/dns\": {\n \"11.14.0\": \"off\",\n },\n \"n/prefer-promises/fs\": {\n \"11.14.0\": \"off\",\n },\n \"no-useless-catch\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-destructuring\": {\n \"6.0.0\": \"off\",\n },\n \"prefer-named-capture-group\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-object-spread\": {\n \"8.3.0\": \"off\",\n },\n \"prefer-rest-params\": {\n \"6.0.0\": \"off\",\n },\n \"promise/prefer-await-to-then\": {\n \"7.6.0\": \"off\",\n },\n \"unicorn/no-new-buffer\": {\n \"5.10.0\": \"off\",\n },\n \"unicorn/prefer-flat-map\": {\n \"11.0.0\": \"off\",\n },\n \"unicorn/prefer-spread\": {\n \"5.0.0\": \"off\",\n },\n};\n\nexport default engineRules;\n"]}