# 问题 修复 文件 1 前端构建失败(引号错误) size="small type=" → size="small" type=" PosterHistoryPage.vue 2 migrate_014 ORM vs 缺失列 全部改为原始 SQL,不再引用 ORM 模型 migrate_014.py 3 cleanup 字段名错误 output_path → ppt_path cleanup.py 4 文案生成 case 越权 添加 case.user_id != user_id 校验 poster/service.py 5 存储路径未接通持久化卷 全部改用 get_storage_root()(默认 /app/api/storage/insurance) config.py, ppt/routes.py, poster/service.py, poster/tasks.py 高风险问题修复 # 问题 修复 文件 6 migrate_019 rollback 撤销成功字段 每个 ALTER 后立即 commit,失败只回滚当前语句 migrate_019.py 7 迁移锁 Windows 不兼容 + 句柄未持久化 全局变量保存锁句柄,支持 Windows msvcrt api/insurance/db/__init__.py 8 PDF 校验异常时放行 异常返回 False(文件损坏) security.py 9 健康检查始终返回成功 缺少关键资源时返回 503 + missing 列表 poster/routes.py 10 短密钥掩码泄露原值 ≤4 字符返回 **** ppt_admin_service.py 11 设置无键名白名单 添加 _ALLOWED_SETTING_KEYS 白名单 ppt_admin_service.py 12 容器重启任务永久 stuck 添加 recover_stale_tasks() 启动恢复函数 poster/tasks.py, ppt/parse_worker.py
51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Anti-Pattern Detector for Impeccable
|
|
* Copyright (c) 2026 Paul Bakaus
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Public API facade. Runtime engines live under cli/engine/engines/.
|
|
*/
|
|
|
|
import { detectCli } from './cli/main.mjs';
|
|
|
|
export { ANTIPATTERNS, RULE_ENGINE_SUPPORT, getAntipattern, getRulesForCategory, getRuleEngineSupport } from './registry/antipatterns.mjs';
|
|
export { SAFE_TAGS, BORDER_SAFE_TAGS, OVERUSED_FONTS, GENERIC_FONTS, KNOWN_SERIF_FONTS } from './shared/constants.mjs';
|
|
export { isNeutralColor, parseRgb, relativeLuminance, contrastRatio, parseGradientColors, hasChroma, getHue, colorToHex } from './shared/color.mjs';
|
|
export { isFullPage } from './shared/page.mjs';
|
|
export {
|
|
checkElementBorders,
|
|
checkElementMotion,
|
|
checkElementGlow,
|
|
checkPageTypography,
|
|
checkPageLayout,
|
|
checkHtmlPatterns,
|
|
} from './rules/checks.mjs';
|
|
export { createDetectorProfile, summarizeDetectorProfile } from './profile/profiler.mjs';
|
|
export {
|
|
parseFrontmatter as parseDesignFrontmatter,
|
|
normalizeDesignSystem,
|
|
loadDesignSystemForCwd,
|
|
checkSourceDesignSystem,
|
|
collectStaticDesignSystemFindings,
|
|
} from './design-system.mjs';
|
|
export { detectHtml } from './engines/static-html/detect-html.mjs';
|
|
export { detectUrl, createBrowserDetector } from './engines/browser/detect-url.mjs';
|
|
export { detectText, extractStyleBlocks, extractCSSinJS } from './engines/regex/detect-text.mjs';
|
|
export {
|
|
walkDir,
|
|
SCANNABLE_EXTENSIONS,
|
|
SKIP_DIRS,
|
|
buildImportGraph,
|
|
resolveImport,
|
|
detectFrameworkConfig,
|
|
isPortListening,
|
|
FRAMEWORK_CONFIGS,
|
|
} from './node/file-system.mjs';
|
|
export { formatFindings, detectCli } from './cli/main.mjs';
|
|
|
|
const isMainModule = process.argv[1]?.endsWith('detect-antipatterns.mjs') ||
|
|
process.argv[1]?.endsWith('detect-antipatterns.mjs/');
|
|
if (isMainModule) detectCli();
|