export const ReactMensagens = {
    linkTargetBlank: '带有 target="_blank" 的链接缺少 rel="noreferrer"/"noopener"。',
    dangerouslySetInnerHTML: '发现使用 dangerouslySetInnerHTML;请确认是否必要。',
    imgWithoutAlt: '图片缺少 alt 属性 (可访问性)。',
    httpFetch: '检测到未使用 TLS 的 HTTP 调用;建议使用 HTTPS。',
    hardcodedCredential: '可能存在硬编码凭据;请使用环境变量。',
    locationHrefRedirect: '直接赋值给 location.href;请验证来源以防止开放重定向。',
    listItemNoKey: '列表 (map) 中的项目缺少 key 属性。',
    indexAsKey: '使用索引作为 key (可能导致重排序问题)。',
    inlineHandlerJsx: '在 JSX 中检测到内联处理函数;建议使用稳定函数 (useCallback) 或提取到渲染外部。',
    deprecatedLifecycleMethod: (name) => `已废弃的生命周期方法: ${name}。请使用 componentDidMount、componentDidUpdate 或 hooks。`,
    complexInlineStyles: '检测到复杂的内联样式。考虑使用 CSS 模块或 styled-components 以获得更好的性能和组织。'
};
export const ReactHooksMensagens = {
    useEffectNoDeps: 'useEffect 缺少依赖数组 (请评估依赖项以避免循环)。',
    memoCallbackNoDeps: 'Hook 缺少依赖数组 (useMemo/useCallback)。',
    hookInConditional: '在条件语句中声明了 Hook (违反了 Hooks 规则)。'
};
export const TailwindMensagens = {
    conflictingClasses: (key, tokens) => `可能的 ${key} 冲突 (${tokens.slice(0, 4).join(', ')})。请检查重复。`,
    repeatedClass: (token) => `检测到重复的类 (${token})。建议移除冗余。`,
    importantUsage: (token) => `在 (${token}) 中检测到使用 ! (important)。建议使用工具类或作用域增强,而非 important。`,
    variantConflict: (prop, variants) => `${prop} 可能存在变体冲突 (变体: ${variants.slice(0, 6).join(', ')})。请检查顺序/作用域。`,
    dangerousArbitraryValue: (token) => `带有潜在危险的 url 任意值 (${token})。避免使用 javascript:/data:text/html。`,
    arbitraryValue: (token) => `带有任意值的类 (${token})。请确认是否符合设计。`
};
export const CssMensagens = {
    duplicatePropertySame: (prop) => `检测到重复属性且值相同 (${prop}): 错误。`,
    duplicatePropertyDifferent: (prop, prev, curr) => `重复属性 (${prop}) 但值不同。可能错误: "${prev}" 与 "${curr}"。`,
    importantUsage: '检测到使用 !important;建议使用适当的选择器优先级。',
    httpImport: '检测到通过 HTTP 导入;建议使用 HTTPS 或本地打包。',
    httpUrl: 'url() 中通过 HTTP 引用外部资源;建议使用 HTTPS。',
    unifySelectors: (selectors, propsCount) => `选择器 (${selectors.slice(0, 6).join(', ')}) 的 CSS 规则相同 (${propsCount} 个属性)。建议统一/集中为工具类或共享选择器。`,
    idSelectorPreferClass: (selector) => `检测到 ID 选择器 (${selector})。为复用和一致性考虑,请尽可能使用类。`,
    invalidProperty: (prop) => `无效或未知的 CSS 属性 (${prop})。请检查拼写或浏览器支持。`,
    malformedSelector: (selector) => `格式错误/无效的 CSS 选择器 (${selector})。可能导致渲染问题。`,
    emptyRule: '检测到空的 CSS 规则。请移除没有声明的规则。',
    vendorPrefixDeprecated: (prop) => `已弃用的厂商前缀 (${prop})。请在支持时使用标准属性。`,
    cssHackDetected: (hack) => `检测到 CSS hack (${hack})。请考虑现代方法或特性查询。`
};
export const HtmlMensagens = {
    doctype: '文档未声明 <!DOCTYPE html>。',
    htmlLang: '<html> 元素缺少 lang 属性 (可访问性)。',
    metaCharset: '文档中缺少 <meta charset="utf-8">。',
    viewport: '缺少用于响应式的 viewport meta。',
    title: '文档未定义 <title>。',
    linkTargetBlank: '带有 target="_blank" 的链接缺少 rel="noreferrer"/"noopener"。',
    linkNoHref: '链接缺少有效的 href 或处理函数 (UX)。请使用 <button> 或 role="button"。',
    imgWithoutAlt: '图片缺少 alt 属性或可访问性 (WCAG 2.1)。',
    imgWithoutLoading: '图片缺少 loading 属性 (性能)。建议使用 loading="lazy"。',
    imgWithoutDimensions: '图片缺少 width/height (布局偏移)。请设置尺寸以防止 CLS。',
    formWithoutMethod: '表单未指定 method (GET/POST)。',
    formWithoutAction: '表单缺少 action 或用于处理的 data-attribute。',
    inputWithoutLabel: 'Input 缺少 name、id 或 aria-label (可访问性/可用性)。',
    passwordWithoutAutocomplete: '密码字段未指定 autocomplete (安全)。',
    inputWithoutType: 'Input 未指定 type (默认为 text,但请显式声明)。',
    inlineHandler: '检测到内联处理函数 (on*)。建议使用外部监听器或带 JS 的 data-attributes。',
    inlineScript: '检测到内联脚本。建议使用外部文件以获得更好的缓存和 CSP。',
    inlineStyle: '检测到内联样式。建议使用外部 CSS 文件以获得更好的缓存。',
    scriptWithoutDefer: '脚本缺少 defer/async。可能阻塞渲染;建议使用 defer。',
    headingSkipped: (current, expected) => `跳过了标题: h${current} 缺少前置的 h${expected} (语义结构)。`,
    buttonWithoutText: '按钮缺少文本或 aria-label (可访问性)。',
    tableWithoutCaption: '表格缺少 <caption> 或 aria-label (可访问性)。',
    iframeWithoutTitle: 'Iframe 缺少 title (可访问性)。',
    largeInlineScript: '内联脚本过大。请移至外部文件。',
    multipleH1: '检测到多个 <h1>。为 SEO/可访问性考虑,每页仅使用一个。'
};
export const XmlMensagens = {
    xmlPrologAusente: 'XML 缺少 <?xml ...?> 声明 (可选,但可提高兼容性)。',
    doctypeDetectado: 'XML 包含 <!DOCTYPE>。请注意 XXE 向量 (外部实体)。',
    doctypeExternoDetectado: 'XML 包含带外部标识符 (SYSTEM/PUBLIC) 的 DOCTYPE。如果解析器不安全,XXE 风险很高。',
    entidadeDetectada: 'XML 包含 <!ENTITY>。请检查是否存在扩展/XXE 风险。',
    entidadeExternaDetectada: 'XML 包含外部实体 (SYSTEM/PUBLIC)。如果解析器不安全,XXE 风险很高。',
    entidadeParametroDetectada: 'XML 包含参数实体 (<!ENTITY % ...>)。可能用于 XXE/DTD 注入;请仔细审查。',
    xincludeDetectado: 'XML 包含 XInclude (<xi:include>)。可能加载外部资源;请验证来源和解析器。',
    namespaceUndeclared: (prefix) => `使用了命名空间前缀 "${prefix}" 但未声明 xmlns:${prefix}。`,
    invalidXmlStructure: '检测到无效的 XML 结构 (未关闭或嵌套不当的标签)。',
    encodingMismatch: (declared, detected) => `声明的编码 (${declared}) 与检测到的 (${detected}) 不匹配。`,
    largeEntityExpansion: '可能存在非常大的实体扩展。Billion Laughs 攻击风险。',
    cdataInAttribute: '在属性值中检测到 CDATA (XML 中无效)。'
};
export const FormatadorMensagens = {
    naoFormatado: (parser, detalhes) => {
        const base = `文件似乎未格式化 (解析器: ${parser})。建议使用 Tutanus 格式化器规范化。`;
        if (!detalhes)
            return base;
        return `${base} (${detalhes})`;
    },
    parseErro: (parser, err) => `验证内部格式化失败 (解析器: ${parser}): ${err}`
};
export const SvgMensagens = {
    naoPareceSvg: '.svg 文件不包含有效的 <svg> 标签。',
    semViewBox: '检测到 SVG 缺少 viewBox (可能影响响应式)。',
    scriptInline: 'SVG 包含 <script>。安全风险: 避免带有嵌入式脚本的 SVG。',
    eventoInline: 'SVG 包含内联处理函数 (on*)。避免在资产中使用内联事件。',
    javascriptUrl: 'SVG 在 URL/href 中包含 javascript:。安全风险。',
    podeOtimizar: (originalBytes, optimizedBytes, mudancas) => `SVG 可优化 (${originalBytes}B → ${optimizedBytes}B)。更改: ${mudancas.join(', ')}。`
};
export const CssInJsMensagens = {
    detectedStyledComponents: '检测到 styled-components 模式 (CSS-in-JS)。',
    detectedStyledJsx: '检测到 styled-jsx 模式 (React 中的 CSS-in-JS)。',
    globalStyles: (fonte) => `检测到全局样式 (${fonte})。请尽可能使用局部作用域。`,
    importantUsage: '在 CSS-in-JS 中检测到使用 !important;建议使用适当的选择器优先级。',
    httpUrl: 'url() 中通过 HTTP 引用外部资源;建议使用 HTTPS。',
    bestPracticesDescricao: '检测 CSS-in-JS 中的不良实践',
    detectorGlobalStyles: '检测到全局样式',
    sugestaoEvitarGlobalStyles: '避免使用全局样式 - 请使用 CSS Modules 或作用域样式',
    importantDetected: '在 CSS-in-JS 中使用 !important',
    sugestaoEspecificidade: '请重构选择器优先级，避免使用 !important',
    httpUrlDetected: '在 CSS-in-JS 中使用 HTTP URL',
    sugestaoHttps: '外部资源请使用 HTTPS',
    mixedStyling: '混合使用 className 和内联样式',
    sugestaoMixedStyling: '请选择一种方式：使用 CSS-in-JS 或内联样式'
};
export const CssInJsPontuacaoMensagens = {
    notDetected: '未检测到 CSS-in-JS',
    detected: '检测到 CSS-in-JS',
    noGlobalStyles: '无全局样式',
    globalStylesIssue: '检测到全局样式',
    noImportant: '没有 !important',
    importantUsageCount: (count) => `${count} 处使用了 !important`,
    noHttpUrls: '没有 HTTP URL',
    httpUrlCount: (count) => `${count} 个 HTTP URL`,
    consistentStyling: '样式方法一致',
    mixedStylingIssue: '混合使用 className 和内联样式',
    themeUsage: '使用了主题系统',
    noThemeSystem: '未使用主题系统 - 考虑使用 ThemeProvider'
};
export const CssInJsCorrecaoMensagens = {
    description: 'CSS-in-JS 问题的自动修正',
    correctionSuggested: (tipo) => `建议修正: ${tipo}`,
    sugestaoFormat: (original, sugerido, confianca) => `[错误] ${original}\n[正确] ${sugerido}\n可信度: ${confianca}%`,
    extractGlobalCss: '// 考虑将全局样式移到单独的 CSS 文件中'
};
export const PythonMensagens = {
    missingTypeHints: '检测到函数缺少类型提示;请添加类型提示以提高可读性。',
    hardcodedString: (string) => `检测到硬编码字符串 (${string.slice(0, 30)}...);建议使用常量。`,
    httpWithoutVerify: '检测到 HTTP 请求缺少 verify=True;请验证 SSL 证书。',
    sqlInjection: '可能存在 SQL 注入;请使用预处理语句。',
    broadExcept: '检测到通用异常 (except:);请指定具体异常。',
    bareRaise: '检测到 raise 缺少上下文;请始终传递异常以保持堆栈跟踪。',
    passInExcept: '在 except 块中使用 pass;请实现适当的错误处理。',
    printInsteadOfLog: '检测到 print();生产环境建议使用 logging 模块。',
    evalUsage: '检测到 eval();请避免使用 eval - 安全漏洞。',
    execUsage: '检测到 exec();请避免使用 exec - 安全漏洞。',
    subprocessShellTrue: '检测到 subprocess 使用 shell=True;存在命令注入风险。建议使用 args 列表和 shell=False。',
    pickleUsage: '检测到 pickle load(s);请勿反序列化不受信任的数据 (RCE)。建议使用安全格式 (JSON)。',
    yamlUnsafeLoad: '检测到 yaml.load 缺少安全 Loader;建议使用 yaml.safe_load (防止执行)。',
    globalKeyword: '检测到使用 global 关键字;建议作为参数传递。',
    mutableDefault: '检测到参数使用可变的默认值 (list/dict);建议使用 None 作为默认值。',
    listComprehensionOpportunity: '检测到可使用列表推导式的循环。',
    loopingOverDict: '遍历字典未使用 .items();建议使用 .items()。'
};
export const GoMensagens = {
    uncheckedError: '调用可能返回错误的函数后未检查错误。',
    printWithoutFormat: 'fmt.Print* 未使用格式字符串;建议使用 fmt.Printf 并指定格式。',
    deferInLoop: '循环内的 defer 可能导致资源泄漏;请移到循环外部。',
    hardcodedSecret: '可能存在硬编码密钥;请使用环境变量。',
    unbufferedChanSend: '在同一 goroutine 中向无缓冲通道发送 - 存在死锁风险。',
    magicNumber: '检测到魔法数字;请提取为命名常量。',
    longFunction: '函数过长;建议重构为更小的函数。',
    missingDeferClose: '资源未使用 defer 关闭;请添加 defer resource.Close()。',
    globalVar: '检测到全局变量;建议使用依赖注入。',
    ignoredError: '使用 _ 显式忽略了错误返回值;建议检查错误。',
    sqlInjection: '通过字符串拼接构建 SQL 查询;存在 SQL 注入风险。请使用参数化查询。',
    commandInjection: '通过变量插值构建命令;存在命令注入风险。',
    pathTraversal: '使用用户输入进行文件操作;存在路径遍历风险。请验证/清理路径。',
    namingConvention: (funcName) => `函数 '${funcName}' 不符合 Go 命名约定 (CamelCase)。`,
    longVariableName: (varName) => `变量 '${varName}' 对于短作用域变量来说过长;建议使用更短的名称。`,
    incompleteImportPath: (path) => `导入路径 '${path}' 以点结尾;可能是不完整的路径。`,
    goodErrorWrapping: '良好实践: 在 fmt.Errorf 中使用 %w 进行错误包装'
};
export const RustMensagens = {
    unwrapUsage: '检测到 .unwrap();建议使用 Result/Option 的模式匹配。',
    emptyExpect: '.expect() 消息为空;请提供描述性消息。',
    unsafeBlock: '检测到 unsafe 块;请尽可能避免使用 unsafe。',
    transmuteUsage: '检测到 transmute 使用;建议使用安全的 TryFrom/From 转换。',
    noTrimOnInput: 'read_line 未使用 trim;值可能包含换行符。',
    vecWithoutCapacity: 'Vec.push() 在未使用 with_capacity 创建的 Vec 上;请预分配以提高性能。',
    mutexAcrossAwait: 'Mutex 锁在 .await 过程中保持;存在死锁风险。',
    printlnInLib: '库代码中的 println!;请使用日志框架。',
    magicNumber: '检测到魔法数字;请提取为常量。',
    hardcodedSecret: '可能存在硬编码密钥;请使用环境变量。',
    longFunction: '函数过长;建议重构为更小的函数。',
    genericExpect: '.expect() 使用了通用消息;请提供上下文说明该值应为 Some/Ok 的原因。',
    unwrapInResult: '在返回 Result 的函数中使用 .unwrap();请改用 ? 运算符。',
    stubMacro: (name) => `${name}() 应仅用作桩代码;请在生产代码中移除。`,
    todoFound: '发现 todo!() 宏;请在发布前实现。',
    rawPointer: '在 unsafe 块中使用原始指针;请记录安全不变量。',
    reprC: '检测到 #[repr(C)];请确认是否因 FFI 兼容性而必需。',
    missingDoc: (fnName) => `公开函数 '${fnName}' 缺少文档注释 (///)。`,
    namingConvention: (constName) => `常量 '${constName}' 应遵循 SCREAMING_CASE 命名约定。`,
    redundantReturn: '函数末尾的 return 是多余的;Rust 使用隐式返回 (最后一个表达式)。',
    wildcardImport: (importPath) => `通配符导入 '${importPath}' 可能污染命名空间;建议使用显式导入。`
};
export const JavaMensagens = {
    sysoutDetected: '检测到 System.out/err.print;请使用日志框架(SLF4J, Logback)。',
    printStackTrace: '检测到 e.printStackTrace();请使用记录器记录异常。',
    hardcodedSecret: '可能存在硬编码密钥;请使用环境变量。',
    sqlConcatenation: '检测到 SQL 字符串拼接;请使用 PreparedStatement。',
    nullAssignment: '检测到 null 赋值;建议使用 Optional。',
    emptyCatch: '检测到空的 catch 块;请至少记录错误。',
    genericCatch: '捕获了泛型异常(Exception/Throwable);请具体指定。',
    mutableStatic: '检测到可变的 static 字段;建议使用 final 或封装。',
    longMethod: '方法过长;建议提取更小的方法。',
    lateinitWithoutCheck: 'lateinit var 在使用前未检查 ::isInitialized。'
};
export const PhpMensagens = {
    sqlInjection: '可能存在 SQL 注入;请使用预处理语句(PDO)。',
    evalUsage: '检测到 eval();安全漏洞 - 避免使用。',
    assertString: '检测到 assert() 使用字符串;存在代码注入风险。',
    unserializeUsage: '检测到 unserialize();如果数据不可信,存在 RCE 风险。',
    extractUsage: '检测到 extract();存在变量覆盖风险。',
    urlFetch: '检测到 file_get_contents 使用 URL;请验证并限制 URL。',
    commandExecution: '检测到命令执行函数;存在命令注入风险。',
    requestUsage: '检测到 $_REQUEST;建议使用 $_GET、$_POST 或 $_SERVER 以提高清晰度。',
    hardcodedSecret: '可能存在硬编码密钥;请使用环境变量。',
    deprecatedMysql: '检测到已弃用的 mysql_* 函数;请迁移到 PDO 或 MySQLi。',
    shortOpenTag: '检测到短开放标签(<?);建议使用 <?php 以确保兼容性。',
    errorSuppression: '检测到错误抑制运算符(@);请妥善处理错误。',
    longFunction: '函数过长;建议重构。',
    debugOutput: '在生产代码中检测到 var_dump/print_r/die;请移除或使用记录器。',
    camelCaseFunction: 'CamelCase 函数名;建议遵循 PHP 惯例使用 snake_case。'
};
export const SeverityNiveis = {
    error: '错误',
    warning: '警告',
    info: '信息',
    suggestion: '建议'
};
export const AnalystTipos = {
    react: 'react/规则',
    reactHooks: 'react-hooks/规则',
    tailwind: 'tailwindcss/规则',
    css: 'css/规则',
    html: 'html/规则',
    python: 'python/规则',
    xml: 'xml/规则',
    formatador: '格式化器/规则',
    svg: 'svg/规则',
    cssInJs: 'css-in-js/规则',
    go: 'go/规则',
    rust: 'rust/规则',
    php: 'php/规则'
};
export const AnalystOrigens = {
    react: '分析员-react',
    reactHooks: '分析员-react-hooks',
    tailwind: '分析员-tailwind',
    css: '分析员-css',
    html: '分析员-html',
    python: '分析员-python',
    xml: '分析员-xml',
    formatador: '分析员-格式化器',
    svg: '分析员-svg',
    cssInJs: '分析员-css-in-js',
    go: '分析员-go',
    rust: '分析员-rust',
    php: '分析员-php'
};
//# sourceMappingURL=plugin-messages.js.map