'use strict';
import _0x1869d0__default from 'path';
import { createEslintRule } from '@flint/infra/create-eslint-rule';
import { packagesPath, folders } from '../../../base-repo/app-constants/project-paths.js';
import { jsBasicTypes } from '../../../base-repo/constants/basic-types.js';

var __defProp=Object['defineProperty'],__name=(_0x1836d8,_0x6b3ee5)=>__defProp(_0x1836d8,'name',{'value':_0x6b3ee5,'configurable':!![]});const ruleName='no-use-abstract-categories-in-naming';const ruleContent='\x0a###\x20**Must\x20not**\x20use\x20`utils`,\x20`helpers`,\x20`libs`,\x20`lib`,\x20`services`,\x20`service`,\x20`tools`\x20in\x20file\x20or\x20folder\x20names,\x20even\x20as\x20prefixes/suffixes.\x0a\x0a####\x20Wrong\x0a\x0a//\x20src/utils/date.ts\x0a//\x20src/helpers/math.ts\x0a//\x20src/libs/api.ts\x0a//\x20src/date-utils.ts\x0a//\x20src/math-helpers.ts\x0a\x0a####\x20Correct\x0a\x0a//\x20src/date-formatting/date.ts\x0a//\x20src/math-operations/math.ts\x0a//\x20src/api-client/api.ts\x0a//\x20src/date-formatter.ts\x0a//\x20src/math-calculator.ts\x0a\x0a####\x20Why\x0a\x0aGeneric\x20names\x20like\x20\x27utils\x27\x20become\x20dumping\x20grounds.\x20Use\x20descriptive,\x20domain-driven\x20names\x20for\x20files\x20and\x20folders.',constants={'pathSeparator':'/'};var noUseAbstractCategoriesInNaming = createEslintRule(ruleName,ruleContent,__name(function create(_0x1eec47,_0x46dfd5){const [_0x41ba85]=_0x46dfd5,_0x17dcdf=_0x41ba85['forbidden']['map'](_0x3074c4=>_0x3074c4['toLowerCase']());return {'Program'(_0x139fe0){const _0x40a7e6=_0x1eec47['filename'],_0x706e06=_0x40a7e6['replace'](/\\/g,constants['pathSeparator']);if(_0x706e06['includes'](packagesPath['packagesFlint']+'/'+folders['infra']+'/'+folders['analysis']))return;const _0x45068b=_0x706e06['split'](constants['pathSeparator']);for(const _0x3d3f86 of _0x45068b){const _0x3144d4=_0x1869d0__default['parse'](_0x3d3f86)['name'],_0x4ed2e5=_0x3144d4['toLowerCase']()['split'](/[.-]/),_0x6acab5=_0x4ed2e5['find'](_0x76882a=>_0x17dcdf['includes'](_0x76882a));if(_0x6acab5){_0x1eec47['report']({'node':_0x139fe0,'messageId':ruleName,'data':{'name':_0x6acab5}});return;}}}};},'create'),{'dynamicMessage':'\x27{{name}}\x27\x20naming\x20is\x20forbidden.','schema':[{'type':'object','properties':{'forbidden':{'type':jsBasicTypes['array'],'items':{'type':'string'}}},'additionalProperties':![]}],'defaultOptions':[{'forbidden':['utils','helpers','libs',folders['lib'],'util','helper','services','service']}]});

export { noUseAbstractCategoriesInNaming as default, ruleName };
