Logical Decomposition #1: PRIMARY

The decompositions is based on the folder structure at level 1 (relative to the source code root).

Bubble Chart | Tree Map
Static Dependencies
Dependencies among components are static code dependencies among files in different components.
  • Analyzed system has 84 links (arrows) between components.
  • The number on the arrow represents the number of files from referring component that depend on files in referred component.
  • These 84 links contain 511 dependencies.
  • There are 26 places (52 links) with cyclic dependencies (405 file dependencies).
flowchart TB
    n0["kahuna"]
    n1["cdk"]
    n2["ROOT"]
    n3["auth"]
    n4["image-loader"]
    n5["cropper"]
    n6["usage"]
    n7[".devcontainer"]
    n8["thrall"]
    n9["metadata-editor"]
    n10["leases"]
    n11["scripts"]
    n12[".github"]
    n13["image-cache-purger"]
    n14["dev"]
    n15["image-embedder-lambda"]
    n16["collections"]
    n17["common-lib"]
    n18["quarantine-status"]
    n19["image-counter-lambda"]
    n20["rest-lib"]
    n21["media-api"]
    n17 -->|"41"| n4
    n17 -->|"41"| n5
    n17 -->|"41"| n6
    n17 -->|"41"| n9
    n17 -->|"41"| n16
    n21 -->|"22"| n17
    n4 -->|"19"| n17
    n8 -->|"17"| n17
    n20 -->|"14"| n3
    n6 -->|"13"| n17
    n9 -->|"12"| n17
    n21 -->|"11"| n11
    n20 -->|"9"| n17
    n4 -->|"8"| n11
    n21 -->|"7"| n3
    n21 -->|"7"| n4
    n21 -->|"7"| n5
    n21 -->|"7"| n6
    n21 -->|"7"| n9
    n21 -->|"7"| n16
    n21 -->|"6"| n20
    n16 -->|"6"| n17
    n5 -->|"5"| n17
    n4 -->|"5"| n3
    n4 -->|"5"| n20
    n11 -->|"4"| n17
    n10 -->|"3"| n17
    n8 -->|"3"| n11
    n9 -->|"3"| n3
    n8 -->|"3"| n20
    n9 -->|"3"| n20
    n8 -->|"3"| n4
    n8 -->|"3"| n5
    n8 -->|"3"| n6
    n8 -->|"3"| n9
    n8 -->|"3"| n16
    n20 -->|"3"| n4
    n20 -->|"3"| n5
    n20 -->|"3"| n6
    n20 -->|"3"| n9
    n20 -->|"3"| n16
    n0 -->|"2"| n3
    n6 -->|"2"| n3
    n0 -->|"2"| n17
    n0 -->|"2"| n20
    n4 -->|"2"| n13
    n8 -->|"2"| n13
    n5 -->|"2"| n11
    n16 -->|"2"| n3
    n16 -->|"2"| n20
    n3 -->|"2"| n17
    n3 -->|"2"| n20
    n11 -->|"2"| n0
    n11 -->|"2"| n4
    n11 -->|"2"| n5
    n11 -->|"2"| n6
    n11 -->|"2"| n8
    n11 -->|"2"| n9
    n11 -->|"2"| n10
    n11 -->|"2"| n16
    n11 -->|"2"| n21
    n5 -->|"1"| n3
    n8 -->|"1"| n3
    n10 -->|"1"| n3
    n5 -->|"1"| n20
    n10 -->|"1"| n20
    n9 -->|"1"| n13
    n6 -->|"1"| n20
    n5 -->|"1"| n4
    n3 -->|"1"| n4
    n3 -->|"1"| n5
    n3 -->|"1"| n6
    n3 -->|"1"| n9
    n3 -->|"1"| n16
    n6 -->|"1"| n11
    n11 -->|"1"| n13
    n13 -->|"1"| n4
    n13 -->|"1"| n5
    n13 -->|"1"| n6
    n13 -->|"1"| n9
    n13 -->|"1"| n16
    n17 -->|"1"| n8
    n17 -->|"1"| n21
    n17 -->|"1"| n3
    classDef default fill:#808080,stroke:#ffffff,color:#000000;
    classDef highlighted fill:#00b2ee,stroke:#ffffff,color:#000000;
    class n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21 highlighted;
    linkStyle 0 stroke:#DC143CFF,stroke-width:10px
    linkStyle 1 stroke:#DC143CFF,stroke-width:10px
    linkStyle 2 stroke:#DC143CFF,stroke-width:10px
    linkStyle 3 stroke:#DC143CFF,stroke-width:10px
    linkStyle 4 stroke:#DC143CFF,stroke-width:10px
    linkStyle 5 stroke:#DC143CA5,stroke-width:5px
    linkStyle 6 stroke:#DC143C93,stroke-width:4px
    linkStyle 7 stroke:#DC143C93,stroke-width:4px
    linkStyle 8 stroke:#DC143C82,stroke-width:3px
    linkStyle 9 stroke:#DC143C82,stroke-width:3px
    linkStyle 10 stroke:#DC143C70,stroke-width:2px
    linkStyle 11 stroke:#DC143C70,stroke-width:2px
    linkStyle 12 stroke:#00688b70,stroke-width:2px
    linkStyle 13 stroke:#DC143C5E,stroke-width:1px
    linkStyle 14 stroke:#00688b5E,stroke-width:1px
    linkStyle 15 stroke:#00688b5E,stroke-width:1px
    linkStyle 16 stroke:#00688b5E,stroke-width:1px
    linkStyle 17 stroke:#00688b5E,stroke-width:1px
    linkStyle 18 stroke:#00688b5E,stroke-width:1px
    linkStyle 19 stroke:#00688b5E,stroke-width:1px
    linkStyle 20 stroke:#00688b5E,stroke-width:1px
    linkStyle 21 stroke:#DC143C5E,stroke-width:1px
    linkStyle 22 stroke:#DC143C5E,stroke-width:1px
    linkStyle 23 stroke:#DC143C5E,stroke-width:1px
    linkStyle 24 stroke:#DC143C5E,stroke-width:1px
    linkStyle 25 stroke:#00688b4C,stroke-width:1px
    linkStyle 26 stroke:#00688b4C,stroke-width:1px
    linkStyle 27 stroke:#DC143C4C,stroke-width:1px
    linkStyle 28 stroke:#DC143C4C,stroke-width:1px
    linkStyle 29 stroke:#00688b4C,stroke-width:1px
    linkStyle 30 stroke:#DC143C4C,stroke-width:1px
    linkStyle 31 stroke:#00688b4C,stroke-width:1px
    linkStyle 32 stroke:#00688b4C,stroke-width:1px
    linkStyle 33 stroke:#00688b4C,stroke-width:1px
    linkStyle 34 stroke:#00688b4C,stroke-width:1px
    linkStyle 35 stroke:#00688b4C,stroke-width:1px
    linkStyle 36 stroke:#DC143C4C,stroke-width:1px
    linkStyle 37 stroke:#DC143C4C,stroke-width:1px
    linkStyle 38 stroke:#DC143C4C,stroke-width:1px
    linkStyle 39 stroke:#DC143C4C,stroke-width:1px
    linkStyle 40 stroke:#DC143C4C,stroke-width:1px
    linkStyle 41 stroke:#00688b4C,stroke-width:1px
    linkStyle 42 stroke:#DC143C4C,stroke-width:1px
    linkStyle 43 stroke:#00688b4C,stroke-width:1px
    linkStyle 44 stroke:#00688b4C,stroke-width:1px
    linkStyle 45 stroke:#DC143C4C,stroke-width:1px
    linkStyle 46 stroke:#00688b4C,stroke-width:1px
    linkStyle 47 stroke:#DC143C4C,stroke-width:1px
    linkStyle 48 stroke:#DC143C4C,stroke-width:1px
    linkStyle 49 stroke:#DC143C4C,stroke-width:1px
    linkStyle 50 stroke:#DC143C4C,stroke-width:1px
    linkStyle 51 stroke:#DC143C4C,stroke-width:1px
    linkStyle 52 stroke:#00688b4C,stroke-width:1px
    linkStyle 53 stroke:#DC143C4C,stroke-width:1px
    linkStyle 54 stroke:#DC143C4C,stroke-width:1px
    linkStyle 55 stroke:#DC143C4C,stroke-width:1px
    linkStyle 56 stroke:#DC143C4C,stroke-width:1px
    linkStyle 57 stroke:#00688b4C,stroke-width:1px
    linkStyle 58 stroke:#00688b4C,stroke-width:1px
    linkStyle 59 stroke:#00688b4C,stroke-width:1px
    linkStyle 60 stroke:#DC143C4C,stroke-width:1px
    linkStyle 61 stroke:#DC143C4C,stroke-width:1px
    linkStyle 62 stroke:#00688b4C,stroke-width:1px
    linkStyle 63 stroke:#00688b4C,stroke-width:1px
    linkStyle 64 stroke:#DC143C4C,stroke-width:1px
    linkStyle 65 stroke:#00688b4C,stroke-width:1px
    linkStyle 66 stroke:#DC143C4C,stroke-width:1px
    linkStyle 67 stroke:#DC143C4C,stroke-width:1px
    linkStyle 68 stroke:#00688b4C,stroke-width:1px
    linkStyle 69 stroke:#DC143C4C,stroke-width:1px
    linkStyle 70 stroke:#DC143C4C,stroke-width:1px
    linkStyle 71 stroke:#DC143C4C,stroke-width:1px
    linkStyle 72 stroke:#DC143C4C,stroke-width:1px
    linkStyle 73 stroke:#DC143C4C,stroke-width:1px
    linkStyle 74 stroke:#DC143C4C,stroke-width:1px
    linkStyle 75 stroke:#00688b4C,stroke-width:1px
    linkStyle 76 stroke:#DC143C4C,stroke-width:1px
    linkStyle 77 stroke:#00688b4C,stroke-width:1px
    linkStyle 78 stroke:#00688b4C,stroke-width:1px
    linkStyle 79 stroke:#DC143C4C,stroke-width:1px
    linkStyle 80 stroke:#00688b4C,stroke-width:1px
    linkStyle 81 stroke:#DC143C4C,stroke-width:1px
    linkStyle 82 stroke:#DC143C4C,stroke-width:1px
    linkStyle 83 stroke:#DC143C4C,stroke-width:1px




Explore: 2D force graph | 3D force graph

Show more details about dependencies...
From Component
 --> To Component
From Component
(files with dependencies)
Details
common-lib
  --> image-loader
41 files, 3364 LOC (34%)
41 source files
common-lib
  --> cropper
41 files, 3364 LOC (34%)
41 source files
common-lib
  --> usage
41 files, 3364 LOC (34%)
41 source files
common-lib
  --> metadata-editor
41 files, 3364 LOC (34%)
41 source files
common-lib
  --> collections
41 files, 3364 LOC (34%)
41 source files
media-api
  --> common-lib
22 files, 3357 LOC (91%)
22 source files
image-loader
  --> common-lib
19 files, 1987 LOC (90%)
19 source files
thrall
  --> common-lib
17 files, 2256 LOC (77%)
17 source files
rest-lib
  --> auth
14 files, 738 LOC (76%)
14 source files
usage
  --> common-lib
13 files, 1100 LOC (59%)
13 source files
metadata-editor
  --> common-lib
12 files, 674 LOC (94%)
12 source files
media-api
  --> scripts
11 files, 1621 LOC (44%)
11 source files
rest-lib
  --> common-lib
9 files, 524 LOC (54%)
9 source files
image-loader
  --> scripts
8 files, 1387 LOC (63%)
8 source files
media-api
  --> auth
7 files, 1597 LOC (43%)
7 source files
media-api
  --> image-loader
7 files, 836 LOC (22%)
7 source files
media-api
  --> cropper
7 files, 836 LOC (22%)
7 source files
media-api
  --> usage
7 files, 836 LOC (22%)
7 source files
media-api
  --> metadata-editor
7 files, 836 LOC (22%)
7 source files
media-api
  --> collections
7 files, 836 LOC (22%)
7 source files
media-api
  --> rest-lib
6 files, 1541 LOC (41%)
6 source files
collections
  --> common-lib
6 files, 342 LOC (80%)
6 source files
cropper
  --> common-lib
5 files, 418 LOC (80%)
5 source files
image-loader
  --> auth
5 files, 1306 LOC (59%)
5 source files
image-loader
  --> rest-lib
5 files, 1306 LOC (59%)
5 source files
scripts
  --> common-lib
4 files, 487 LOC (3%)
4 source files
leases
  --> common-lib
3 files, 177 LOC (77%)
3 source files
thrall
  --> scripts
3 files, 780 LOC (26%)
3 source files
metadata-editor
  --> auth
3 files, 321 LOC (44%)
3 source files
thrall
  --> rest-lib
3 files, 482 LOC (16%)
3 source files
metadata-editor
  --> rest-lib
3 files, 321 LOC (44%)
3 source files
thrall
  --> image-loader
3 files, 930 LOC (31%)
3 source files
thrall
  --> cropper
3 files, 930 LOC (31%)
3 source files
thrall
  --> usage
3 files, 930 LOC (31%)
3 source files
thrall
  --> metadata-editor
3 files, 930 LOC (31%)
3 source files
thrall
  --> collections
3 files, 930 LOC (31%)
3 source files
rest-lib
  --> image-loader
3 files, 252 LOC (26%)
3 source files
rest-lib
  --> cropper
3 files, 252 LOC (26%)
3 source files
rest-lib
  --> usage
3 files, 252 LOC (26%)
3 source files
rest-lib
  --> metadata-editor
3 files, 252 LOC (26%)
3 source files
rest-lib
  --> collections
3 files, 252 LOC (26%)
3 source files
kahuna
  --> auth
2 files, 161 LOC (<1%)
2 source files
usage
  --> auth
2 files, 168 LOC (9%)
2 source files
kahuna
  --> common-lib
2 files, 161 LOC (<1%)
2 source files
kahuna
  --> rest-lib
2 files, 161 LOC (<1%)
2 source files
image-loader
  --> image-cache-purger
2 files, 615 LOC (28%)
2 source files
thrall
  --> image-cache-purger
2 files, 351 LOC (12%)
2 source files
cropper
  --> scripts
2 files, 185 LOC (35%)
2 source files
collections
  --> auth
2 files, 228 LOC (53%)
2 source files
collections
  --> rest-lib
2 files, 228 LOC (53%)
2 source files
auth
  --> common-lib
2 files, 146 LOC (94%)
2 source files
auth
  --> rest-lib
2 files, 146 LOC (94%)
2 source files
scripts
  --> kahuna
2 files, 394 LOC (3%)
2 source files
scripts
  --> image-loader
2 files, 394 LOC (3%)
2 source files
scripts
  --> cropper
2 files, 394 LOC (3%)
2 source files
scripts
  --> usage
2 files, 394 LOC (3%)
2 source files
scripts
  --> thrall
2 files, 394 LOC (3%)
2 source files
scripts
  --> metadata-editor
2 files, 394 LOC (3%)
2 source files
scripts
  --> leases
2 files, 394 LOC (3%)
2 source files
scripts
  --> collections
2 files, 394 LOC (3%)
2 source files
scripts
  --> media-api
2 files, 394 LOC (3%)
2 source files
cropper
  --> auth
1 file, 185 LOC (35%)
1 source file
thrall
  --> auth
1 file, 202 LOC (6%)
1 source file
leases
  --> auth
1 file, 136 LOC (59%)
1 source file
cropper
  --> rest-lib
1 file, 185 LOC (35%)
1 source file
leases
  --> rest-lib
1 file, 136 LOC (59%)
1 source file
metadata-editor
  --> image-cache-purger
1 file, 182 LOC (25%)
1 source file
usage
  --> rest-lib
1 file, 382 LOC (20%)
1 source file
cropper
  --> image-loader
1 file, 185 LOC (35%)
1 source file
auth
  --> image-loader
1 file, 123 LOC (79%)
1 source file
auth
  --> cropper
1 file, 123 LOC (79%)
1 source file
auth
  --> usage
1 file, 123 LOC (79%)
1 source file
auth
  --> metadata-editor
1 file, 123 LOC (79%)
1 source file
auth
  --> collections
1 file, 123 LOC (79%)
1 source file
usage
  --> scripts
1 file, 144 LOC (7%)
1 source file
scripts
  --> image-cache-purger
1 file, 219 LOC (1%)
1 source file
image-cache-purger
  --> image-loader
1 file, 35 LOC (20%)
1 source file
image-cache-purger
  --> cropper
1 file, 35 LOC (20%)
1 source file
image-cache-purger
  --> usage
1 file, 35 LOC (20%)
1 source file
image-cache-purger
  --> metadata-editor
1 file, 35 LOC (20%)
1 source file
image-cache-purger
  --> collections
1 file, 35 LOC (20%)
1 source file
common-lib
  --> thrall
1 file, 4 LOC (<1%)
1 source file
common-lib
  --> media-api
1 file, 4 LOC (<1%)
1 source file
common-lib
  --> auth
1 file, 26 LOC (<1%)
1 source file
About This Analysis

Static code dependencies refer to the relationships between different modules, libraries, or components in a software system that are established at compile-time rather than at runtime. These dependencies are determined by the code itself, meaning that one module directly references another through imports, includes, or explicit references in the code. Examples include:

  • Library and Module Imports
  • Class Dependencies (Inheritance & Composition)
  • Function and Method Calls
  • Dependency Injection Without Runtime Resolution
Learn more...
  • To learn more about good practices on componentization and dependencies, Sokrates recommends the following resources:


2026-10-07 12:10