- 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.tsFirst, create a deps.json file using deno info --json <your_root.ts>.
deno info --json ./main.ts > deps.jsonThen, run detective with the deps.json file as an argument.
detective deps.jsonThe 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/*@dnd-kit@6.0.5/core/dist/hooks/utilities?alias=react:preact/compat,@types/react:preact/compat,react-dom:preact/compat&pin=v102
{
specifier: "https://esm.sh/*@dnd-kit@6.0.5/core/dist/hooks/utilities?alias=react:preact/compat,@types/react:prea...",
error: 'Module not found "https://esm.sh/*@dnd-kit@6.0.5/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/accessibility@3.0.1",
"@dnd-kit/core@6.0.5",
"@dnd-kit/sortable@7.0.1",
"@dnd-kit/utilities@3.2.0",
"v102/@dnd-kit/core@6.0.5",
"v102/@dnd-kit/sortable@7.0.1"
]
>>> 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 β "std@0.170.0" β "1.19 MB" β "23.81%" β 87 β "06.37%" β
β 1 β "v96/csstype@3.1.1" β "857.89 kB" β "17.13%" β 1 β "00.07%" β
β 2 β "v102/lodash@4.17.21" β "557 kB" β "11.12%" β 412 β "30.18%" β
β 3 β "v102/ajv@8.11.2" β "349.18 kB" β "06.97%" β 93 β "06.81%" β
β 4 β "denoflate@1.2.1" β "306.6 kB" β "06.12%" β 3 β "00.22%" β
β 5 β "esbuild@v0.14.51" β "192.33 kB" β "03.84%" β 4 β "00.29%" β
β 6 β "v102/preact@10.11.3" β "135.21 kB" β "02.70%" β 13 β "00.95%" β
β 7 β "v96/lodash-es@4.17.21" β "126.79 kB" β "02.53%" β 317 β "23.22%" β
β 8 β "v102/@rjsf/utils@5.0.0-beta.15" β "99.58 kB" β "01.99%" β 2 β "00.15%" β
β 9 β "v102/@dnd-kit/core@6.0.5" β "93.07 kB" β "01.86%" β 114 β "08.35%" β
β 10 β "v102/@rjsf/utils@5.0.0-beta.13" β "92.42 kB" β "01.84%" β 2 β "00.15%" β
β 11 β "@octokit/plugin-rest-endpoint-" β "74.13 kB" β "01.48%" β 1 β "00.07%" β
β 12 β "v102/@rjsf/core@5.0.0-beta.15" β "68.42 kB" β "01.37%" β 2 β "00.15%" β
β 13 β "v96/twind@0.16.17" β "66.15 kB" β "01.32%" β 4 β "00.29%" β
β 14 β "fresh@1.1.2" β "60.36 kB" β "01.20%" β 16 β "01.17%" β
β 15 β "v102/@types/json-schema@7.0.11" β "58.34 kB" β "01.16%" β 2 β "00.15%" β
β 16 β "v102/@supabase/gotrue-js@1.24." β "55.89 kB" β "01.12%" β 6 β "00.44%" β
β 17 β "stable/preact@10.11.3" β "47.49 kB" β "00.95%" β 7 β "00.51%" β
β 18 β "v102/uri-js@4.4.1" β "44.55 kB" β "00.89%" β 4 β "00.29%" β
β 19 β "v102/@supabase/postgrest-js@0." β "30.14 kB" β "00.60%" β 7 β "00.51%" β
β 20 β "v96/swr@2.0.0" β "29.89 kB" β "00.60%" β 4 β "00.29%" β
β 21 β "@types/json-schema@7.0.11" β "29.17 kB" β "00.58%" β 1 β "00.07%" β
β 22 β "v102/@supabase/realtime-js@1.7" β "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/storage-js@1.7." β "19.48 kB" β "00.39%" β 9 β "00.66%" β
β 26 β "v102/@supabase/supabase-js@1.3" β "18.89 kB" β "00.38%" β 7 β "00.51%" β
β 27 β "tabler_icons_tsx@0.0.2" β "17.47 kB" β "00.35%" β 30 β "02.20%" β
β 28 β "v102/@dnd-kit/sortable@7.0.1" β "16.63 kB" β "00.33%" β 28 β "02.05%" β
β 29 β "exponential-backoff@v3.1.0-nEI" β "16.56 kB" β "00.33%" β 1 β "00.07%" β
β 30 β "fuse@v6.4.1" β "15.43 kB" β "00.31%" β 1 β "00.07%" β
β 31 β "djwt@v2.8" β "12.85 kB" β "00.26%" β 5 β "00.37%" β
β 32 β "@octokit/plugin-paginate-rest@" β "12.81 kB" β "00.26%" β 1 β "00.07%" β
β 33 β "v102/ajv-formats@2.1.1" β "12.67 kB" β "00.25%" β 4 β "00.29%" β
β 34 β "marky@v1.1.6" β "12.53 kB" β "00.25%" β 3 β "00.22%" β
β 35 β "esbuild_deno_loader@0.5.2" β "12.48 kB" β "00.25%" β 6 β "00.44%" β
β 36 β "@octokit/endpoint@v7.0.0-BBk8I" β "9.72 kB" β "00.19%" β 1 β "00.07%" β
β 37 β "importmap@0.2.1" β "9.63 kB" β "00.19%" β 2 β "00.15%" β
β 38 β "v102/@dnd-kit/utilities@3.2.0" β "9.18 kB" β "00.18%" β 34 β "02.49%" β
β 39 β "v102/cross-fetch@3.1.5" β "9.07 kB" β "00.18%" β 1 β "00.07%" β
β 40 β "v102/json-schema-compare@0.2.2" β "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/partytown@0.7" β "7.8 kB" β "00.16%" β 2 β "00.15%" β
β 43 β "v102/react-is@18.2.0" β "7.51 kB" β "00.15%" β 2 β "00.15%" β
β 44 β "dishooks@v1.1.0" β "7.46 kB" β "00.15%" β 3 β "00.22%" β
β 45 β "rutt@0.0.13" β "7.27 kB" β "00.15%" β 1 β "00.07%" β
β 46 β "v102/@rjsf/validator-ajv8@5.0." β "6.96 kB" β "00.14%" β 2 β "00.15%" β
β 47 β "inspect_vscode@0.2.0" β "6.73 kB" β "00.13%" β 4 β "00.29%" β
β 48 β "v102/compute-gcd@1.2.1" β "5.48 kB" β "00.11%" β 2 β "00.15%" β
β 49 β "v96/tabbable@5.3.3" β "5.45 kB" β "00.11%" β 2 β "00.15%" β
β 50 β "@octokit/request@v6.0.1-rQnUxH" β "5.17 kB" β "00.10%" β 1 β "00.07%" β
β 51 β "v102/compute-lcm@1.1.2" β "5.04 kB" β "00.10%" β 2 β "00.15%" β
β 52 β "universal-user-agent@v6.0.0-fU" β "4.8 kB" β "00.10%" β 1 β "00.07%" β
β 53 β "partytown@0.1.3" β "4.57 kB" β "00.09%" β 6 β "00.44%" β
β 54 β "v102/jsonpointer@5.0.1" β "4.11 kB" β "00.08%" β 2 β "00.15%" β
β 55 β "v102/json-schema-traverse@1.0." β "4.05 kB" β "00.08%" β 2 β "00.15%" β
β 56 β "v102/@preact/signals@1.0.3" β "4.02 kB" β "00.08%" β 2 β "00.15%" β
β 57 β "std@0.161.0" β "3.83 kB" β "00.08%" β 2 β "00.15%" β
β 58 β "v96/use-sync-external-store@1." β "3.74 kB" β "00.07%" β 2 β "00.15%" β
β 59 β "before-after-hook@v2.2.2-pi5OV" β "3.54 kB" β "00.07%" β 1 β "00.07%" β
β 60 β "@octokit/core@v4.0.4-hwgV7PzMc" β "3.53 kB" β "00.07%" β 1 β "00.07%" β
β 61 β "@octokit/graphql@v5.0.0-og38x9" β "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/nanoid@4.0.0" β "2.89 kB" β "00.06%" β 2 β "00.15%" β
β 65 β "v102/fast-deep-equal@3.1.3" β "2.79 kB" β "00.06%" β 2 β "00.15%" β
β 66 β "v102/websocket@1.0.34" β "2.75 kB" β "00.05%" β 1 β "00.07%" β
β 67 β "v102/validate.io-integer@1.0.5" β "2.39 kB" β "00.05%" β 2 β "00.15%" β
β 68 β "v102/@preact/signals-core@1.0." β "2.32 kB" β "00.05%" β 2 β "00.15%" β
β 69 β "v96/style-vendorizer@2.2.3" β "1.87 kB" β "00.04%" β 1 β "00.07%" β
β 70 β "@octokit/request-error@v2.1.0-" β "1.86 kB" β "00.04%" β 1 β "00.07%" β
β 71 β "v102/validate.io-number@1.0.3" β "1.66 kB" β "00.03%" β 2 β "00.15%" β
β 72 β "v102/validate.io-array@1.0.6" β "1.59 kB" β "00.03%" β 2 β "00.15%" β
β 73 β "v102/@dnd-kit/accessibility@3." β "1.56 kB" β "00.03%" β 9 β "00.66%" β
β 74 β "v102/validate.io-function@1.0." β "1.5 kB" β "00.03%" β 2 β "00.15%" β
β 75 β "lodash-es@4.17.21" β "1.47 kB" β "00.03%" β 8 β "00.59%" β
β 76 β "@octokit/auth-token@v3.0.0-WuY" β "1.39 kB" β "00.03%" β 1 β "00.07%" β
β 77 β "v102/es5-ext@0.10.62" β "1.14 kB" β "00.02%" β 1 β "00.07%" β
β 78 β "once@v1.4.0-dZva3nt1fLBY6vpXF5" β "1.1 kB" β "00.02%" β 1 β "00.07%" β
β 79 β "exponential-backoff@3.1.0" β "897 B" β "00.02%" β 1 β "00.07%" β
β 80 β "@octokit/rest@v19.0.4-xPNRCbtf" β "843 B" β "00.02%" β 1 β "00.07%" β
β 81 β "@octokit/rest@19.0.4" β "842 B" β "00.02%" β 1 β "00.07%" β
β 82 β "@octokit/plugin-request-log@v1" β "736 B" β "00.01%" β 1 β "00.07%" β
β 83 β "preact@10.11.3" β "689 B" β "00.01%" β 5 β "00.37%" β
β 84 β "wrappy@v1.0.2-e8nLh7Qms0NRhbAb" β "667 B" β "00.01%" β 1 β "00.07%" β
β 85 β "is-plain-object@v5.0.0-8mrVMp9" β "623 B" β "00.01%" β 1 β "00.07%" β
β 86 β "@rjsf/validator-ajv8@5.0.0-bet" β "416 B" β "00.01%" β 1 β "00.07%" β
β 87 β "@rjsf/core@5.0.0-beta.15" β "346 B" β "00.01%" β 1 β "00.07%" β
β 88 β "swr@2.0.0" β "329 B" β "00.01%" β 1 β "00.07%" β
β 89 β "preact-render-to-string@5.2.4" β "267 B" β "00.01%" β 1 β "00.07%" β
β 90 β "deprecation@v2.3.1-uvOjAQiALAZ" β "255 B" β "00.01%" β 1 β "00.07%" β
β 91 β "@dnd-kit/core@6.0.5" β "210 B" β "00.00%" β 1 β "00.07%" β
β 92 β "@dnd-kit/accessibility@3.0.1" β "205 B" β "00.00%" β 1 β "00.07%" β
β 93 β "twind@0.16.17" β "194 B" β "00.00%" β 2 β "00.15%" β
β 94 β "@dnd-kit/utilities@3.2.0" β "193 B" β "00.00%" β 1 β "00.07%" β
β 95 β "@dnd-kit/sortable@7.0.1" β "190 B" β "00.00%" β 1 β "00.07%" β
β 96 β "@rjsf/utils@5.0.0-beta.13" β "185 B" β "00.00%" β 1 β "00.07%" β
β 97 β "ajv@8.11.2" β "156 B" β "00.00%" β 1 β "00.07%" β
β 98 β "@builder.io/partytown@0.7.1" β "140 B" β "00.00%" β 1 β "00.07%" β
β 99 β "@preact/signals-core@1.0.1" β "134 B" β "00.00%" β 1 β "00.07%" β
β 100 β "@supabase/supabase-js@1.35.4" β "130 B" β "00.00%" β 1 β "00.07%" β
β 101 β "@preact/signals@1.0.3" β "119 B" β "00.00%" β 1 β "00.07%" β
β 102 β "tabbable@5.3.3" β "98 B" β "00.00%" β 1 β "00.07%" β
β 103 β "nanoid@4.0.0" β "93 B" β "00.00%" β 1 β "00.07%" β
β 104 β "@dnd-kit/utilities@3.2.1" β "73 B" β "00.00%" β 1 β "00.07%" β
βββββββββ΄βββββββββββββββββββββββββββββββββββ΄ββββββββββββββ΄βββββββββββ΄ββββββββ΄ββββββββββββ
>>> Top offenders (>p90) and who depends on them:
std@0.170.0 is depended by [ "v102/@supabase/gotrue-js@1.24.0" ]
v96/csstype@3.1.1 is depended by [ "v96/twind@0.16.17" ]
v102/lodash@4.17.21 is depended by [
"v102/json-schema-compare@0.2.2",
"v102/json-schema-merge-allof@0.8.1",
"v102/lodash@4.17.21"
]
v102/ajv@8.11.2 is depended by [
"ajv@8.11.2",
"v102/@rjsf/validator-ajv8@5.0.0-beta.13",
"v102/ajv-formats@2.1.1",
"v102/ajv@8.11.2"
]
denoflate@1.2.1 is depended by [ "esbuild@v0.14.51" ]
esbuild@v0.14.51 is depended by [ "esbuild_deno_loader@0.5.2", "fresh@1.1.2" ]
v102/preact@10.11.3 is depended by [ "v102/@rjsf/utils@5.0.0-beta.13", "v102/@rjsf/utils@5.0.0-beta.15" ]
v96/lodash-es@4.17.21 is depended by [ "lodash-es@4.17.21", "v96/lodash-es@4.17.21" ]
v102/@rjsf/utils@5.0.0-beta.15 is depended by [ "v102/@rjsf/validator-ajv8@5.0.0-beta.13" ]
v102/@dnd-kit/core@6.0.5 is depended by [ "@dnd-kit/core@6.0.5" ]
v102/@rjsf/utils@5.0.0-beta.13 is depended by [ "@rjsf/utils@5.0.0-beta.13" ]
Deps with more than one version and who depends on them:
@rjsf/utils Set { "v102/@rjsf/utils@5.0.0-beta.13", "v102/@rjsf/utils@5.0.0-beta.15" }
v102/@rjsf/utils@5.0.0-beta.13 is depended by [ "@rjsf/utils@5.0.0-beta.13" ]
v102/@rjsf/utils@5.0.0-beta.15 is depended by [ "v102/@rjsf/validator-ajv8@5.0.0-beta.13" ]