'use strict';
import './types/eslint-plugin-github.d.js';
import './types/typescript-eslint-plugin.d.js';
import { defineConfig } from 'eslint/config';
import _0x500730 from 'eslint-plugin-playwright';
import baseConfig, { relativeImportRestrictions, packageRestriction, testRestriction, tsMorphRestriction, nextRestriction } from './eslint-base.config.js';
import { noRestrictedPathsMessages, noRestrictedSyntaxMessages, noRestrictedImportsMessages } from './constants/messages.js';
import { folders, packagesPath, nonRootProjectPaths, httpWrappersPaths, files } from '@fernir2/base-repo/app-constants/project-paths';
import _0xf1b9c5 from 'eslint-plugin-import';
import _0x29155c from '@next/eslint-plugin-next';
import _0x474eb7 from '@stylistic/eslint-plugin';
import { nonLevel2Config } from './non-level-two-eslint-config.js';
import _0x594162 from '@typescript-eslint/eslint-plugin';
import { resolveLintTsconfigPath } from './paths/resolve-lint-tsconfig-paths.js';
import _0x466e47 from 'eslint-plugin-github';
import _0x473c13 from 'eslint-plugin-sonarjs';

var __defProp=Object['defineProperty'],__name=(_0x25496d,_0x2878cf)=>__defProp(_0x25496d,'name',{'value':_0x2878cf,'configurable':!![]});const serverSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':['../../../'+folders['src'],'../'+folders['npmCommands']],'message':noRestrictedPathsMessages['server']}]}]}},{'files':['**/*.resource.{js,jsx,ts,tsx}'],'rules':{'no-restricted-syntax':['error',{'selector':'Program','message':noRestrictedSyntaxMessages['server']}]}},{..._0x500730['configs']['flat/recommended'],'files':['test/**'],'rules':{..._0x500730['configs']['flat/recommended']['rules'],'@typescript-eslint/no-unsafe-assignment':'error','@typescript-eslint/no-unsafe-return':'off'}}]);const commonSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':['../../../'+folders['src'],'../'+folders['server']],'message':noRestrictedPathsMessages['common']}]}]}}]);const fdToolboxCoreSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':'../../','except':[packagesPath['packagesFdToolboxCore'],packagesPath['packagesBaseRepo'],packagesPath['packagesFlintInfra'],folders['nodeModules']],'message':noRestrictedPathsMessages['fdToolboxCore']}]}]}}]);const fdToolboxSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'github/filenames-match-regex':'off','import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':'../../','except':[packagesPath['packagesFdToolbox'],packagesPath['packagesFdToolboxCore'],packagesPath['packagesBaseRepo'],packagesPath['packagesFlintInfra'],folders['nodeModules']],'message':noRestrictedPathsMessages['fdToolbox']}]}]}},{'files':['**/'+nonRootProjectPaths['serverFramework']+'/**/*','**/'+nonRootProjectPaths['clientFramework']+'/**/*'],'rules':{'no-restricted-imports':['error',{'patterns':[...relativeImportRestrictions,...packageRestriction,...testRestriction]}]}},{'files':[nonRootProjectPaths['apiHooks']+'/**/*.{js,ts}'],'rules':{'github/filenames-match-regex':'off'}}]);const metaSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':['**/*','!(server|decorators)/**'],'from':packagesPath['packagesServer'],'message':noRestrictedPathsMessages['metaServer']},{'target':'**/*','from':'../../../','except':[packagesPath['packagesMeta'],packagesPath['packagesFdToolbox'],packagesPath['packagesFdToolboxCore'],packagesPath['packagesFdComponentToolbox'],packagesPath['packagesBaseRepo'],packagesPath['packagesFlintInfra'],packagesPath['packagesDb'],folders['nodeModules'],folders['generated'],httpWrappersPaths['httpWrappersTs']],'message':noRestrictedPathsMessages['meta']}]}]}}]);const fdAppToolboxSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':'../../../','except':[packagesPath['packagesFdAppToolbox'],packagesPath['packagesMeta'],packagesPath['packagesFdToolbox'],packagesPath['packagesFdToolboxCore'],packagesPath['packagesFdComponentToolbox'],packagesPath['packagesBaseRepo'],packagesPath['packagesFlintInfra'],folders['nodeModules']],'message':noRestrictedPathsMessages['fdAppToolbox']}]}]}}]);const fdComponentToolboxSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':'../../../','except':[packagesPath['packagesFdToolbox'],packagesPath['packagesFdToolboxCore'],packagesPath['packagesFdComponentToolbox'],packagesPath['packagesBaseRepo'],packagesPath['packagesFlintInfra'],folders['nodeModules']],'message':noRestrictedPathsMessages['fdComponentToolbox']}]}]}}]);const clientSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'!('+folders['pages']+')/**','from':'../../'+folders['server'],'message':noRestrictedPathsMessages['client']}]}],'no-restricted-imports':['error',{'patterns':[...relativeImportRestrictions,...tsMorphRestriction,...nextRestriction,...packageRestriction,...testRestriction]}]}}]);const docsSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()},{'files':['**/*.{js,jsx,ts,tsx}'],'rules':{'no-restricted-imports':'off','no-console':'error','custom-eslint-rules/no-new-date':'off','custom-eslint-rules/must-use-plural-in-function-names-if-returns-array':'error','custom-eslint-rules/must-avoid-non-null-assertions':'error','custom-eslint-rules/must-not-pass-full-objects-into-functions-needlessly':'error','custom-eslint-rules/must-use-new-url-constructor':'error','custom-eslint-rules/enum-type-immediate-definition':'error','custom-eslint-rules/no-redundant-type-alias':'error'}},{'files':['**/*.md'],'languageOptions':{'parser':{'parse'(_0x19d74b){return {'type':'Program','body':[],'comments':[],'tokens':[],'loc':{'start':{'line':0x1,'column':0x0},'end':{'line':0x1,'column':0x0}},'range':[0x2*-0xa16+0xd*-0x23+0x15f3,_0x19d74b['length']]};}}},'rules':{}}]);const flintSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()},{'files':['**/*.{ts,tsx}'],'plugins':{'@typescript-eslint':_0x594162},'rules':{'@typescript-eslint/consistent-type-imports':['error',{'fixStyle':'inline-type-imports'}]}},{'files':['**/*.{js,jsx,ts,tsx}'],'rules':{'custom-eslint-rules/must-use-nodetypes-structure-instead-of-string-node-type':'error','custom-eslint-rules/must-use-prefix-for-env-vars':'off','custom-eslint-rules/must-not-use-anonymous-objects-only-with-explicit-typization':'off','custom-eslint-rules/must-not-use-process-env':'off','custom-eslint-rules/must-use-create-error':'off','new-cap':['error',{'capIsNewExceptions':['ESLintUtils.RuleCreator','RuleCreator']}],'@typescript-eslint/consistent-type-assertions':['error',{'assertionStyle':'never'}]}},{'files':['tests/**/*.spec.ts'],'plugins':{'github':_0x466e47,'@stylistic':_0x474eb7},'rules':{'@stylistic/quotes':['error','double',{'avoidEscape':!![],'allowTemplateLiterals':'always'}],'github/unescaped-html-literal':'off','custom-eslint-rules/must-have-both-rule-and-tests':'error','custom-eslint-rules/must-use-unique-filenames-with-comment-in-tests':'off','custom-eslint-rules/must-not-use-the-single-error-property-in-test':'error'}},{'files':['rules/**/*.ts'],'rules':{'custom-eslint-rules/must-use-better-error-message-for-custom-rules':'error','custom-eslint-rules/must-have-both-rule-and-tests':'error','custom-eslint-rules/must-use-constants-for-message-ids':'off','custom-eslint-rules/must-add-custom-rule-in-config':'error','custom-eslint-rules/must-not-declare-fixer-without-calling-it':'error','custom-eslint-rules/must-not-import-ast-node-types':'error','custom-eslint-rules/must-match-rule-name-with-file-name':'error','custom-eslint-rules/must-not-use-placeholders-in-eslint-rule-titles':'error'}},{'files':['**/analysis/**/*.{ts,js}'],'rules':{}}]);const flintInfraSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()},{'files':['**/*.ts'],'rules':{'custom-eslint-rules/no-literal-duplication':'off','custom-eslint-rules/must-use-path-constants-for-paths':'off','custom-eslint-rules/must-use-plural-names-of-files-for-arrays':'off','custom-eslint-rules/must-not-use-null':'off','custom-eslint-rules/must-not-use-anonymous-objects-only-with-explicit-typization':'off'}}]);const testSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions('./'+files['tsconfig'])},{'files':['**/*.{js,jsx}'],'rules':{'custom-eslint-rules/must-not-use-inline-await':'off','custom-eslint-rules/must-add-prefix-to-po-functions':'off','custom-eslint-rules/must-not-use-anonymous-objects-only-with-explicit-typization':'off','custom-eslint-rules/must-use-function-for-component':'off'}},{'files':['**/*.{ts,tsx}'],'plugins':{'@typescript-eslint':_0x594162},'rules':{'custom-eslint-rules/must-not-use-inline-await':'off','@typescript-eslint/no-unsafe-return':'off','custom-eslint-rules/must-add-prefix-to-po-functions':'off','custom-eslint-rules/must-not-use-anonymous-objects-only-with-explicit-typization':'off','custom-eslint-rules/must-use-function-for-component':'off','custom-eslint-rules/must-not-use-multiple-get-id-functions-inline-in-test':'error'}},{'files':['**/*.{ts,tsx}'],'rules':{'no-restricted-imports':['error',{'patterns':[...relativeImportRestrictions]}]}},{'files':['**/*.spec.ts'],'rules':{'@typescript-eslint/no-unused-vars':['error',{'argsIgnorePattern':'^_','varsIgnorePattern':'^_'}]}},{'files':['**/*.{ts,tsx}'],'rules':{'custom-eslint-rules/must-not-use-inline-await':'error','@typescript-eslint/no-unsafe-return':'error','custom-eslint-rules/must-add-prefix-to-po-functions':'error','custom-eslint-rules/must-not-use-anonymous-objects-only-with-explicit-typization':'error','custom-eslint-rules/must-use-function-for-component':'error'}},{'files':['src/app/**/*.{js,jsx,ts,tsx}'],'plugins':{'@next/next':_0x29155c},'rules':{'@next/next/no-html-link-for-pages':'error'}}]);const infraSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()},{'files':['**/*.{js,jsx,ts,tsx}'],'plugins':{'sonarjs':_0x473c13},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':'../level2/','except':[],'message':noRestrictedImportsMessages['level2Imports']},{'target':'**/*','from':'../internal-cli/','except':[],'message':noRestrictedImportsMessages['internalCliImport']}]}],'sonarjs/os-command':'error','custom-eslint-rules/must-not-use-process-env':'error'}}]);const internalCliSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()}]);const dbSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'plugins':{'import':_0xf1b9c5},'rules':{'import/no-restricted-paths':['error',{'zones':[{'target':'**/*','from':'../../../','except':[packagesPath['packagesDb'],packagesPath['packagesFdToolbox'],packagesPath['packagesFdToolboxCore'],packagesPath['packagesBaseRepo'],packagesPath['packagesInfra'],packagesPath['packagesFlintInfra'],folders['nodeModules']],'message':noRestrictedPathsMessages['db']}]}]}}]);const cliSpecificConfig=defineConfig([...baseConfig,{...createLintParserOptions()},{'files':['**/*.ts','**/*.tsx'],'rules':{'no-restricted-imports':['error',{'patterns':[...relativeImportRestrictions,...testRestriction]}]}}]);const clusterSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()},{'files':['**/*.{ts,tsx}'],'rules':{'custom-eslint-rules/must-not-pass-full-objects-into-functions-needlessly':'error','custom-eslint-rules/must-not-use-process-env':'error'}}]);const baseRepoSpecificConfig=defineConfig([...nonLevel2Config['map'](scopeConfigToBaseRepo),{...createLintParserOptions()},{'files':[packagesPath['packagesBaseRepo']+'**/*.{ts,tsx}'],'rules':{'custom-eslint-rules/must-not-use-anonymous-objects-only-with-explicit-typization':'error'}},{'files':[packagesPath['packagesBaseRepo']+'**/*.{js,jsx,ts,tsx}'],'plugins':{'@next/next':_0x29155c},'rules':{'no-console':'error','@next/next/no-html-link-for-pages':'off','custom-eslint-rules/must-use-plural-in-function-names-if-returns-array':'error','custom-eslint-rules/must-use-single-return-in-function':'error'}}]);const testInfraSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()},{'files':['**/*.{ts,tsx}'],'plugins':{'@typescript-eslint':_0x594162},'rules':{'@typescript-eslint/naming-convention':'error'}},{'files':['**/*.{js,jsx,ts,tsx}'],'rules':{'custom-eslint-rules/no-centralized-error-messages':'error','custom-eslint-rules/must-avoid-non-null-assertions':'error','custom-eslint-rules/no-get-in-function-names-without-return':'error','custom-eslint-rules/must-use-interfaces-for-complex-types':'error'}}]);const toolsSpecificConfig=defineConfig([...nonLevel2Config,{...createLintParserOptions()},{'files':['**/*.{js,jsx,ts,tsx}'],'rules':{'custom-eslint-rules/must-use-single-return-in-function':'error','custom-eslint-rules/must-avoid-non-null-assertions':'error','no-console':'error'}}]);function getRankstersSpecificConfig(_0x2f96bd){return defineConfig([{'ignores':['server.ts']},...nonLevel2Config,{'files':['**/*.ts','**/*.tsx'],'languageOptions':{'parserOptions':{'project':files['tsconfig'],'tsconfigRootDir':_0x2f96bd}},'plugins':{'import':_0xf1b9c5},'rules':{'no-restricted-imports':'off','@typescript-eslint/no-unsafe-return':'off','custom-eslint-rules/must-not-pass-full-objects-into-functions-needlessly':'off','custom-eslint-rules/must-use-function-for-component':'off','custom-eslint-rules/no-get-in-function-names-without-return':'off','custom-eslint-rules/no-use-id':'off','custom-eslint-rules/must-use-new-url-constructor':'off','custom-eslint-rules/must-not-use-anonymous-objects-only-with-explicit-typization':'off','custom-eslint-rules/must-not-use-redundant-string':'off','custom-eslint-rules/no-useless-destructing':'off','custom-eslint-rules/must-not-use-inline-await':'off','custom-eslint-rules/must-use-wrappers-to-access-first-element':'off','custom-eslint-rules/must-not-use-process-env':'off'}}]);}__name(getRankstersSpecificConfig,'getRankstersSpecificConfig');function createLintParserOptions(_0x5c8bc1=resolveLintTsconfigPath(import.meta.url)){return {'files':['**/*.ts','**/*.tsx'],'languageOptions':{'parserOptions':{'project':_0x5c8bc1}}};}__name(createLintParserOptions,'createLintParserOptions');function scopeConfigToBaseRepo(_0x582704){const _0x58e494={..._0x582704};return _0x58e494['files']?_0x58e494['files']=_0x58e494['files']['map'](_0xbffbb3=>''+packagesPath['packagesBaseRepo']+_0xbffbb3):_0x58e494['files']=[packagesPath['packagesBaseRepo']+'**/*'],_0x58e494['ignores']&&(_0x58e494['ignores']=_0x58e494['ignores']['map'](_0x16a026=>''+packagesPath['packagesBaseRepo']+_0x16a026)),_0x58e494;}__name(scopeConfigToBaseRepo,'scopeConfigToBaseRepo');

export { baseRepoSpecificConfig, cliSpecificConfig, clientSpecificConfig, clusterSpecificConfig, commonSpecificConfig, dbSpecificConfig, docsSpecificConfig, fdAppToolboxSpecificConfig, fdComponentToolboxSpecificConfig, fdToolboxCoreSpecificConfig, fdToolboxSpecificConfig, flintInfraSpecificConfig, flintSpecificConfig, getRankstersSpecificConfig, infraSpecificConfig, internalCliSpecificConfig, metaSpecificConfig, serverSpecificConfig, testInfraSpecificConfig, testSpecificConfig, toolsSpecificConfig };
