@anolilab/eslint-config 8.0.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +4 -5
  3. package/dist/chunk-H7VQP3ZD.js +8 -0
  4. package/dist/chunk-H7VQP3ZD.js.map +1 -0
  5. package/dist/{chunk-BH4PQLFK.js → chunk-ZEBBNF2R.js} +2 -2
  6. package/dist/chunk-ZEBBNF2R.js.map +1 -0
  7. package/dist/config/plugins/antfu.js +2 -2
  8. package/dist/config/plugins/array-func.js +2 -2
  9. package/dist/config/plugins/babel.js +3 -3
  10. package/dist/config/plugins/cypress.js.map +1 -1
  11. package/dist/config/plugins/es.js +2 -2
  12. package/dist/config/plugins/etc.js +2 -2
  13. package/dist/config/plugins/html.js +1 -1
  14. package/dist/config/plugins/html.js.map +1 -1
  15. package/dist/config/plugins/jest.js +7 -2
  16. package/dist/config/plugins/jest.js.map +1 -1
  17. package/dist/config/plugins/markdown.js +1 -1
  18. package/dist/config/plugins/markdown.js.map +1 -1
  19. package/dist/config/plugins/mdx.js +2 -2
  20. package/dist/config/plugins/mdx.js.map +1 -1
  21. package/dist/config/plugins/perfectionist.js +14 -0
  22. package/dist/config/plugins/perfectionist.js.map +1 -0
  23. package/dist/config/plugins/react-hooks.js +3 -2
  24. package/dist/config/plugins/react-hooks.js.map +1 -1
  25. package/dist/config/plugins/react-redux.js +3 -2
  26. package/dist/config/plugins/react-redux.js.map +1 -1
  27. package/dist/config/plugins/react-usememo.js +10 -0
  28. package/dist/config/plugins/react-usememo.js.map +1 -0
  29. package/dist/config/plugins/react.js +3 -3
  30. package/dist/config/plugins/react.js.map +1 -1
  31. package/dist/config/plugins/regexp.js +2 -2
  32. package/dist/config/plugins/sonarjs.js +2 -2
  33. package/dist/config/plugins/tailwindcss.js +2 -2
  34. package/dist/config/plugins/tanstack-query.js +2 -2
  35. package/dist/config/plugins/testing-library.js +2 -2
  36. package/dist/config/plugins/testing-library.js.map +1 -1
  37. package/dist/config/plugins/tsdoc.js +2 -2
  38. package/dist/config/plugins/typescript.js +2 -2
  39. package/dist/config/plugins/typescript.js.map +1 -1
  40. package/dist/config/plugins/you-dont-need-lodash-underscore.js +2 -1
  41. package/dist/config/plugins/you-dont-need-lodash-underscore.js.map +1 -1
  42. package/dist/config/plugins/you-dont-need-momentjs.js +3 -2
  43. package/dist/config/plugins/you-dont-need-momentjs.js.map +1 -1
  44. package/dist/config/plugins/zod.js +3 -2
  45. package/dist/config/plugins/zod.js.map +1 -1
  46. package/dist/config/style.js +2 -2
  47. package/dist/globals.d.ts +8 -0
  48. package/dist/globals.js +17 -0
  49. package/dist/globals.js.map +1 -0
  50. package/dist/index.js +9 -7
  51. package/dist/index.js.map +1 -1
  52. package/dist/postinstall.js +13 -9
  53. package/dist/postinstall.js.map +1 -1
  54. package/dist/typescript-type-checking.js +2 -2
  55. package/package.json +14 -9
  56. package/dist/chunk-BH4PQLFK.js.map +0 -1
  57. package/dist/chunk-VW5ZVT2B.js +0 -8
  58. package/dist/chunk-VW5ZVT2B.js.map +0 -1
  59. package/dist/config/plugins/sort-keys-fix.js +0 -9
  60. package/dist/config/plugins/sort-keys-fix.js.map +0 -1
  61. package/dist/config/plugins/typescript-sort-keys.js +0 -9
  62. package/dist/config/plugins/typescript-sort-keys.js.map +0 -1
  63. /package/dist/config/plugins/{sort-keys-fix.d.ts → perfectionist.d.ts} +0 -0
  64. /package/dist/config/plugins/{typescript-sort-keys.d.ts → react-usememo.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/postinstall.ts"],"names":["packageIsTypeModule","projectPath","existsSync","readFileSync","writeFile","join","promisify","require_postinstall","__commonJSMin","writeFileAsync","configFile","writeEslintRc","filename","eslintPath","pluginExtends","parserOptions","tsconfigPath","tsConfig","ecmaVersion","content","writeEslintIgnore","eslintIgnorePath","error"],"mappings":"wCAAA,OAAS,uBAAAA,EAAqB,eAAAC,MAAmB,+BACjD,OAAS,cAAAC,EAAY,gBAAAC,EAAc,aAAAC,MAAiB,KACpD,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,OAH1B,IAAAC,EAAAC,EAAA,KAMI,QAAQ,IAAI,IAEZ,QAAQ,KAAK,CAAC,EAGlB,IAAMC,EAAiBH,EAAUF,CAAS,EAE1C,QAAQ,IAAI,sCAAuCH,EAAa;AAAA,CAAI,EAEpE,IAAMS,EAAa,YAMbC,EAAgB,IAAM,CAExB,QAAWC,IAAY,CAACF,EAAY,GAAGA,CAAU,MAAO,GAAGA,CAAU,OAAQ,GAAGA,CAAU,QAAS,GAAGA,CAAU,QAAS,GAAGA,CAAU,MAAM,EAExI,GAAIR,EAAWG,EAAKJ,EAAaW,CAAQ,CAAC,EACtC,eAAQ,KAAK,iBAAOA,CAAQ;AAAA;AAAA,gEAEwB,EAE7C,QAAQ,QAAQ,EAI/B,IAAMC,EAAaR,EAAKJ,EAAa,aAAaD,EAAsB,IAAM,EAAE,IAAI,EAEhFc,EAAgB,GAChBC,EAAgB;AAAA;AAAA;AAAA,sBAGFf,EAAsB,WAAa,YAAY;AAAA,QAG3DgB,EAAeX,EAAKJ,EAAa,eAAe,EAGtD,GAAIC,EAAWc,CAAY,EAAG,CAE1B,IAAMC,EAAW,KAAK,MAAMd,EAAaa,EAAc,MAAM,CAAC,EAE1DE,EAAc,SAEdD,EAAS,iBAAiB,SAC1BC,EAAcD,EAAS,gBAAgB,OAEvCC,EACIA,EAAY,YAAY,IAAM,UAAYA,EAAY,YAAY,IAAM,SAAW,SAAWA,EAAY,YAAY,EAAE,QAAQ,KAAM,EAAE,EAExIA,IAAgB,UAAYA,IAAgB,QAAUA,IAAgB,QAAUA,IAAgB,MAChGJ,EAAgB,gCAAgCI,CAAW,MAInEH,EAAgB;AAAA;AAAA;AAAA,uBAGDG,IAAgB,SAAW,IAAIA,CAAW,IAAMA,CAAW;AAAA,sBAC5DlB,EAAsB,WAAa,YAAY;AAAA,OAEjE,CAEA,IAAMmB,EAAU;AAAA;AAAA;AAAA;AAAA,yCAIqBL,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,QAK9CC,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoCjB,OAAON,EAAeI,EAAYM,EAAS,MAAM,CACrD,EAKMC,EAAoB,IAAM,CAC5B,IAAMC,EAAmBhB,EAAKJ,EAAa,eAAe,EAG1D,OAAIC,EAAWmB,CAAgB,GAC3B,QAAQ,KAAK,4CAAkC,EAExC,QAAQ,QAAQ,GAGpBZ,EAAeY,EAAkB,GAAI,MAAM,CACtD,GAGC,SAAY,CACT,GAAI,CAEA,MAAM,QAAQ,IAAI,CAACV,EAAc,EAAGS,EAAkB,CAAC,CAAC,EAExD,QAAQ,IAAI,4CAAqC,EAGjD,QAAQ,KAAK,CAAC,CAClB,OAASE,EAAP,CACE,QAAQ,IAAI,kCAA2B,EACvC,QAAQ,MAAMA,CAAK,EAGnB,QAAQ,KAAK,CAAC,CAClB,CACJ,GAAG","sourcesContent":["import { packageIsTypeModule, projectPath } from \"@anolilab/package-json-utils\";\nimport { existsSync, readFileSync, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport type { TsConfigJson } from \"type-fest\";\n\nif (process.env[\"CI\"]) {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\n\nconsole.log(\"Configuring @anolilab/eslint-config\", projectPath, \"\\n\");\n\nconst configFile = \".eslintrc\";\n\n/**\n * Writes .eslintrc.js if it doesn't exist. Warns if it exists.\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst writeEslintRc = () => {\n // eslint-disable-next-line no-restricted-syntax\n for (const filename of [configFile, `${configFile}.js`, `${configFile}.cjs`, `${configFile}.json`, `${configFile}.yaml`, `${configFile}.yml`]) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(join(projectPath, filename))) {\n console.warn(`⚠️ ${filename} already exists;\nMake sure that it includes the following for @anolilab/eslint-config'\nto work as it should: { extends: [\"@anolilab/eslint-config\"] }.`);\n\n return Promise.resolve();\n }\n }\n\n const eslintPath = join(projectPath, `.eslintrc.${packageIsTypeModule ? \"c\" : \"\"}js`);\n\n let pluginExtends = \"\";\n let parserOptions = `\n parserOptions: {\n ecmaVersion: \"latest\",\n sourceType: ${packageIsTypeModule ? '\"module\"' : '\"commonjs\"'},\n },`;\n\n const tsconfigPath = join(projectPath, \"tsconfig.json\");\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(tsconfigPath)) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const tsConfig = JSON.parse(readFileSync(tsconfigPath, \"utf8\")) as TsConfigJson;\n\n let ecmaVersion = \"latest\";\n\n if (tsConfig.compilerOptions?.target) {\n ecmaVersion = tsConfig.compilerOptions.target;\n\n ecmaVersion =\n ecmaVersion.toLowerCase() === \"es2022\" || ecmaVersion.toLowerCase() === \"esnext\" ? \"latest\" : ecmaVersion.toLowerCase().replace(\"es\", \"\");\n\n if (ecmaVersion !== \"latest\" && ecmaVersion !== \"2022\" && ecmaVersion !== \"2021\" && ecmaVersion !== \"6\") {\n pluginExtends = `, \"plugin:es-x/restrict-to-es${ecmaVersion}\"`;\n }\n }\n\n parserOptions = `\n parserOptions: {\n project: \"./tsconfig.json\",\n ecmaVersion: ${ecmaVersion === \"latest\" ? `\"${ecmaVersion}\"` : ecmaVersion},\n sourceType: ${packageIsTypeModule ? '\"module\"' : '\"commonjs\"'},\n },`;\n }\n\n const content = `/** @ts-check */\n/** @type {import('eslint').Linter.Config} */\nmodule.exports = {\n root: true,\n extends: [\"@anolilab/eslint-config\"${pluginExtends}],\n ignorePatterns: [\"!**/*\"],\n env: {\n // Your environments (which contains several predefined global variables)\n // Most environments are loaded automatically if our rules are added\n },${parserOptions}\n globals: {\n // Your global variables (setting to false means it's not allowed to be reassigned)\n // myGlobal: false\n },\n rules: {\n // Customize your rules\n },\n overrides: [\n {\n files: [\n \"*.ts\",\n \"*.tsx\",\n \"*.mts\",\n \"*.cts\",\n \"*.js\",\n \"*.jsx\",\n ],\n // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting\n parserOptions: {},\n rules: {},\n },\n {\n files: [\"*.ts\", \"*.tsx\", \"*.mts\", \"*.cts\"],\n // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting\n parserOptions: {},\n rules: {},\n },\n {\n files: [\"*.js\", \"*.jsx\"],\n rules: {},\n },\n ],\n};\n`;\n\n return writeFileAsync(eslintPath, content, \"utf8\");\n};\n\n/**\n * Writes .eslintignore if it doesn't exist. Warns if it exists.\n */\nconst writeEslintIgnore = () => {\n const eslintIgnorePath = join(projectPath, \".eslintignore\");\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(eslintIgnorePath)) {\n console.warn(\"⚠️ .eslintignore already exists\");\n\n return Promise.resolve();\n }\n\n return writeFileAsync(eslintIgnorePath, \"\", \"utf8\");\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n // eslint-disable-next-line compat/compat\n await Promise.all([writeEslintRc(), writeEslintIgnore()]);\n\n console.log(\"😎 Everything went well, have fun!\");\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n }\n})();\n"]}
1
+ {"version":3,"sources":["../src/postinstall.ts"],"names":["packageIsTypeModule","projectPath","existsSync","readFileSync","writeFile","join","env","exit","promisify","require_postinstall","__commonJSMin","writeFileAsync","configFile","writeEslintRc","filename","eslintPath","pluginExtends","parserOptions","tsconfigPath","ecmaVersion","tsConfig","content","writeEslintIgnore","eslintIgnorePath","error"],"mappings":"wCAAA,OAAS,uBAAAA,EAAqB,eAAAC,MAAmB,+BACjD,OAAS,cAAAC,EAAY,gBAAAC,EAAc,aAAAC,MAAiB,KACpD,OAAS,QAAAC,MAAY,OACrB,OAAS,OAAAC,EAAK,QAAAC,MAAY,UAC1B,OAAS,aAAAC,MAAiB,OAJ1B,IAAAC,EAAAC,EAAA,KAOIJ,EAAI,IACJC,EAAK,CAAC,EAGV,IAAMI,EAAiBH,EAAUJ,CAAS,EAE1C,QAAQ,IAAI,sCAAuCH,EAAa;AAAA,CAAI,EAEpE,IAAMW,EAAa,YAMbC,EAAgB,IAAM,CAExB,QAAWC,IAAY,CAACF,EAAY,GAAGA,CAAU,MAAO,GAAGA,CAAU,OAAQ,GAAGA,CAAU,QAAS,GAAGA,CAAU,QAAS,GAAGA,CAAU,MAAM,EAExI,GAAIV,EAAWG,EAAKJ,EAAaa,CAAQ,CAAC,EACtC,eAAQ,KAAK,iBAAOA,CAAQ;AAAA;AAAA,gEAEwB,EAE7C,QAAQ,QAAQ,EAI/B,IAAMC,EAAaV,EAAKJ,EAAa,aAAaD,EAAsB,IAAM,EAAE,IAAI,EAEhFgB,EAAgB,GAChBC,EAAgB;AAAA;AAAA;AAAA,sBAGFjB,EAAsB,WAAa,YAAY;AAAA,QAG3DkB,EAAeb,EAAKJ,EAAa,eAAe,EAElDkB,EAAc,SAGlB,GAAIjB,EAAWgB,CAAY,EAAG,CAE1B,IAAME,EAAW,KAAK,MAAMjB,EAAae,EAAc,MAAM,CAAC,EAE1DE,EAAS,iBAAiB,SAC1BD,EAAcC,EAAS,gBAAgB,OAEvCD,EACIA,EAAY,YAAY,IAAM,UAAYA,EAAY,YAAY,IAAM,SAAW,SAAWA,EAAY,YAAY,EAAE,QAAQ,KAAM,EAAE,EAExIA,IAAgB,UAAYA,IAAgB,QAAUA,IAAgB,QAAUA,IAAgB,MAChGH,EAAgB,gCAAgCG,CAAW,MAInEF,EAAgB;AAAA;AAAA;AAAA,uBAGDE,IAAgB,SAAW,IAAIA,CAAW,IAAMA,CAAW;AAAA,sBAC5DnB,EAAsB,WAAa,YAAY;AAAA,OAEjE,CAEA,IAAMqB,EAAU,GACZ,CAAC,SAAU,SAAU,SAAU,SAAU,QAAQ,EAAE,SAASF,CAAW,EAAI;AAAA;AAAA,EAA+D,EAC9I;AAAA;AAAA;AAAA;AAAA,yCAIqCH,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,QAK9CC,CAAa;AAAA,gBAEb,CAAC,SAAU,SAAU,SAAU,SAAU,QAAQ,EAAE,SAASE,CAAW,EACjE;AAAA,qBAAwBA,IAAgB,SAAW,SAAWA,CAAW,IACzE,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCA,OAAOR,EAAeI,EAAYM,EAAS,MAAM,CACrD,EAKMC,EAAoB,IAAM,CAC5B,IAAMC,EAAmBlB,EAAKJ,EAAa,eAAe,EAG1D,OAAIC,EAAWqB,CAAgB,GAC3B,QAAQ,KAAK,4CAAkC,EAExC,QAAQ,QAAQ,GAGpBZ,EAAeY,EAAkB,GAAI,MAAM,CACtD,GAGC,SAAY,CACT,GAAI,CAEA,MAAM,QAAQ,IAAI,CAACV,EAAc,EAAGS,EAAkB,CAAC,CAAC,EAExD,QAAQ,IAAI,4CAAqC,EAEjDf,EAAK,CAAC,CACV,OAASiB,EAAP,CACE,QAAQ,IAAI,kCAA2B,EACvC,QAAQ,MAAMA,CAAK,EAEnBjB,EAAK,CAAC,CACV,CACJ,GAAG","sourcesContent":["import { packageIsTypeModule, projectPath } from \"@anolilab/package-json-utils\";\nimport { existsSync, readFileSync, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { env, exit } from \"node:process\";\nimport { promisify } from \"node:util\";\nimport type { TsConfigJson } from \"type-fest\";\n\nif (env[\"CI\"]) {\n exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\n\nconsole.log(\"Configuring @anolilab/eslint-config\", projectPath, \"\\n\");\n\nconst configFile = \".eslintrc\";\n\n/**\n * Writes .eslintrc.js if it doesn't exist. Warns if it exists.\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst writeEslintRc = () => {\n // eslint-disable-next-line no-restricted-syntax\n for (const filename of [configFile, `${configFile}.js`, `${configFile}.cjs`, `${configFile}.json`, `${configFile}.yaml`, `${configFile}.yml`]) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(join(projectPath, filename))) {\n console.warn(`⚠️ ${filename} already exists;\nMake sure that it includes the following for @anolilab/eslint-config'\nto work as it should: { extends: [\"@anolilab/eslint-config\"] }.`);\n\n return Promise.resolve();\n }\n }\n\n const eslintPath = join(projectPath, `.eslintrc.${packageIsTypeModule ? \"c\" : \"\"}js`);\n\n let pluginExtends = \"\";\n let parserOptions = `\n parserOptions: {\n ecmaVersion: \"latest\",\n sourceType: ${packageIsTypeModule ? '\"module\"' : '\"commonjs\"'},\n },`;\n\n const tsconfigPath = join(projectPath, \"tsconfig.json\");\n\n let ecmaVersion = \"latest\";\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(tsconfigPath)) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const tsConfig = JSON.parse(readFileSync(tsconfigPath, \"utf8\")) as TsConfigJson;\n\n if (tsConfig.compilerOptions?.target) {\n ecmaVersion = tsConfig.compilerOptions.target;\n\n ecmaVersion =\n ecmaVersion.toLowerCase() === \"es2022\" || ecmaVersion.toLowerCase() === \"esnext\" ? \"latest\" : ecmaVersion.toLowerCase().replace(\"es\", \"\");\n\n if (ecmaVersion !== \"latest\" && ecmaVersion !== \"2022\" && ecmaVersion !== \"2021\" && ecmaVersion !== \"6\") {\n pluginExtends = `, \"plugin:es-x/restrict-to-es${ecmaVersion}\"`;\n }\n }\n\n parserOptions = `\n parserOptions: {\n project: \"./tsconfig.json\",\n ecmaVersion: ${ecmaVersion === \"latest\" ? `\"${ecmaVersion}\"` : ecmaVersion},\n sourceType: ${packageIsTypeModule ? '\"module\"' : '\"commonjs\"'},\n },`;\n }\n\n const content = `${\n [\"es2015\", \"es2017\", \"es2020\", \"es2021\", \"latest\"].includes(ecmaVersion) ? 'var { globals } = require(\"./packages/eslint-config\");\\n\\n' : \"\"\n }/** @ts-check */\n/** @type {import('eslint').Linter.Config} */\nmodule.exports = {\n root: true,\n extends: [\"@anolilab/eslint-config\"${pluginExtends}],\n ignorePatterns: [\"!**/*\"],\n env: {\n // Your environments (which contains several predefined global variables)\n // Most environments are loaded automatically if our rules are added\n },${parserOptions}\n globals: {${\n [\"es2015\", \"es2017\", \"es2020\", \"es2021\", \"latest\"].includes(ecmaVersion)\n ? `\\n ...globals.${ecmaVersion === \"latest\" ? \"es2021\" : ecmaVersion},`\n : \"\"\n }\n // Your global variables (setting to false means it's not allowed to be reassigned)\n // myGlobal: false\n },\n rules: {\n // Customize your rules\n },\n overrides: [\n {\n files: [\n \"*.ts\",\n \"*.tsx\",\n \"*.mts\",\n \"*.cts\",\n \"*.js\",\n \"*.jsx\",\n ],\n // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting\n parserOptions: {},\n rules: {},\n },\n {\n files: [\"*.ts\", \"*.tsx\", \"*.mts\", \"*.cts\"],\n // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting\n parserOptions: {},\n rules: {},\n },\n {\n files: [\"*.js\", \"*.jsx\"],\n rules: {},\n },\n ],\n};\n`;\n\n return writeFileAsync(eslintPath, content, \"utf8\");\n};\n\n/**\n * Writes .eslintignore if it doesn't exist. Warns if it exists.\n */\nconst writeEslintIgnore = () => {\n const eslintIgnorePath = join(projectPath, \".eslintignore\");\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(eslintIgnorePath)) {\n console.warn(\"⚠️ .eslintignore already exists\");\n\n return Promise.resolve();\n }\n\n return writeFileAsync(eslintIgnorePath, \"\", \"utf8\");\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n // eslint-disable-next-line compat/compat\n await Promise.all([writeEslintRc(), writeEslintIgnore()]);\n\n console.log(\"😎 Everything went well, have fun!\");\n\n exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n exit(1);\n }\n})();\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkMQFZFF2T_js = require('./chunk-MQFZFF2T.js');
4
- var chunkVW5ZVT2B_js = require('./chunk-VW5ZVT2B.js');
4
+ var chunkH7VQP3ZD_js = require('./chunk-H7VQP3ZD.js');
5
5
  require('./chunk-3NVDJZNH.js');
6
6
 
7
- var e=chunkMQFZFF2T_js.a.rules,i=chunkVW5ZVT2B_js.a("typescript",{rules:{"@typescript-eslint/await-thenable":"error","@typescript-eslint/consistent-type-exports":["error",{fixMixedExportsWithInlineTypeSpecifier:!0}],"@typescript-eslint/dot-notation":["error",{allowKeywords:!0}],"@typescript-eslint/no-base-to-string":["error",{ignoredTypeNames:["RegExp"]}],"@typescript-eslint/no-confusing-void-expression":["error",{ignoreArrowShorthand:!0,ignoreVoidOperator:!1}],"@typescript-eslint/no-floating-promises":["error",{ignoreIIFE:!0,ignoreVoid:!0}],"@typescript-eslint/no-for-in-array":"error","@typescript-eslint/no-implied-eval":e["no-implied-eval"],"@typescript-eslint/no-meaningless-void-operator":["error",{checkNever:!0}],"@typescript-eslint/no-misused-promises":["error",{checksConditionals:!0,checksVoidReturn:{arguments:!0,attributes:!1,properties:!0,returns:!0,variables:!0}}],"@typescript-eslint/no-throw-literal":e["no-throw-literal"],"@typescript-eslint/no-unnecessary-condition":"error","@typescript-eslint/no-unnecessary-qualifier":"error","@typescript-eslint/no-unnecessary-type-arguments":"error","@typescript-eslint/no-unnecessary-type-assertion":"off","@typescript-eslint/prefer-includes":"error","@typescript-eslint/prefer-nullish-coalescing":["error",{ignoreConditionalTests:!0,ignoreMixedLogicalExpressions:!0}],"@typescript-eslint/prefer-readonly":["error",{onlyInlineLambdas:!1}],"@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/require-array-sort-compare":["error",{ignoreStringArrays:!1}],"@typescript-eslint/require-await":e["require-await"],"@typescript-eslint/restrict-plus-operands":"error","@typescript-eslint/return-await":["error","always"],"@typescript-eslint/switch-exhaustiveness-check":"error","@typescript-eslint/unbound-method":["error",{ignoreStatic:!1}],"dot-notation":"off","no-implied-eval":"off","no-new-func":"off","no-throw-literal":"off","require-await":"off"}}),o=i;
7
+ var e=chunkMQFZFF2T_js.a.rules,i=chunkH7VQP3ZD_js.a("typescript",{rules:{"@typescript-eslint/await-thenable":"error","@typescript-eslint/consistent-type-exports":["error",{fixMixedExportsWithInlineTypeSpecifier:!0}],"@typescript-eslint/dot-notation":["error",{allowKeywords:!0}],"@typescript-eslint/no-base-to-string":["error",{ignoredTypeNames:["RegExp"]}],"@typescript-eslint/no-confusing-void-expression":["error",{ignoreArrowShorthand:!0,ignoreVoidOperator:!1}],"@typescript-eslint/no-floating-promises":["error",{ignoreIIFE:!0,ignoreVoid:!0}],"@typescript-eslint/no-for-in-array":"error","@typescript-eslint/no-implied-eval":e["no-implied-eval"],"@typescript-eslint/no-meaningless-void-operator":["error",{checkNever:!0}],"@typescript-eslint/no-misused-promises":["error",{checksConditionals:!0,checksVoidReturn:{arguments:!0,attributes:!1,properties:!0,returns:!0,variables:!0}}],"@typescript-eslint/no-throw-literal":e["no-throw-literal"],"@typescript-eslint/no-unnecessary-condition":"error","@typescript-eslint/no-unnecessary-qualifier":"error","@typescript-eslint/no-unnecessary-type-arguments":"error","@typescript-eslint/no-unnecessary-type-assertion":"off","@typescript-eslint/prefer-includes":"error","@typescript-eslint/prefer-nullish-coalescing":["error",{ignoreConditionalTests:!0,ignoreMixedLogicalExpressions:!0}],"@typescript-eslint/prefer-readonly":["error",{onlyInlineLambdas:!1}],"@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/require-array-sort-compare":["error",{ignoreStringArrays:!1}],"@typescript-eslint/require-await":e["require-await"],"@typescript-eslint/restrict-plus-operands":"error","@typescript-eslint/return-await":["error","always"],"@typescript-eslint/switch-exhaustiveness-check":"error","@typescript-eslint/unbound-method":["error",{ignoreStatic:!1}],"dot-notation":"off","no-implied-eval":"off","no-new-func":"off","no-throw-literal":"off","require-await":"off"}}),o=i;
8
8
 
9
9
  module.exports = o;
10
10
  //# sourceMappingURL=out.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anolilab/eslint-config",
3
- "version": "8.0.0",
3
+ "version": "9.0.0",
4
4
  "description": "ESLint shareable config for the Anolilab JavaScript style guide.",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -16,6 +16,7 @@
16
16
  "es2017",
17
17
  "es2018",
18
18
  "es2020",
19
+ "globals",
19
20
  "eslint-import-resolver-node",
20
21
  "eslint-import-resolver-typescript",
21
22
  "eslint-plugin-antfu",
@@ -34,9 +35,7 @@
34
35
  "eslint-plugin-regexp",
35
36
  "eslint-plugin-simple-import-sort",
36
37
  "eslint-plugin-sonarjs",
37
- "eslint-plugin-sort-keys-fix",
38
38
  "eslint-plugin-toml",
39
- "eslint-plugin-typescript-sort-keys",
40
39
  "eslint-plugin-unicorn",
41
40
  "eslint-plugin-yml",
42
41
  "eslint-plugin-array-func",
@@ -95,6 +94,10 @@
95
94
  "types": "./dist/typescript-type-checking.d.ts",
96
95
  "require": "./dist/typescript-type-checking.js"
97
96
  },
97
+ "./globals": {
98
+ "types": "./dist/globals.d.ts",
99
+ "require": "./dist/globals.js"
100
+ },
98
101
  "./package.json": "./package.json"
99
102
  },
100
103
  "main": "dist/index.js",
@@ -134,17 +137,17 @@
134
137
  "eslint-plugin-no-loops": "^0.3.0",
135
138
  "eslint-plugin-no-secrets": "^0.8.9",
136
139
  "eslint-plugin-no-use-extend-native": "^0.5.0",
140
+ "eslint-plugin-perfectionist": "^1.4.0",
137
141
  "eslint-plugin-promise": "^6.1.1",
138
142
  "eslint-plugin-regexp": "^1.15.0",
139
143
  "eslint-plugin-security": "^1.7.1",
140
144
  "eslint-plugin-simple-import-sort": "^10.0.0",
141
145
  "eslint-plugin-sonarjs": "^0.19.0",
142
- "eslint-plugin-sort-keys-fix": "^1.1.2",
143
146
  "eslint-plugin-toml": "^0.5.0",
144
- "eslint-plugin-typescript-sort-keys": "^2.3.0",
145
147
  "eslint-plugin-unicorn": "^47.0.0",
146
148
  "eslint-plugin-yml": "^1.8.0",
147
149
  "find-up": "5.0.0",
150
+ "globals": "^13.20.0",
148
151
  "jsonc-eslint-parser": "^2.3.0",
149
152
  "read-pkg-up": "^7.0.1",
150
153
  "semver": "^7.5.3",
@@ -175,6 +178,7 @@
175
178
  "eslint-plugin-react": "^7.32.2",
176
179
  "eslint-plugin-react-hooks": "^4.6.0",
177
180
  "eslint-plugin-react-redux": "^4.0.0",
181
+ "@arthurgeron/eslint-plugin-react-usememo": "^1.1.4",
178
182
  "eslint-plugin-storybook": "^0.6.12",
179
183
  "eslint-plugin-tailwindcss": "^3.13.0",
180
184
  "eslint-plugin-testing-library": "^5.11.0",
@@ -258,23 +262,23 @@
258
262
  "src/config/plugins/no-secrets.ts",
259
263
  "src/config/plugins/no-unsanitized.ts",
260
264
  "src/config/plugins/node.ts",
265
+ "src/config/plugins/perfectionist.ts",
261
266
  "src/config/plugins/playwright.ts",
262
267
  "src/config/plugins/promise.ts",
263
- "src/config/plugins/react-hooks.ts",
264
- "src/config/plugins/react-redux.ts",
265
268
  "src/config/plugins/regexp.ts",
266
269
  "src/config/plugins/react.ts",
270
+ "src/config/plugins/react-hooks.ts",
271
+ "src/config/plugins/react-redux.ts",
272
+ "src/config/plugins/react-usememo.ts",
267
273
  "src/config/plugins/security.ts",
268
274
  "src/config/plugins/simple-import-sort.ts",
269
275
  "src/config/plugins/sonarjs.ts",
270
- "src/config/plugins/sort-keys-fix.ts",
271
276
  "src/config/plugins/storybook.ts",
272
277
  "src/config/plugins/tailwindcss.ts",
273
278
  "src/config/plugins/tanstack-query.ts",
274
279
  "src/config/plugins/testing-library.ts",
275
280
  "src/config/plugins/toml.ts",
276
281
  "src/config/plugins/tsdoc.ts",
277
- "src/config/plugins/typescript-sort-keys.ts",
278
282
  "src/config/plugins/typescript.ts",
279
283
  "src/config/plugins/unicorn.ts",
280
284
  "src/config/plugins/vitest.ts",
@@ -284,6 +288,7 @@
284
288
  "src/config/plugins/zod.ts",
285
289
  "src/config/style.ts",
286
290
  "src/config/variables.ts",
291
+ "src/globals.ts",
287
292
  "src/index.ts",
288
293
  "src/postinstall.ts",
289
294
  "src/typescript-type-checking.ts"
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/style.ts"],"names":["hasDependency","hasDevDependency","prettierRules","config","indent_default","style_default"],"mappings":"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","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\n\nimport indent from \"../utils/indent\";\n\nif (!global.hasAnolilabEsLintConfigPrettier && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.hasAnolilabEsLintConfigPrettier = true;\n}\n\nlet prettierRules: Linter.Config[\"rules\"] = {};\n\nif (global.hasAnolilabEsLintConfigPrettier) {\n prettierRules = {\n // The rest are rules that you never need to enable when using Prettier.\n \"array-bracket-newline\": \"off\",\n \"array-bracket-spacing\": \"off\",\n \"array-element-newline\": \"off\",\n \"arrow-parens\": \"off\",\n \"arrow-spacing\": \"off\",\n \"block-spacing\": \"off\",\n \"brace-style\": \"off\",\n \"comma-dangle\": \"off\",\n\n \"comma-spacing\": \"off\",\n \"comma-style\": \"off\",\n \"computed-property-spacing\": \"off\",\n // script can distinguish them.)\n curly: 0,\n \"dot-location\": \"off\",\n \"eol-last\": \"off\",\n \"func-call-spacing\": \"off\",\n \"function-call-argument-newline\": \"off\",\n \"function-paren-newline\": \"off\",\n \"generator-star-spacing\": \"off\",\n \"implicit-arrow-linebreak\": \"off\",\n indent: \"off\",\n \"jsx-quotes\": \"off\",\n \"key-spacing\": \"off\",\n \"keyword-spacing\": \"off\",\n \"linebreak-style\": \"off\",\n \"lines-around-comment\": 0,\n \"max-len\": 0,\n \"multiline-ternary\": \"off\",\n \"new-parens\": \"off\",\n \"newline-per-chained-call\": \"off\",\n \"no-confusing-arrow\": 0,\n \"no-extra-parens\": \"off\",\n \"no-extra-semi\": \"off\",\n \"no-floating-decimal\": \"off\",\n \"no-mixed-operators\": 0,\n \"no-mixed-spaces-and-tabs\": \"off\",\n \"no-multi-spaces\": \"off\",\n \"no-multiple-empty-lines\": \"off\",\n \"no-tabs\": 0,\n \"no-trailing-spaces\": \"off\",\n \"no-unexpected-multiline\": 0,\n \"no-whitespace-before-property\": \"off\",\n \"nonblock-statement-body-position\": \"off\",\n \"object-curly-newline\": \"off\",\n \"object-curly-spacing\": \"off\",\n \"object-property-newline\": \"off\",\n \"one-var-declaration-per-line\": \"off\",\n \"operator-linebreak\": \"off\",\n \"padded-blocks\": \"off\",\n \"quote-props\": \"off\",\n quotes: 0,\n \"rest-spread-spacing\": \"off\",\n semi: \"off\",\n \"semi-spacing\": \"off\",\n \"semi-style\": \"off\",\n \"space-before-blocks\": \"off\",\n \"space-before-function-paren\": \"off\",\n \"space-in-parens\": \"off\",\n \"space-infix-ops\": \"off\",\n \"space-unary-ops\": \"off\",\n \"switch-colon-spacing\": \"off\",\n \"template-curly-spacing\": \"off\",\n \"template-tag-spacing\": \"off\",\n \"unicode-bom\": \"off\",\n \"wrap-iife\": \"off\",\n \"wrap-regex\": \"off\",\n \"yield-star-spacing\": \"off\",\n };\n}\n\nconst config: Linter.Config = {\n rules: {\n // enforce line breaks after opening and before closing array brackets\n // https://eslint.org/docs/rules/array-bracket-newline\n \"array-bracket-newline\": \"off\",\n\n // enforce line breaks between array elements\n // enforce spacing inside array brackets\n \"array-bracket-spacing\": [\"error\", \"never\"],\n\n // https://eslint.org/docs/rules/array-element-newline\n \"array-element-newline\": \"off\",\n\n // enforce spacing inside single-line blocks\n // https://eslint.org/docs/rules/block-spacing\n \"block-spacing\": [\"error\", \"always\"],\n\n // enforce one true brace style\n \"brace-style\": [\"error\", \"1tbs\", { allowSingleLine: true }],\n\n // require camel case names\n camelcase: [\"error\", { ignoreDestructuring: false, properties: \"never\" }],\n\n // enforce or disallow capitalization of the first letter of a comment\n // https://eslint.org/docs/rules/capitalized-comments\n \"capitalized-comments\": [\n \"off\",\n \"never\",\n {\n block: {\n ignoreConsecutiveComments: true,\n ignoreInlineComments: true,\n ignorePattern: \".*\",\n },\n line: {\n ignoreConsecutiveComments: true,\n ignoreInlineComments: true,\n ignorePattern: \".*\",\n },\n },\n ],\n\n // require trailing commas in multiline object literals\n \"comma-dangle\": [\n \"error\",\n {\n arrays: \"always-multiline\",\n exports: \"always-multiline\",\n functions: \"always-multiline\",\n imports: \"always-multiline\",\n objects: \"always-multiline\",\n },\n ],\n\n // enforce spacing before and after comma\n \"comma-spacing\": [\"error\", { after: true, before: false }],\n\n // enforce one true comma style\n \"comma-style\": [\n \"error\",\n \"last\",\n {\n exceptions: {\n ArrayExpression: false,\n ArrayPattern: false,\n ArrowFunctionExpression: false,\n CallExpression: false,\n FunctionDeclaration: false,\n FunctionExpression: false,\n ImportDeclaration: false,\n NewExpression: false,\n ObjectExpression: false,\n ObjectPattern: false,\n VariableDeclaration: false,\n },\n },\n ],\n\n // disallow padding inside computed properties\n \"computed-property-spacing\": [\"error\", \"never\"],\n\n // enforces consistent naming when capturing the current execution context\n \"consistent-this\": \"off\",\n\n // enforce that default parameters should come last\n \"default-param-last\": [\"error\"],\n\n // enforce newline at the end of file, with no multiple empty lines\n \"eol-last\": [\"error\", \"always\"],\n\n // https://eslint.org/docs/rules/func-call-spacing\n \"func-call-spacing\": [\"error\", \"never\"],\n\n // enforce spacing between functions and their invocations\n // https://eslint.org/docs/rules/func-name-matching\n \"func-name-matching\": [\n \"off\",\n \"always\",\n {\n considerPropertyDescriptor: true,\n includeCommonJSModuleExports: false,\n },\n ],\n\n // requires function names to match the name of the variable or property to which they are\n // assigned\n // https://eslint.org/docs/rules/func-names\n \"func-names\": [\"error\", \"as-needed\"],\n\n // require function expressions to have a name\n // https://eslint.org/docs/rules/func-style\n \"func-style\": [\"error\", \"expression\"],\n\n // enforces use of function declarations or expressions\n // https://eslint.org/docs/rules/function-call-argument-newline\n \"function-call-argument-newline\": [\"error\", \"consistent\"],\n\n // enforce consistent line breaks inside function parentheses\n // https://eslint.org/docs/rules/function-paren-newline\n \"function-paren-newline\": [\"error\", \"consistent\"],\n\n // Blacklist certain identifiers to prevent them being used\n // https://eslint.org/docs/rules/id-blacklist\n \"id-blacklist\": \"error\",\n\n // disallow specified identifiers\n // https://eslint.org/docs/rules/id-denylist\n \"id-denylist\": \"off\",\n\n // this option enforces minimum and maximum identifier lengths\n // (variable names, property names etc.)\n \"id-length\": \"off\",\n\n // require identifiers to match the provided regular expression\n \"id-match\": \"off\",\n\n // Enforce the location of arrow function bodies with implicit returns\n // https://eslint.org/docs/rules/implicit-arrow-linebreak\n \"implicit-arrow-linebreak\": [\"error\", \"beside\"],\n\n // this option sets a specific tab width for your code\n // https://eslint.org/docs/rules/indent\n indent: [\n \"error\",\n indent,\n {\n ArrayExpression: 1,\n CallExpression: {\n arguments: 1,\n },\n // MemberExpression: null,\n FunctionDeclaration: {\n body: 1,\n parameters: 1,\n },\n FunctionExpression: {\n body: 1,\n parameters: 1,\n },\n ImportDeclaration: 1,\n ObjectExpression: 1,\n SwitchCase: 1,\n VariableDeclarator: 1,\n flatTernaryExpressions: false,\n ignoreComments: false,\n // list derived from https://github.com/benjamn/ast-types/blob/HEAD/def/jsx.js\n ignoredNodes: [\n \"JSXElement\",\n \"JSXElement > *\",\n \"JSXAttribute\",\n \"JSXIdentifier\",\n \"JSXNamespacedName\",\n \"JSXMemberExpression\",\n \"JSXSpreadAttribute\",\n \"JSXExpressionContainer\",\n \"JSXOpeningElement\",\n \"JSXClosingElement\",\n \"JSXFragment\",\n \"JSXOpeningFragment\",\n \"JSXClosingFragment\",\n \"JSXText\",\n \"JSXEmptyExpression\",\n \"JSXSpreadChild\",\n ],\n outerIIFEBody: 1,\n },\n ],\n\n // specify whether double or single quotes should be used in JSX attributes\n // https://eslint.org/docs/rules/jsx-quotes\n \"jsx-quotes\": [\"off\", \"prefer-double\"],\n\n // enforces spacing between keys and values in object literal properties\n \"key-spacing\": [\"error\", { afterColon: true, beforeColon: false }],\n\n // require a space before & after certain keywords\n \"keyword-spacing\": [\n \"error\",\n {\n after: true,\n before: true,\n overrides: {\n case: { after: true },\n return: { after: true },\n throw: { after: true },\n },\n },\n ],\n\n // enforce position of line comments\n // https://eslint.org/docs/rules/line-comment-position\n // TODO: enable?\n \"line-comment-position\": [\n \"off\",\n {\n applyDefaultPatterns: true,\n ignorePattern: \"\",\n position: \"above\",\n },\n ],\n\n // disallow mixed 'LF' and 'CRLF' as linebreaks\n // https://eslint.org/docs/rules/linebreak-style\n \"linebreak-style\": [\"error\", \"unix\"],\n\n // require or disallow an empty line between class members\n // enforces empty lines around comments\n \"lines-around-comment\": \"off\",\n\n // https://eslint.org/docs/rules/lines-around-directive\n \"lines-around-directive\": [\n \"error\",\n {\n after: \"always\",\n before: \"always\",\n },\n ],\n\n // require or disallow newlines around directives\n // https://eslint.org/docs/rules/lines-between-class-members\n \"lines-between-class-members\": [\"error\", \"always\", { exceptAfterSingleLine: false }],\n\n // specify the maximum depth that blocks can be nested\n \"max-depth\": [\"off\", 4],\n\n // specify the maximum length of a line in your program\n // https://eslint.org/docs/rules/max-len\n \"max-len\": [\n \"error\",\n 160,\n 2,\n {\n ignoreComments: false,\n ignoreRegExpLiterals: true,\n ignoreStrings: true,\n ignoreTemplateLiterals: true,\n ignoreUrls: true,\n },\n ],\n\n // specify the max number of lines in a file\n // https://eslint.org/docs/rules/max-lines\n \"max-lines\": [\n \"off\",\n {\n max: 300,\n skipBlankLines: true,\n skipComments: true,\n },\n ],\n\n // enforce a maximum function length\n // https://eslint.org/docs/rules/max-lines-per-function\n \"max-lines-per-function\": [\n \"off\",\n {\n IIFEs: true,\n max: 50,\n skipBlankLines: true,\n skipComments: true,\n },\n ],\n\n // specify the maximum depth callbacks can be nested\n \"max-nested-callbacks\": \"off\",\n\n // limits the number of parameters that can be used in the function declaration.\n \"max-params\": [\"off\", 3],\n\n // specify the maximum number of statement allowed in a function\n \"max-statements\": [\"off\", 10],\n\n // restrict the number of statements per line\n // https://eslint.org/docs/rules/max-statements-per-line\n \"max-statements-per-line\": [\"off\", { max: 1 }],\n\n // enforce a particular style for multiline comments\n // https://eslint.org/docs/rules/multiline-comment-style\n \"multiline-comment-style\": [\"off\", \"starred-block\"],\n\n // require multiline ternary\n // https://eslint.org/docs/rules/multiline-ternary\n // TODO: enable?\n \"multiline-ternary\": [\"off\", \"never\"],\n\n // require a capital letter for constructors\n \"new-cap\": [\n \"error\",\n {\n capIsNew: false,\n capIsNewExceptions: [\"Immutable.Map\", \"Immutable.Set\", \"Immutable.List\"],\n newIsCap: true,\n newIsCapExceptions: [],\n },\n ],\n\n // disallow the omission of parentheses when invoking a constructor with no arguments\n // https://eslint.org/docs/rules/new-parens\n \"new-parens\": \"error\",\n\n // allow/disallow an empty newline after var statement\n \"newline-after-var\": \"off\",\n\n // https://eslint.org/docs/rules/newline-before-return\n \"newline-before-return\": \"off\",\n\n // enforces new line after each method call in the chain to make it\n // more readable and easy to maintain\n // https://eslint.org/docs/rules/newline-per-chained-call\n \"newline-per-chained-call\": [\"error\", { ignoreChainWithDepth: 4 }],\n\n // disallow use of the Array constructor\n \"no-array-constructor\": \"error\",\n\n // disallow use of bitwise operators\n // https://eslint.org/docs/rules/no-bitwise\n \"no-bitwise\": \"error\",\n\n // disallow use of the continue statement\n // https://eslint.org/docs/rules/no-continue\n \"no-continue\": \"error\",\n\n // disallow comments inline after code\n \"no-inline-comments\": \"off\",\n\n // disallow if as the only statement in an else block\n // https://eslint.org/docs/rules/no-lonely-if\n \"no-lonely-if\": \"error\",\n\n // disallow un-paren'd mixes of different operators\n // https://eslint.org/docs/rules/no-mixed-operators\n \"no-mixed-operators\": [\n \"error\",\n {\n // the list of arithmetic groups disallows mixing `%` and `**`\n allowSamePrecedence: false,\n // with other arithmetic operators.\n groups: [\n [\"%\", \"**\"],\n [\"%\", \"+\"],\n [\"%\", \"-\"],\n [\"%\", \"*\"],\n [\"%\", \"/\"],\n [\"/\", \"*\"],\n [\"&\", \"|\", \"<<\", \">>\", \">>>\"],\n [\"==\", \"!=\", \"===\", \"!==\"],\n [\"&&\", \"||\"],\n [\"in\", \"instanceof\"],\n ],\n },\n ],\n\n // disallow mixed spaces and tabs for indentation\n \"no-mixed-spaces-and-tabs\": \"error\",\n\n // disallow use of chained assignment expressions\n // https://eslint.org/docs/rules/no-multi-assign\n \"no-multi-assign\": [\"error\"],\n\n // disallow multiple empty lines, only one newline at the end, and no new lines at the beginning\n // https://eslint.org/docs/rules/no-multiple-empty-lines\n \"no-multiple-empty-lines\": [\"error\", { max: 1, maxBOF: 0, maxEOF: 0 }],\n\n // disallow negated conditions\n // https://eslint.org/docs/rules/no-negated-condition\n \"no-negated-condition\": \"off\",\n\n // disallow nested ternary expressions\n \"no-nested-ternary\": \"error\",\n\n // disallow use of the Object constructor\n \"no-new-object\": \"error\",\n\n // disallow use of unary operators, ++ and --\n // https://eslint.org/docs/rules/no-plusplus\n \"no-plusplus\": \"error\",\n\n // disallow certain syntax forms\n // https://eslint.org/docs/rules/no-restricted-syntax\n \"no-restricted-syntax\": [\n \"error\",\n {\n message:\n \"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.\",\n selector: \"ForInStatement\",\n },\n {\n message:\n \"iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.\",\n selector: \"ForOfStatement\",\n },\n {\n message: \"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.\",\n selector: \"LabeledStatement\",\n },\n {\n message: \"`with` is disallowed in strict mode because it makes code impossible to predict and optimize.\",\n selector: \"WithStatement\",\n },\n ],\n\n // disallow space between function identifier and application\n // deprecated in favor of func-call-spacing\n \"no-spaced-func\": \"off\",\n\n // disallow tab characters entirely\n \"no-tabs\": \"error\",\n\n // disallow the use of ternary operators\n \"no-ternary\": \"off\",\n\n // disallow trailing whitespace at the end of lines\n \"no-trailing-spaces\": [\n \"error\",\n {\n ignoreComments: false,\n skipBlankLines: false,\n },\n ],\n\n // disallow dangling underscores in identifiers\n // https://eslint.org/docs/rules/no-underscore-dangle\n \"no-underscore-dangle\": [\n \"error\",\n {\n allow: [\"__DEV__\", \"__STORYBOOK_CLIENT_API__\", \"__STORYBOOK_ADDONS_CHANNEL__\", \"__STORYBOOK_STORY_STORE__\"],\n allowAfterSuper: false,\n allowAfterThis: false,\n enforceInMethodNames: true,\n },\n ],\n\n // disallow the use of Boolean literals in conditional expressions\n // also, prefer `a || b` over `a ? a : b`\n // https://eslint.org/docs/rules/no-unneeded-ternary\n \"no-unneeded-ternary\": [\"error\", { defaultAssignment: false }],\n\n // disallow whitespace before properties\n // https://eslint.org/docs/rules/no-whitespace-before-property\n \"no-whitespace-before-property\": \"error\",\n\n // enforce the location of single-line statements\n // https://eslint.org/docs/rules/nonblock-statement-body-position\n \"nonblock-statement-body-position\": [\"error\", \"beside\", { overrides: {} }],\n\n // https://eslint.org/docs/rules/object-curly-newline\n \"object-curly-newline\": [\n \"error\",\n {\n ExportDeclaration: { consistent: true, minProperties: 4, multiline: true },\n ImportDeclaration: { consistent: true, minProperties: 4, multiline: true },\n ObjectExpression: { consistent: true, minProperties: 4, multiline: true },\n ObjectPattern: { consistent: true, minProperties: 4, multiline: true },\n },\n ],\n\n // enforce line breaks between braces\n // require padding inside curly braces\n \"object-curly-spacing\": [\"error\", \"always\"],\n\n // enforce \"same line\" or \"multiple line\" on object properties.\n // https://eslint.org/docs/rules/object-property-newline\n \"object-property-newline\": [\n \"error\",\n {\n allowAllPropertiesOnSameLine: true,\n },\n ],\n\n // allow just one var statement per function\n \"one-var\": [\"error\", \"never\"],\n\n // require a newline around variable declaration\n // https://eslint.org/docs/rules/one-var-declaration-per-line\n \"one-var-declaration-per-line\": [\"error\", \"always\"],\n\n // require assignment operator shorthand where possible or prohibit it entirely\n // https://eslint.org/docs/rules/operator-assignment\n \"operator-assignment\": [\"error\", \"always\"],\n\n // Requires operator at the beginning of the line in multiline statements\n // https://eslint.org/docs/rules/operator-linebreak\n \"operator-linebreak\": [\"error\", \"before\", { overrides: { \"=\": \"none\" } }],\n\n // disallow padding within blocks\n \"padded-blocks\": [\n \"error\",\n {\n blocks: \"never\",\n classes: \"never\",\n switches: \"never\",\n },\n {\n allowSingleLineBlocks: true,\n },\n ],\n\n // Require or disallow padding lines between statements\n // https://eslint.org/docs/rules/padding-line-between-statements\n \"padding-line-between-statements\": \"off\",\n\n // Disallow the use of Math.pow in favor of the ** operator\n // https://eslint.org/docs/rules/prefer-exponentiation-operator\n \"prefer-exponentiation-operator\": \"error\",\n\n // Prefer use of an object spread over Object.assign\n // https://eslint.org/docs/rules/prefer-object-spread\n \"prefer-object-spread\": \"error\",\n\n // require quotes around object literal property names\n // https://eslint.org/docs/rules/quote-props.html\n \"quote-props\": [\"error\", \"as-needed\", { keywords: false, numbers: false, unnecessary: true }],\n\n // specify whether double or single quotes should be used\n quotes: [\"error\", \"double\", { avoidEscape: true }],\n\n // do not require jsdoc\n // https://eslint.org/docs/rules/require-jsdoc\n \"require-jsdoc\": \"off\",\n\n // require or disallow use of semicolons instead of ASI\n semi: [\"error\", \"always\"],\n\n // enforce spacing before and after semicolons\n \"semi-spacing\": [\"error\", { after: true, before: false }],\n\n // Enforce location of semicolons\n // https://eslint.org/docs/rules/semi-style\n \"semi-style\": [\"error\", \"last\"],\n\n // requires object keys to be sorted\n \"sort-keys\": [\"off\", \"asc\", { caseSensitive: false, natural: true }],\n\n // sort variables within the same declaration block\n \"sort-vars\": \"off\",\n\n // require or disallow space before blocks\n \"space-before-blocks\": \"error\",\n\n // require or disallow space before function opening parenthesis\n // https://eslint.org/docs/rules/space-before-function-paren\n \"space-before-function-paren\": [\n \"error\",\n {\n anonymous: \"always\",\n asyncArrow: \"always\",\n named: \"never\",\n },\n ],\n\n // require or disallow spaces inside parentheses\n \"space-in-parens\": [\"error\", \"never\"],\n\n // require spaces around operators\n \"space-infix-ops\": \"error\",\n\n // Require or disallow spaces before/after unary operators\n // https://eslint.org/docs/rules/space-unary-ops\n \"space-unary-ops\": [\n \"error\",\n {\n nonwords: false,\n overrides: {},\n words: true,\n },\n ],\n\n // require or disallow a space immediately following the // or /* in a comment\n // https://eslint.org/docs/rules/spaced-comment\n \"spaced-comment\": [\n \"error\",\n \"always\",\n {\n block: {\n balanced: true,\n exceptions: [\"-\", \"+\"],\n markers: [\"=\", \"!\", \":\", \"::\"], // space here to support sprockets directives and flow comment types\n },\n line: {\n exceptions: [\"-\", \"+\", \"*\"],\n markers: [\"=\", \"!\", \"/\"], // space here to support sprockets directives, slash for TS /// comments\n },\n },\n ],\n\n // Enforce spacing around colons of switch statements\n // https://eslint.org/docs/rules/switch-colon-spacing\n \"switch-colon-spacing\": [\"error\", { after: true, before: false }],\n\n // Require or disallow spacing between template tags and their literals\n // https://eslint.org/docs/rules/template-tag-spacing\n \"template-tag-spacing\": [\"error\", \"never\"],\n\n // require or disallow the Unicode Byte Order Mark\n // https://eslint.org/docs/rules/unicode-bom\n \"unicode-bom\": [\"error\", \"never\"],\n\n // require regex literals to be wrapped in parentheses\n \"wrap-regex\": \"off\",\n\n ...prettierRules,\n },\n};\n\nexport default config;\n"]}
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- var r=s=>{switch(s){case"typescript":return ["*.ts","*.tsx","*.mts","*.cts"];case"jsx_and_tsx":return ["*.jsx","*.tsx"];case"js_and_ts":return ["*.js","*.mjs","*.cjs","*.ts","*.mts","*.cts"];case"javascript":return ["*.js","*.mjs","*.cjs"];case"all":return ["*.js","*.jsx","*.mjs","*.cjs","*.ts","*.tsx","*.mts","*.cts"];case"jest":return ["**/*.spec.{js,ts,tsx}","**/*.test.{js,ts,tsx}","**/test/*.{js,ts,tsx}","**/__mocks__/*.{js,ts,tsx}","**/__tests__/*.{js,ts,tsx}"];case"ava":return ["test.js","src/test.js","source/test.js","**/test-*.js","**/*.spec.js","**/*.test.js","**/test/**/*.js","**/tests/**/*.js","**/__tests__/**/*.js"];case"vitest":return ["**/__tests__/**/*.?(c|m)[jt]s?(x)","**/?(*.){test,spec}.?(c|m)[jt]s?(x)"];case"tests":return ["test.js","src/test.js","source/test.js","**/test-*.js","**/*.spec.js","**/*.test.js","**/test/**/*.js","**/tests/**/*.js","**/__tests__/**/*.js","**/*.spec.{js,ts,tsx}","**/*.test.{js,ts,tsx}","**/test/*.{js,ts,tsx}","**/__mocks__/*.{js,ts,tsx}","**/__tests__/*.{js,ts,tsx}","**/__tests__/**/*.?(c|m)[jt]s?(x)","**/?(*.){test,spec}.?(c|m)[jt]s?(x)"];default:throw new Error(`Unknown type: ${s}`)}},j=(s,t,e)=>({env:e,overrides:[{files:r(s),...t}]}),c=s=>({overrides:s.map(({config:t,type:e})=>({files:r(e),...t}))});
4
-
5
- exports.a = j;
6
- exports.b = c;
7
- //# sourceMappingURL=out.js.map
8
- //# sourceMappingURL=chunk-VW5ZVT2B.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/create-config.ts"],"names":["getType","type","createConfig","config","environment","createConfigs","rules"],"mappings":"AAIA,IAAMA,EAAWC,GAAmB,CAChC,OAAQA,EAAM,CACV,IAAK,aAED,MAAO,CAAC,OAAQ,QAAS,QAAS,OAAO,EAE7C,IAAK,cACD,MAAO,CAAC,QAAS,OAAO,EAE5B,IAAK,YACD,MAAO,CAAC,OAAQ,QAAS,QAAS,OAAQ,QAAS,OAAO,EAE9D,IAAK,aACD,MAAO,CAAC,OAAQ,QAAS,OAAO,EAEpC,IAAK,MACD,MAAO,CAAC,OAAQ,QAAS,QAAS,QAAS,OAAQ,QAAS,QAAS,OAAO,EAEhF,IAAK,OACD,MAAO,CAEH,wBACA,wBACA,wBAGA,6BACA,4BACJ,EAEJ,IAAK,MACD,MAAO,CACH,UACA,cACA,iBACA,eACA,eACA,eACA,kBACA,mBACA,sBACJ,EAEJ,IAAK,SACD,MAAO,CAAC,oCAAqC,qCAAqC,EAEtF,IAAK,QACD,MAAO,CAEH,UACA,cACA,iBACA,eACA,eACA,eACA,kBACA,mBACA,uBAGA,wBACA,wBACA,wBACA,6BACA,6BACA,oCACA,qCACJ,EAEJ,QACI,MAAM,IAAI,MAAM,iBAAiBA,CAAI,EAAE,CAE/C,CACJ,EAEaC,EAAe,CACxBD,EACAE,EACAC,KAEO,CACH,IAAKA,EACL,UAAW,CACP,CACI,MAAOJ,EAAQC,CAAI,EACnB,GAAGE,CACP,CACJ,CACJ,GAESE,EACTC,IAKO,CACH,UAAWA,EAAM,IAAI,CAAC,CAAE,OAAAH,EAAQ,KAAAF,CAAK,KAC1B,CACH,MAAOD,EAAQC,CAAI,EACnB,GAAGE,CACP,EACH,CACL","sourcesContent":["import type { Linter } from \"eslint\";\n\ntype FileType = \"all\" | \"ava\" | \"javascript\" | \"jest\" | \"js_and_ts\" | \"jsx_and_tsx\" | \"tests\" | \"typescript\" | \"vitest\";\n\nconst getType = (type: FileType) => {\n switch (type) {\n case \"typescript\": {\n // @see https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-beta/#new-file-extensions\n return [\"*.ts\", \"*.tsx\", \"*.mts\", \"*.cts\"];\n }\n case \"jsx_and_tsx\": {\n return [\"*.jsx\", \"*.tsx\"];\n }\n case \"js_and_ts\": {\n return [\"*.js\", \"*.mjs\", \"*.cjs\", \"*.ts\", \"*.mts\", \"*.cts\"];\n }\n case \"javascript\": {\n return [\"*.js\", \"*.mjs\", \"*.cjs\"];\n }\n case \"all\": {\n return [\"*.js\", \"*.jsx\", \"*.mjs\", \"*.cjs\", \"*.ts\", \"*.tsx\", \"*.mts\", \"*.cts\"];\n }\n case \"jest\": {\n return [\n // Test files\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n \"**/test/*.{js,ts,tsx}\",\n\n // Facebook convention\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n ];\n }\n case \"ava\": {\n return [\n \"test.js\",\n \"src/test.js\",\n \"source/test.js\",\n \"**/test-*.js\",\n \"**/*.spec.js\",\n \"**/*.test.js\",\n \"**/test/**/*.js\",\n \"**/tests/**/*.js\",\n \"**/__tests__/**/*.js\",\n ];\n }\n case \"vitest\": {\n return [\"**/__tests__/**/*.?(c|m)[jt]s?(x)\", \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\"];\n }\n case \"tests\": {\n return [\n // ava\n \"test.js\",\n \"src/test.js\",\n \"source/test.js\",\n \"**/test-*.js\",\n \"**/*.spec.js\",\n \"**/*.test.js\",\n \"**/test/**/*.js\",\n \"**/tests/**/*.js\",\n \"**/__tests__/**/*.js\",\n\n // jest\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n \"**/test/*.{js,ts,tsx}\",\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n \"**/__tests__/**/*.?(c|m)[jt]s?(x)\",\n \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\",\n ];\n }\n default: {\n throw new Error(`Unknown type: ${type}`);\n }\n }\n};\n\nexport const createConfig = (\n type: FileType,\n config: Omit<Linter.ConfigOverride<Linter.RulesRecord>, \"files\">,\n environment?: { [name: string]: boolean },\n): Linter.Config => {\n return {\n env: environment,\n overrides: [\n {\n files: getType(type),\n ...config,\n },\n ],\n };\n};\nexport const createConfigs = (\n rules: {\n config: Omit<Linter.ConfigOverride<Linter.RulesRecord>, \"files\">;\n type: FileType;\n }[],\n): Linter.Config => {\n return {\n overrides: rules.map(({ config, type }) => {\n return {\n files: getType(type),\n ...config,\n };\n }),\n };\n};\n"]}
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- require('../../chunk-3NVDJZNH.js');
4
-
5
- var r={plugins:["sort-keys-fix"],rules:{"sort-keys-fix/sort-keys-fix":"error"}},e=r;
6
-
7
- module.exports = e;
8
- //# sourceMappingURL=out.js.map
9
- //# sourceMappingURL=sort-keys-fix.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/config/plugins/sort-keys-fix.ts"],"names":["config","sort_keys_fix_default"],"mappings":"gCAEA,IAAMA,EAAwB,CAC1B,QAAS,CAAC,eAAe,EACzB,MAAO,CACH,8BAA+B,OACnC,CACJ,EAEOC,EAAQD","sourcesContent":["import type { Linter } from \"eslint\";\n\nconst config: Linter.Config = {\n plugins: [\"sort-keys-fix\"],\n rules: {\n \"sort-keys-fix/sort-keys-fix\": \"error\",\n },\n};\n\nexport default config;\n"]}
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- require('../../chunk-3NVDJZNH.js');
4
-
5
- var s={overrides:[{files:["*.ts","*.tsx","*.mts","*.cts"],plugins:["typescript-sort-keys"],rules:{"typescript-sort-keys/interface":"error","typescript-sort-keys/string-enum":"error"}},{files:["*.js","*.cjs","*.mjs"],rules:{"typescript-sort-keys/interface":"off","typescript-sort-keys/string-enum":"off"}}]},t=s;
6
-
7
- module.exports = t;
8
- //# sourceMappingURL=out.js.map
9
- //# sourceMappingURL=typescript-sort-keys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/config/plugins/typescript-sort-keys.ts"],"names":["config","typescript_sort_keys_default"],"mappings":"gCAEA,IAAMA,EAAwB,CAC1B,UAAW,CACP,CACI,MAAO,CAAC,OAAQ,QAAS,QAAS,OAAO,EACzC,QAAS,CAAC,sBAAsB,EAChC,MAAO,CACH,iCAAkC,QAClC,mCAAoC,OACxC,CACJ,EACA,CACI,MAAO,CAAC,OAAQ,QAAS,OAAO,EAChC,MAAO,CACH,iCAAkC,MAClC,mCAAoC,KACxC,CACJ,CACJ,CACJ,EAEOC,EAAQD","sourcesContent":["import type { Linter } from \"eslint\";\n\nconst config: Linter.Config = {\n overrides: [\n {\n files: [\"*.ts\", \"*.tsx\", \"*.mts\", \"*.cts\"],\n plugins: [\"typescript-sort-keys\"],\n rules: {\n \"typescript-sort-keys/interface\": \"error\",\n \"typescript-sort-keys/string-enum\": \"error\",\n },\n },\n {\n files: [\"*.js\", \"*.cjs\", \"*.mjs\"],\n rules: {\n \"typescript-sort-keys/interface\": \"off\",\n \"typescript-sort-keys/string-enum\": \"off\",\n },\n },\n ],\n};\n\nexport default config;\n"]}