fdnext 是 FlashDetector 的 TypeScript 实现,采用多包架构,覆盖核心解码引擎、DSL 规则编译、HTTP 服务、CLI 工具、兼容性回归和独立 FDB 生成能力。
- ESM 优先的 monorepo,使用严格 TypeScript 配置
@itxtech/fdnext-core可用于 Node.js 与浏览器环境,无运行时网络依赖- 基于 JSON DSL 的 PN / FlashId 规则编译与扩展
- 支持请求级 Processor 管线,可在 SDK、Server、CLI 统一接入
- 提供独立的 TypeScript FDB 生成器
@itxtech/fdnext-fdbgen
@itxtech/fdnext-core:解码与搜索引擎、SDK 能力@itxtech/fdnext-resources:可发布的数据资源包(fdb/mdb/lang)@itxtech/fdnext-dsl:DSL 规则与解码器编译器@itxtech/fdnext-server:基于 Hapi 的 HTTP 服务@itxtech/fdnext-cli:命令行工具@itxtech/fdnext-fdbgen:独立 FDB 生成器与 CLI@itxtech/fdnext-compat-test:兼容性夹具与差异对比工具
- Node.js
>= 24 pnpm
pnpm install
pnpm build在仓库根目录执行:
docker build -t fdnext-server .
docker run -d --name fdnext -p 8080:8080 fdnext-server@itxtech/fdnext-fdbgen 可从本地数据集生成 fdb.json:
fdnext-fdbgen build --input <dataset-dir> --output <fdb.json> [options]可选参数:
--meta <file>:元信息覆盖文件--extra <file>:额外合并补丁文件--version <ver>:覆盖info.version--name <name>:覆盖info.name--website <url>:覆盖info.website--time <text>:覆盖info.time--pretty:格式化输出 JSON
输入目录约定(均为可选):
fdb.json:基础数据vendors/*.json:按厂商拆分的 PN 记录iddb/*.json或flashids/*.json:FlashId 记录meta.json:默认元信息extra.json:对info/vendors/iddb的补丁合并
mdb 爬取(Micron + SpecTek):
pnpm fdbgen:crawl-mdb -- --file resources/mdb.json仓库内置 PHP 与 TS 的行为对比流程:
pnpm compat:ci夹具工具依赖的环境变量:
SF_HOME=/path/to/SimpleFrameworkFDNEXT_FLASHDETECTOR=/path/to/FlashDetector
- 上游项目:iTXTech/FlashDetector
- Flash 数据源:iTXTech/fdfdb
本项目以 AGPL-3.0-or-later 发布,详见 LICENSE。