'use strict';
import { nodeTypes, isPascalCase } from '@flint/infra/analysis';
import { createEslintRule } from '@flint/infra/create-eslint-rule';
import { resourceMetaProperties } from '../../../base-repo/constants/resource-meta.js';

var __defProp=Object['defineProperty'],__name=(_0x314228,_0x40e9be)=>__defProp(_0x314228,'name',{'value':_0x40e9be,'configurable':!![]});const ruleName='no-to-lower-case-with-resource-name';const ruleContent='\x0a###\x20**Must**\x20use\x20PascalCase\x20for\x20class\x20names\x20decorated\x20with\x20@resourceMetaId.\x0a\x0a####\x20Wrong\x0a\x0a@resourceMetaId()\x0aclass\x20foo\x20{}\x0a\x0a####\x20Correct\x0a\x0a@resourceMetaId()\x0aclass\x20Foo\x20{}\x0a\x0a####\x20Why\x0a\x0aPascalCase\x20is\x20required\x20for\x20consistency\x20and\x20proper\x20resource\x20mapping\x20when\x20using\x20decorators\x20like\x20@resourceMetaId.\x20This\x20helps\x20avoid\x20issues\x20with\x20case-sensitive\x20systems\x20or\x20route\x20generation.';var noToLowerCaseWithResourceName = createEslintRule(ruleName,ruleContent,__name(function create(_0x1df771){return {'ClassDeclaration'(_0x5cb07d){const _0x453f2d=_0x5cb07d['decorators'];if(!_0x453f2d)return;const _0x499c87=_0x453f2d['some'](_0x495160=>{if(_0x495160['expression']['type']===nodeTypes['callExpression']){const _0x4e8a2b=_0x495160['expression']['callee'];return _0x4e8a2b['type']===nodeTypes['identifier']&&_0x4e8a2b['name']===resourceMetaProperties['resourceMetaId'];}return ![];});if(_0x499c87&&_0x5cb07d['id']){const _0x5116d1=_0x5cb07d['id']['name'];!isPascalCase(_0x5116d1)&&_0x1df771['report']({'node':_0x5cb07d,'messageId':ruleName});}}};},'create'));

export { noToLowerCaseWithResourceName as default, ruleName };
