Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/deco-cx/detective
I'm snooping in your deps! 🕵️♀️
https://github.com/deco-cx/detective
Last synced: 2 months ago
JSON representation
I'm snooping in your deps! 🕵️♀️
- Host: GitHub
- URL: https://github.com/deco-cx/detective
- Owner: deco-cx
- Created: 2022-12-30T20:57:38.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-05T17:55:44.000Z (11 months ago)
- Last Synced: 2024-10-02T00:22:16.104Z (4 months ago)
- Language: TypeScript
- Size: 17.6 KB
- Stars: 7
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- jimsghstars - deco-cx/detective - I'm snooping in your deps! 🕵️♀️ (TypeScript)
README
# Deno Deps Detective
1. 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.
## Installation
```bash
deno install --allow-read --allow-write --allow-net --allow-env --allow-run --unstable https://deno.land/x/detective/detective.ts
```## Usage
First, create a `deps.json` file using `deno info --json `.
```bash
deno info --json ./main.ts > deps.json
```Then, run `detective` with the `deps.json` file as an argument.
```bash
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.
```bash
detective --json deps.json
```## Example
```bash
$ deno info --json main.ts > deps.json
$ detective deps.json
>>> ErrorsModule 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]" ]
```