import{Linter as e}from"eslint";import{defineConfig as t,globalIgnores as n}from"eslint/config";import r from"globals";import i from"@eslint/js";import a from"eslint-plugin-functional";import o from"typescript-eslint";import s from"eslint-plugin-sonarjs";import c from"eslint-plugin-perfectionist";import l from"eslint-plugin-unicorn";const u={name:`JavaScript`,rules:{...i.configs.recommended.rules,"array-callback-return":[`error`,{allowVoid:!0,checkForEach:!0}],"no-nested-ternary":`off`,"no-unassigned-vars":`error`,"no-unneeded-ternary":[`error`,{defaultAssignment:!1}],"no-unreachable-loop":`error`,"no-use-before-define":`off`,"no-useless-assignment":`error`,yoda:[`error`,`never`]}},d={name:`Programmation fonctionnelle`,plugins:{functional:a},rules:{...a.configs.noExceptions.rules,...a.configs.noMutations.rules,...a.configs.externalTypeScriptRecommended.rules,...a.configs.stylistic.rules,"@typescript-eslint/array-type":[`error`,{default:`generic`,readonly:`generic`}],"functional/prefer-immutable-types":`off`,"functional/prefer-tacit":`off`,"functional/readonly-type":[`error`,`generic`],"functional/type-declaration-immutability":`off`}},f={name:`SonarJS`,plugins:s.configs.recommended.plugins??{},rules:{...s.configs.recommended.rules}},p={name:`Tri`,plugins:c.configs[`recommended-natural`].plugins??{},rules:c.configs[`recommended-natural`].rules??{}},m=(e,t)=>e.find(e=>e.name===t)??{},h=m(o.configs.strictTypeChecked,`typescript-eslint/base`),g=m(o.configs.strictTypeChecked,`typescript-eslint/eslint-recommended`),_=m(o.configs.strictTypeChecked,`typescript-eslint/strict-type-checked`),v=m(o.configs.stylisticTypeChecked,`typescript-eslint/stylistic-type-checked`),y={languageOptions:h.languageOptions??{},name:`TypeScript`,plugins:h.plugins??{},rules:{...g.rules,..._.rules,...v.rules,"@typescript-eslint/consistent-type-definitions":[`error`,`type`],"@typescript-eslint/max-params":[`error`,{max:3}],"@typescript-eslint/method-signature-style":[`off`,`property`],"@typescript-eslint/no-magic-numbers":`off`,"@typescript-eslint/no-unnecessary-boolean-literal-compare":`off`,"@typescript-eslint/no-unnecessary-type-parameters":`off`}},b={name:`Unicorn`,plugins:{unicorn:l},rules:{...l.configs.unopinionated.rules,"unicorn/catch-error-name":[`error`],"unicorn/consistent-empty-array-spread":[`error`],"unicorn/custom-error-definition":[`error`],"unicorn/explicit-length-check":[`error`,{"non-zero":`not-equal`}],"unicorn/no-negated-condition":`error`,"unicorn/no-nested-ternary":`error`,"unicorn/no-null":`error`}},x=t([n([`dist/**/*`],`Ignore le dossier de compilation`),{files:[`**/*.js`,`**/*.ts`],name:`Fichiers à analyser`},{languageOptions:{ecmaVersion:`latest`,globals:{...r.browser,...r.builtin,...r.es2026,...r.node},parserOptions:{ecmaVersion:`latest`,projectService:!0,sourceType:`module`,tsconfigRootDir:import.meta.dirname}},name:`Configuration du projet`},u,y,d,b,f,p]);export{x as configTypescriptNavigateur};