- detective (noun)
a person, especially a police officer, whose occupation is to investigate and solve crimes.
Don't let your deno project dependencies become a crime scene!
detective
helps you keep track of your deno dependencies and their versions, and important metrics like number of files and total size.
deno install --allow-read --allow-write --allow-net --allow-env --allow-run --unstable https://deno.land/x/detective/detective.ts
First, create a deps.json
file using deno info --json <your_root.ts>
.
deno info --json ./main.ts > deps.json
Then, run detective
with the deps.json
file as an argument.
detective deps.json
The default mode will show you diagnostics of your dependencies.
You can also use --json
to output a JSON version of the diagnostics.
detective --json deps.json
$ deno info --json main.ts > deps.json
$ detective deps.json
>>> Errors
Module loading errors found for following specifiers:
https://esm.sh/*@[email protected]/core/dist/hooks/utilities?alias=react:preact/compat,@types/react:preact/compat,react-dom:preact/compat&pin=v102
{
specifier: "https://esm.sh/*@[email protected]/core/dist/hooks/utilities?alias=react:preact/compat,@types/react:prea...",
error: 'Module not found "https://esm.sh/*@[email protected]/core/dist/hooks/utilities?alias=react:preact/compat...',
parsed: { host: "esm.sh", module: "@dnd-kit", version: "6.0.5", esmVersion: undefined }
}
Module @dnd-kit is depended by:
[
"components/editor/SectionList.tsx",
"components/editor/SectionListItem.tsx",
"@dnd-kit/[email protected]",
"@dnd-kit/[email protected]",
"@dnd-kit/[email protected]",
"@dnd-kit/[email protected]",
"v102/@dnd-kit/[email protected]",
"v102/@dnd-kit/[email protected]"
]
>>> Userland
βββββββββ¬ββββββββββββββββ¬βββββββββββ
β (idx) β label β value β
βββββββββΌββββββββββββββββΌβββββββββββ€
β 0 β "Total size" β "448 kB" β
β 1 β "Total files" β 199 β
βββββββββ΄ββββββββββββββββ΄βββββββββββ
>>> Dependencies
βββββββββ¬ββββββββββββββββ¬ββββββββββββ
β (idx) β label β value β
βββββββββΌββββββββββββββββΌββββββββββββ€
β 0 β "Total size" β "5.01 MB" β
β 1 β "Mean size" β "47.7 kB" β
β 2 β "Median size" β "4.8 kB" β
β 3 β "p90 size" β "92.4 kB" β
β 4 β "Max size" β "1.19 MB" β
β 5 β "Total files" β 1365 β
β 6 β "Max files" β 412 β
β 7 β "p90 files" β 9 β
βββββββββ΄ββββββββββββββββ΄ββββββββββββ
Deps from largest to smallest:
βββββββββ¬βββββββββββββββββββββββββββββββββββ¬ββββββββββββββ¬βββββββββββ¬ββββββββ¬ββββββββββββ
β (idx) β module β bytes β size (%) β files β files (%) β
βββββββββΌβββββββββββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββΌββββββββΌββββββββββββ€
β 0 β "[email protected]" β "1.19 MB" β "23.81%" β 87 β "06.37%" β
β 1 β "v96/[email protected]" β "857.89 kB" β "17.13%" β 1 β "00.07%" β
β 2 β "v102/[email protected]" β "557 kB" β "11.12%" β 412 β "30.18%" β
β 3 β "v102/[email protected]" β "349.18 kB" β "06.97%" β 93 β "06.81%" β
β 4 β "[email protected]" β "306.6 kB" β "06.12%" β 3 β "00.22%" β
β 5 β "[email protected]" β "192.33 kB" β "03.84%" β 4 β "00.29%" β
β 6 β "v102/[email protected]" β "135.21 kB" β "02.70%" β 13 β "00.95%" β
β 7 β "v96/[email protected]" β "126.79 kB" β "02.53%" β 317 β "23.22%" β
β 8 β "v102/@rjsf/[email protected]" β "99.58 kB" β "01.99%" β 2 β "00.15%" β
β 9 β "v102/@dnd-kit/[email protected]" β "93.07 kB" β "01.86%" β 114 β "08.35%" β
β 10 β "v102/@rjsf/[email protected]" β "92.42 kB" β "01.84%" β 2 β "00.15%" β
β 11 β "@octokit/plugin-rest-endpoint-" β "74.13 kB" β "01.48%" β 1 β "00.07%" β
β 12 β "v102/@rjsf/[email protected]" β "68.42 kB" β "01.37%" β 2 β "00.15%" β
β 13 β "v96/[email protected]" β "66.15 kB" β "01.32%" β 4 β "00.29%" β
β 14 β "[email protected]" β "60.36 kB" β "01.20%" β 16 β "01.17%" β
β 15 β "v102/@types/[email protected]" β "58.34 kB" β "01.16%" β 2 β "00.15%" β
β 16 β "v102/@supabase/[email protected]." β "55.89 kB" β "01.12%" β 6 β "00.44%" β
β 17 β "stable/[email protected]" β "47.49 kB" β "00.95%" β 7 β "00.51%" β
β 18 β "v102/[email protected]" β "44.55 kB" β "00.89%" β 4 β "00.29%" β
β 19 β "v102/@supabase/postgrest-js@0." β "30.14 kB" β "00.60%" β 7 β "00.51%" β
β 20 β "v96/[email protected]" β "29.89 kB" β "00.60%" β 4 β "00.29%" β
β 21 β "@types/[email protected]" β "29.17 kB" β "00.58%" β 1 β "00.07%" β
β 22 β "v102/@supabase/[email protected]" β "28.94 kB" β "00.58%" β 9 β "00.66%" β
β 23 β "node.ns.d.ts" β "22.54 kB" β "00.45%" β 1 β "00.07%" β
β 24 β "v102/json-schema-merge-allof@0" β "20.8 kB" β "00.42%" β 2 β "00.15%" β
β 25 β "v102/@supabase/[email protected]." β "19.48 kB" β "00.39%" β 9 β "00.66%" β
β 26 β "v102/@supabase/[email protected]" β "18.89 kB" β "00.38%" β 7 β "00.51%" β
β 27 β "[email protected]" β "17.47 kB" β "00.35%" β 30 β "02.20%" β
β 28 β "v102/@dnd-kit/[email protected]" β "16.63 kB" β "00.33%" β 28 β "02.05%" β
β 29 β "[email protected]" β "16.56 kB" β "00.33%" β 1 β "00.07%" β
β 30 β "[email protected]" β "15.43 kB" β "00.31%" β 1 β "00.07%" β
β 31 β "[email protected]" β "12.85 kB" β "00.26%" β 5 β "00.37%" β
β 32 β "@octokit/plugin-paginate-rest@" β "12.81 kB" β "00.26%" β 1 β "00.07%" β
β 33 β "v102/[email protected]" β "12.67 kB" β "00.25%" β 4 β "00.29%" β
β 34 β "[email protected]" β "12.53 kB" β "00.25%" β 3 β "00.22%" β
β 35 β "[email protected]" β "12.48 kB" β "00.25%" β 6 β "00.44%" β
β 36 β "@octokit/[email protected]" β "9.72 kB" β "00.19%" β 1 β "00.07%" β
β 37 β "[email protected]" β "9.63 kB" β "00.19%" β 2 β "00.15%" β
β 38 β "v102/@dnd-kit/[email protected]" β "9.18 kB" β "00.18%" β 34 β "02.49%" β
β 39 β "v102/[email protected]" β "9.07 kB" β "00.18%" β 1 β "00.07%" β
β 40 β "v102/[email protected]" β "8.71 kB" β "00.17%" β 2 β "00.15%" β
β 41 β "v102/preact-render-to-string@5" β "7.94 kB" β "00.16%" β 2 β "00.15%" β
β 42 β "v102/@builder.io/[email protected]" β "7.8 kB" β "00.16%" β 2 β "00.15%" β
β 43 β "v102/[email protected]" β "7.51 kB" β "00.15%" β 2 β "00.15%" β
β 44 β "[email protected]" β "7.46 kB" β "00.15%" β 3 β "00.22%" β
β 45 β "[email protected]" β "7.27 kB" β "00.15%" β 1 β "00.07%" β
β 46 β "v102/@rjsf/[email protected]." β "6.96 kB" β "00.14%" β 2 β "00.15%" β
β 47 β "[email protected]" β "6.73 kB" β "00.13%" β 4 β "00.29%" β
β 48 β "v102/[email protected]" β "5.48 kB" β "00.11%" β 2 β "00.15%" β
β 49 β "v96/[email protected]" β "5.45 kB" β "00.11%" β 2 β "00.15%" β
β 50 β "@octokit/[email protected]" β "5.17 kB" β "00.10%" β 1 β "00.07%" β
β 51 β "v102/[email protected]" β "5.04 kB" β "00.10%" β 2 β "00.15%" β
β 52 β "[email protected]" β "4.8 kB" β "00.10%" β 1 β "00.07%" β
β 53 β "[email protected]" β "4.57 kB" β "00.09%" β 6 β "00.44%" β
β 54 β "v102/[email protected]" β "4.11 kB" β "00.08%" β 2 β "00.15%" β
β 55 β "v102/[email protected]." β "4.05 kB" β "00.08%" β 2 β "00.15%" β
β 56 β "v102/@preact/[email protected]" β "4.02 kB" β "00.08%" β 2 β "00.15%" β
β 57 β "[email protected]" β "3.83 kB" β "00.08%" β 2 β "00.15%" β
β 58 β "v96/use-sync-external-store@1." β "3.74 kB" β "00.07%" β 2 β "00.15%" β
β 59 β "[email protected]" β "3.54 kB" β "00.07%" β 1 β "00.07%" β
β 60 β "@octokit/[email protected]" β "3.53 kB" β "00.07%" β 1 β "00.07%" β
β 61 β "@octokit/[email protected]" β "3.27 kB" β "00.07%" β 1 β "00.07%" β
β 62 β "v102/@supabase/functions-js@1." β "3.1 kB" β "00.06%" β 3 β "00.22%" β
β 63 β "v102/validate.io-integer-array" β "2.92 kB" β "00.06%" β 2 β "00.15%" β
β 64 β "v100/[email protected]" β "2.89 kB" β "00.06%" β 2 β "00.15%" β
β 65 β "v102/[email protected]" β "2.79 kB" β "00.06%" β 2 β "00.15%" β
β 66 β "v102/[email protected]" β "2.75 kB" β "00.05%" β 1 β "00.07%" β
β 67 β "v102/[email protected]" β "2.39 kB" β "00.05%" β 2 β "00.15%" β
β 68 β "v102/@preact/[email protected]." β "2.32 kB" β "00.05%" β 2 β "00.15%" β
β 69 β "v96/[email protected]" β "1.87 kB" β "00.04%" β 1 β "00.07%" β
β 70 β "@octokit/[email protected]" β "1.86 kB" β "00.04%" β 1 β "00.07%" β
β 71 β "v102/[email protected]" β "1.66 kB" β "00.03%" β 2 β "00.15%" β
β 72 β "v102/[email protected]" β "1.59 kB" β "00.03%" β 2 β "00.15%" β
β 73 β "v102/@dnd-kit/accessibility@3." β "1.56 kB" β "00.03%" β 9 β "00.66%" β
β 74 β "v102/[email protected]." β "1.5 kB" β "00.03%" β 2 β "00.15%" β
β 75 β "[email protected]" β "1.47 kB" β "00.03%" β 8 β "00.59%" β
β 76 β "@octokit/[email protected]" β "1.39 kB" β "00.03%" β 1 β "00.07%" β
β 77 β "v102/[email protected]" β "1.14 kB" β "00.02%" β 1 β "00.07%" β
β 78 β "[email protected]" β "1.1 kB" β "00.02%" β 1 β "00.07%" β
β 79 β "[email protected]" β "897 B" β "00.02%" β 1 β "00.07%" β
β 80 β "@octokit/[email protected]" β "843 B" β "00.02%" β 1 β "00.07%" β
β 81 β "@octokit/[email protected]" β "842 B" β "00.02%" β 1 β "00.07%" β
β 82 β "@octokit/plugin-request-log@v1" β "736 B" β "00.01%" β 1 β "00.07%" β
β 83 β "[email protected]" β "689 B" β "00.01%" β 5 β "00.37%" β
β 84 β "[email protected]" β "667 B" β "00.01%" β 1 β "00.07%" β
β 85 β "[email protected]" β "623 B" β "00.01%" β 1 β "00.07%" β
β 86 β "@rjsf/[email protected]" β "416 B" β "00.01%" β 1 β "00.07%" β
β 87 β "@rjsf/[email protected]" β "346 B" β "00.01%" β 1 β "00.07%" β
β 88 β "[email protected]" β "329 B" β "00.01%" β 1 β "00.07%" β
β 89 β "[email protected]" β "267 B" β "00.01%" β 1 β "00.07%" β
β 90 β "[email protected]" β "255 B" β "00.01%" β 1 β "00.07%" β
β 91 β "@dnd-kit/[email protected]" β "210 B" β "00.00%" β 1 β "00.07%" β
β 92 β "@dnd-kit/[email protected]" β "205 B" β "00.00%" β 1 β "00.07%" β
β 93 β "[email protected]" β "194 B" β "00.00%" β 2 β "00.15%" β
β 94 β "@dnd-kit/[email protected]" β "193 B" β "00.00%" β 1 β "00.07%" β
β 95 β "@dnd-kit/[email protected]" β "190 B" β "00.00%" β 1 β "00.07%" β
β 96 β "@rjsf/[email protected]" β "185 B" β "00.00%" β 1 β "00.07%" β
β 97 β "[email protected]" β "156 B" β "00.00%" β 1 β "00.07%" β
β 98 β "@builder.io/[email protected]" β "140 B" β "00.00%" β 1 β "00.07%" β
β 99 β "@preact/[email protected]" β "134 B" β "00.00%" β 1 β "00.07%" β
β 100 β "@supabase/[email protected]" β "130 B" β "00.00%" β 1 β "00.07%" β
β 101 β "@preact/[email protected]" β "119 B" β "00.00%" β 1 β "00.07%" β
β 102 β "[email protected]" β "98 B" β "00.00%" β 1 β "00.07%" β
β 103 β "[email protected]" β "93 B" β "00.00%" β 1 β "00.07%" β
β 104 β "@dnd-kit/[email protected]" β "73 B" β "00.00%" β 1 β "00.07%" β
βββββββββ΄βββββββββββββββββββββββββββββββββββ΄ββββββββββββββ΄βββββββββββ΄ββββββββ΄ββββββββββββ
>>> Top offenders (>p90) and who depends on them:
[email protected] is depended by [ "v102/@supabase/[email protected]" ]
v96/[email protected] is depended by [ "v96/[email protected]" ]
v102/[email protected] is depended by [
"v102/[email protected]",
"v102/[email protected]",
"v102/[email protected]"
]
v102/[email protected] is depended by [
"[email protected]",
"v102/@rjsf/[email protected]",
"v102/[email protected]",
"v102/[email protected]"
]
[email protected] is depended by [ "[email protected]" ]
[email protected] is depended by [ "[email protected]", "[email protected]" ]
v102/[email protected] is depended by [ "v102/@rjsf/[email protected]", "v102/@rjsf/[email protected]" ]
v96/[email protected] is depended by [ "[email protected]", "v96/[email protected]" ]
v102/@rjsf/[email protected] is depended by [ "v102/@rjsf/[email protected]" ]
v102/@dnd-kit/[email protected] is depended by [ "@dnd-kit/[email protected]" ]
v102/@rjsf/[email protected] is depended by [ "@rjsf/[email protected]" ]
Deps with more than one version and who depends on them:
@rjsf/utils Set { "v102/@rjsf/[email protected]", "v102/@rjsf/[email protected]" }
v102/@rjsf/[email protected] is depended by [ "@rjsf/[email protected]" ]
v102/@rjsf/[email protected] is depended by [ "v102/@rjsf/[email protected]" ]