-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdomain-dag.json
More file actions
99 lines (99 loc) · 2.42 KB
/
Copy pathdomain-dag.json
File metadata and controls
99 lines (99 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{
"sourceRoots": ["src", "packages", "nodes", "scripts", "android"],
"sourceExtensions": [".js", ".mjs", ".svelte"],
"entrypoints": [
"src/main.js",
"nodes/relay/relay.mjs",
"nodes/leaderboard/leaderboard.mjs",
"scripts/validate-records.mjs",
"scripts/detect-version-bump.mjs",
"android/compute-version-code.mjs",
"android/generate-release-notes.mjs",
"android/sync-twa-version.mjs"
],
"importAliases": {
"@digifall/leaderboard": "packages/leaderboard/index.js"
},
"requireHeaders": false,
"sharedBucketSeverity": "warn",
"allowedSharedBuckets": ["src/constants.js"],
"layers": [
{
"name": "protocol-package",
"rank": 0,
"files": ["packages/leaderboard/**"]
},
{
"name": "game-domain",
"rank": 1,
"files": [
"src/core.js",
"src/validation.js",
"src/constants.js",
"src/persistence.js"
]
},
{
"name": "app-state",
"rank": 2,
"files": ["src/stores.js", "src/sounds.js", "src/leaderboard.js"]
},
{
"name": "ui",
"rank": 3,
"files": ["src/**/*.svelte", "src/main.js"]
},
{
"name": "server-nodes",
"rank": 3,
"files": ["nodes/**", "scripts/**"]
},
{
"name": "release-automation",
"rank": 3,
"files": ["android/**", ".github/workflows/**"]
}
],
"forbiddenEdges": [
{
"from": "packages/leaderboard/**",
"to": "src/**",
"severity": "error",
"message": "Shared leaderboard package must not import app/client code"
},
{
"from": "src/core.js",
"to": "src/**/*.svelte",
"severity": "error",
"message": "Deterministic core must stay UI-independent"
},
{
"from": "src/validation.js",
"to": "src/**/*.svelte",
"severity": "error",
"message": "Replay validation must stay UI-independent"
},
{
"from": "src/persistence.js",
"to": "src/stores.js",
"severity": "error",
"message": "Generic persistence must not depend on app stores"
}
],
"surfaceRules": [
{
"name": "large module pressure",
"files": [
"src/*.js",
"packages/**/*.js",
"nodes/**/*.mjs",
"scripts/*.mjs",
"android/*.mjs"
],
"metric": "lines",
"max": 800,
"severity": "warn",
"message": "Large module; review ownership before adding more responsibility"
}
]
}