- 新增 config-contract 模块(TypeBox fragments、Ajv 契约校验、ConfigValidationIssue) - CheckerDefinition 扩展为含 configKey、schemas、validate 的完整插件接口 - HTTP/Command 各自维护 contract.ts + validate.ts,校验从 resolve 中分离 - resolve 不再承担校验,只做默认值合并和路径/单位解析 - config-loader 流程: unknown → RawProbeConfig → ValidatedProbeConfig → ResolvedConfig - 导出 probe-config.schema.json,新增 schema/schema:check 脚本 - 更新 DEVELOPMENT.md 新增 1.7 开发新 Checker 完整指引 - 同步更新 4 个 main specs(probe-config、command-checker、expect-body-checkers、checker-runner-abstraction)
61 lines
1.9 KiB
JSON
61 lines
1.9 KiB
JSON
{
|
|
"name": "dial-server",
|
|
"type": "module",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "bun run scripts/dev.ts",
|
|
"dev:server": "bun --watch src/server/dev.ts",
|
|
"dev:web": "bunx --bun vite --host 127.0.0.1",
|
|
"build": "bun run scripts/build.ts",
|
|
"lint": "eslint .",
|
|
"format": "prettier . --write",
|
|
"schema": "bun run scripts/generate-config-schema.ts",
|
|
"schema:check": "bun run scripts/generate-config-schema.ts --check",
|
|
"check": "bun run schema:check && bun run typecheck && bun run lint && bun test",
|
|
"verify": "bun run check && bun run build && bun run test:smoke",
|
|
"test": "bun test",
|
|
"test:smoke": "bun run scripts/smoke.ts",
|
|
"clean": "bun run scripts/clean.ts",
|
|
"typecheck": "tsc --noEmit",
|
|
"prepare": "husky"
|
|
},
|
|
"devDependencies": {
|
|
"@commitlint/cli": "^21.0.0",
|
|
"@commitlint/config-conventional": "^21.0.0",
|
|
"@eslint/js": "^10.0.1",
|
|
"@tanstack/react-query-devtools": "^5.100.10",
|
|
"@types/bun": "^1.3.13",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^6.0.1",
|
|
"eslint": "^10.3.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-perfectionist": "^5.9.0",
|
|
"eslint-plugin-prettier": "^5.5.5",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^17.0.4",
|
|
"prettier": "^3.8.3",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.59.2",
|
|
"vite": "^8.0.11"
|
|
},
|
|
"dependencies": {
|
|
"@sinclair/typebox": "^0.34.49",
|
|
"@tanstack/react-query": "^5.100.10",
|
|
"@xmldom/xmldom": "^0.9.10",
|
|
"ajv": "^8.20.0",
|
|
"cheerio": "^1.2.0",
|
|
"es-toolkit": "^1.46.1",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"recharts": "^3.8.1",
|
|
"tdesign-icons-react": "^0.6.4",
|
|
"tdesign-react": "^1.16.9",
|
|
"xpath": "^0.0.34"
|
|
}
|
|
}
|