mirror of
https://github.com/morluto/rea.git
synced 2026-10-12 02:19:24 +00:00
* chore(deps): finish toolchain upgrades and drop dead weight pino 9 to 10, @types/node 24 to 26, oxlint 1.73 to 1.87, knip 6.26 to 6.39, turbo 2.10 to 2.11. Narrow engines to supported majors (22/24/26; vitest 5 refuses Node 25). Scope no-var-requires off for Electron CJS hooks and fixtures. Remove TypeDoc: incompatible with TypeScript 7 at install and runtime, used by nothing in any gate. Drop the dep, docs:api workflow, typedoc.json, CI artifact step, and related docs. Replace graphology with a local call-graph adjacency plus BFS: the only consumer is call-path search, and graphology-types ships no types entry for TS7 NodeNext resolution. Delete both graphology dependencies. Remove dead re-exports newly flagged by knip 6.39. * chore: drop stale typedoc and replay references Remove the docs:api release-checklist step, the orphaned docs/api ignore entry, and the nonexistent replay glob from the adapters project.
145 lines
3.5 KiB
JSON
145 lines
3.5 KiB
JSON
{
|
|
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
|
"plugins": ["typescript", "import", "unicorn", "oxc"],
|
|
"rules": {
|
|
"complexity": ["warn", 20],
|
|
"max-depth": ["warn", 4],
|
|
"max-lines": [
|
|
"warn",
|
|
{ "max": 500, "skipBlankLines": true, "skipComments": true }
|
|
],
|
|
"max-lines-per-function": [
|
|
"warn",
|
|
{ "max": 100, "skipBlankLines": true, "skipComments": true }
|
|
],
|
|
"max-params": ["warn", 4],
|
|
"no-var": "warn",
|
|
"no-var-requires": "error"
|
|
},
|
|
"overrides": [
|
|
{
|
|
"files": [
|
|
"scripts/electron-active-hook*.cjs",
|
|
"tests/conformance/readiness/electron/*.js"
|
|
],
|
|
"rules": {
|
|
"no-var-requires": "off"
|
|
}
|
|
},
|
|
{
|
|
"files": [
|
|
"src/{contracts,domain,server}/**/*.ts",
|
|
"src/application/**/*.ts"
|
|
],
|
|
"excludeFiles": ["src/application/runtime.ts"],
|
|
"rules": {
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
"patterns": [
|
|
{
|
|
"group": ["**/ghidra/**", "**/hopper/**"],
|
|
"message": "Deep-provider imports belong behind adapters or in the application composition root."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"files": ["tests/**/*.ts", "src/**/*.test.ts", "src/**/*.fixture.ts"],
|
|
"rules": {
|
|
"max-lines": "off",
|
|
"max-lines-per-function": [
|
|
"error",
|
|
{ "max": 150, "skipBlankLines": true, "skipComments": true }
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/domain/**/*.{fixture,test}.ts"],
|
|
"rules": {
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
"patterns": [
|
|
{
|
|
"group": [
|
|
"**/application/**",
|
|
"**/server/**",
|
|
"**/process/**",
|
|
"**/browser/**",
|
|
"**/ghidra/**",
|
|
"**/hopper/**",
|
|
"**/replay/**",
|
|
"**/cli.*",
|
|
"**/main.*"
|
|
],
|
|
"message": "Domain tests may import only their owning domain and inward dependencies."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"files": ["src/application/**/*.test.ts"],
|
|
"rules": {
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
"patterns": [
|
|
{
|
|
"group": ["**/server/**", "**/cli.*", "**/main.*"],
|
|
"message": "Service tests must use application ports rather than CLI or MCP entrypoints."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"files": ["tests/composition/**/*.test.ts"],
|
|
"rules": {
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
"patterns": [
|
|
{
|
|
"group": [
|
|
"**/server/**",
|
|
"**/cli.*",
|
|
"**/main.*",
|
|
"node:child_process",
|
|
"node:net",
|
|
"node:http",
|
|
"node:https",
|
|
"ws",
|
|
"playwright"
|
|
],
|
|
"message": "Composition tests may wire provider-neutral sessions but must not invoke CLI, MCP, process, network, or browser boundaries."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"env": {
|
|
"node": true,
|
|
"es2023": true
|
|
},
|
|
"ignorePatterns": [
|
|
"dist",
|
|
"build",
|
|
"node_modules",
|
|
"docs/api",
|
|
"coverage",
|
|
".turbo",
|
|
".cache",
|
|
".codex",
|
|
".devin",
|
|
".factory"
|
|
]
|
|
}
|