devmap 0.3.3__tar.gz → 0.3.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- devmap-0.3.5/PKG-INFO +110 -0
- devmap-0.3.5/README.md +92 -0
- {devmap-0.3.3 → devmap-0.3.5}/devmap/_devmap.mjs +10 -4
- devmap-0.3.5/devmap.egg-info/PKG-INFO +110 -0
- {devmap-0.3.3 → devmap-0.3.5}/pyproject.toml +1 -1
- devmap-0.3.3/PKG-INFO +0 -38
- devmap-0.3.3/README.md +0 -20
- devmap-0.3.3/devmap.egg-info/PKG-INFO +0 -38
- {devmap-0.3.3 → devmap-0.3.5}/devmap/__init__.py +0 -0
- {devmap-0.3.3 → devmap-0.3.5}/devmap.egg-info/SOURCES.txt +0 -0
- {devmap-0.3.3 → devmap-0.3.5}/devmap.egg-info/dependency_links.txt +0 -0
- {devmap-0.3.3 → devmap-0.3.5}/devmap.egg-info/entry_points.txt +0 -0
- {devmap-0.3.3 → devmap-0.3.5}/devmap.egg-info/top_level.txt +0 -0
- {devmap-0.3.3 → devmap-0.3.5}/setup.cfg +0 -0
devmap-0.3.5/PKG-INFO
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devmap
|
|
3
|
+
Version: 0.3.5
|
|
4
|
+
Summary: Map your machine's dev environment and surface issues (PATH conflicts, ghost binaries, multi-version collisions). fastfetch-for-dev-tools. This PyPI package ships the real devmap CLI (a bundled JavaScript app launched via Node.js or Bun), so `pip install devmap && devmap` works standalone.
|
|
5
|
+
Author: devmap contributors
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/StevenLOL/devmap
|
|
8
|
+
Project-URL: Repository, https://github.com/StevenLOL/devmap
|
|
9
|
+
Keywords: devmap,devtools,environment,scanner,fastfetch,diagnostics,dev-environment,path-conflict,ghost-binary
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# devmap
|
|
20
|
+
|
|
21
|
+
> A source-of-truth scanner and governance layer for your machine's development environment. One command maps the whole dev setup, draws the PATH-conflict graph, and surfaces ghost binaries and multi-version collisions.
|
|
22
|
+
|
|
23
|
+
`devmap` is the developer-focused spiritual successor to `fastfetch`: instead of only printing system specs, it scans the *development* surface of your machine — runtimes, package managers, IDEs, per-interpreter pip packages, conda/WSL/Docker environments, Visual Studio dev shells, and project-local virtual environments — and produces a single machine-readable manifest plus an actionable issue list.
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
This PyPI package ships the **real devmap CLI**. It bundles the compiled devmap app and launches it via **Node.js** (or **Bun**, if present), so it works standalone — no need to install from npm or build from source:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install devmap
|
|
31
|
+
devmap scan
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Requirements at runtime: a Node.js (or Bun) runtime available on `PATH`. Python itself is only used as the installer/launcher wrapper.
|
|
35
|
+
|
|
36
|
+
## Features
|
|
37
|
+
|
|
38
|
+
- **One-command full scan** of the dev environment (runtimes, package managers, IDEs, and the environment layers below).
|
|
39
|
+
- **PATH conflict graph**: detects multi-version tools, shadowed binaries, and ghost/broken symlinks (e.g. Windows App Execution Aliases that look broken but aren't).
|
|
40
|
+
- **Off-PATH awareness**: reports installed-but-not-on-PATH tools, while correctly treating version-manager environments (conda envs, nvm versions) as by-design off-PATH.
|
|
41
|
+
- **Environment layers**: vcpkg packages, per-python pip packages (incl. upgradable), apt packages (Linux), conda environments, Docker (binary + daemon + images/containers), WSL distros, Visual Studio dev shells, and project-local environments (`.venv`, `node_modules`).
|
|
42
|
+
- **Dependency auditing (optional)**: with `--audit-deps`, devmap detects and invokes installed SCA tools (osv-scanner, govulncheck, pip-audit, Trivy), parses their JSON, and merges results into a unified view. devmap is a *scanner/orchestrator*, not a CVE database — for authoritative vulnerability data, use those tools directly.
|
|
43
|
+
- **Three sub-commands**: `scan` (the fact source), `query` (ask the manifest), `devdiff` (compare two manifests — environment drift / cross-machine consistency).
|
|
44
|
+
- **Zero Python dependencies.** The bundled app is pure TypeScript compiled to JavaScript.
|
|
45
|
+
|
|
46
|
+
## Usage
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
devmap scan # pretty-print to terminal, write ~/.devmap/devmap.json
|
|
50
|
+
devmap scan --json # machine-readable JSON (devmap.json schema) to stdout
|
|
51
|
+
devmap scan --report # full markdown report
|
|
52
|
+
devmap scan --scan-root C:\src # also scan project-local envs under a root (comma-separated for many)
|
|
53
|
+
devmap scan --wsl-deep # also wake stopped WSL distros and probe their tools (slower)
|
|
54
|
+
devmap scan --outdated # hit PyPI to list upgradable pip/conda packages (slower, needs network)
|
|
55
|
+
devmap scan --ci # exit code 1 if any error-severity issue is found
|
|
56
|
+
devmap scan --audit-deps # invoke installed SCA tools and merge CVE findings
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Key `scan` flags:
|
|
60
|
+
|
|
61
|
+
| Flag | Description |
|
|
62
|
+
|------|-------------|
|
|
63
|
+
| `--json` | Emit machine-readable JSON (the `devmap.json` schema) to stdout. |
|
|
64
|
+
| `--report` | Emit a full markdown report. |
|
|
65
|
+
| `--no-manifest` | Do not persist the manifest to disk. |
|
|
66
|
+
| `--manifest <path>` | Read/write the manifest at a custom path (default `~/.devmap/devmap.json`). |
|
|
67
|
+
| `--disable <r1,r2>` | Disable check rules by ID prefix (e.g. `path.duplicate`, `pip.outdated`). |
|
|
68
|
+
| `--scan-root <dir>` | Root(s) to scan for project-local environments (comma-separated). Default: cwd. |
|
|
69
|
+
| `--outdated` | Network check for upgradable pip/conda packages (off by default). |
|
|
70
|
+
| `--wsl-deep` | Probe inside stopped WSL distros (off by default to avoid waking them). |
|
|
71
|
+
| `--audit-deps` | Invoke installed SCA tools and merge CVE findings into the report. |
|
|
72
|
+
| `--ci` | Exit non-zero on any error-severity issue. |
|
|
73
|
+
| `--quiet` | Suppress the live scan progress feedback (for scripts/CI). |
|
|
74
|
+
| `--bom` | Prefix output with a UTF-8 BOM so Notepad-like viewers render it correctly (stdout redirect/pipe only). |
|
|
75
|
+
|
|
76
|
+
### `query` — ask the manifest
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
devmap query # everything
|
|
80
|
+
devmap query node # tools whose id contains "node"
|
|
81
|
+
devmap query runtime.node # dot-form category.tool selector (runtime / pkg / ide)
|
|
82
|
+
devmap query --issues # only issues
|
|
83
|
+
devmap query --conflicts # only conflicts (multiVersion / path / ghost)
|
|
84
|
+
devmap query --off-path # only off-PATH installs
|
|
85
|
+
devmap query --kind runtime # filter by category
|
|
86
|
+
devmap query --where conda # filter by install path substring
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### `devdiff` — compare two manifests
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
devmap devdiff # stored manifest vs current live scan
|
|
93
|
+
devmap devdiff <file> # stored/before vs <file>
|
|
94
|
+
devmap devdiff <a> <b> # compare two manifest files
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Reports added/removed installs, version changes, and issues added/resolved.
|
|
98
|
+
|
|
99
|
+
## Output
|
|
100
|
+
|
|
101
|
+
- The default `scan` writes the manifest to **`~/.devmap/devmap.json`** (pure UTF-8, no BOM — directly parseable by Bun/Node/Python/jq).
|
|
102
|
+
- Use `query` / `devdiff` against a stored manifest without re-scanning.
|
|
103
|
+
|
|
104
|
+
## Repository
|
|
105
|
+
|
|
106
|
+
https://github.com/StevenLOL/devmap
|
|
107
|
+
|
|
108
|
+
## License
|
|
109
|
+
|
|
110
|
+
[MIT](https://github.com/StevenLOL/devmap/blob/main/LICENSE)
|
devmap-0.3.5/README.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# devmap
|
|
2
|
+
|
|
3
|
+
> A source-of-truth scanner and governance layer for your machine's development environment. One command maps the whole dev setup, draws the PATH-conflict graph, and surfaces ghost binaries and multi-version collisions.
|
|
4
|
+
|
|
5
|
+
`devmap` is the developer-focused spiritual successor to `fastfetch`: instead of only printing system specs, it scans the *development* surface of your machine — runtimes, package managers, IDEs, per-interpreter pip packages, conda/WSL/Docker environments, Visual Studio dev shells, and project-local virtual environments — and produces a single machine-readable manifest plus an actionable issue list.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
This PyPI package ships the **real devmap CLI**. It bundles the compiled devmap app and launches it via **Node.js** (or **Bun**, if present), so it works standalone — no need to install from npm or build from source:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install devmap
|
|
13
|
+
devmap scan
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Requirements at runtime: a Node.js (or Bun) runtime available on `PATH`. Python itself is only used as the installer/launcher wrapper.
|
|
17
|
+
|
|
18
|
+
## Features
|
|
19
|
+
|
|
20
|
+
- **One-command full scan** of the dev environment (runtimes, package managers, IDEs, and the environment layers below).
|
|
21
|
+
- **PATH conflict graph**: detects multi-version tools, shadowed binaries, and ghost/broken symlinks (e.g. Windows App Execution Aliases that look broken but aren't).
|
|
22
|
+
- **Off-PATH awareness**: reports installed-but-not-on-PATH tools, while correctly treating version-manager environments (conda envs, nvm versions) as by-design off-PATH.
|
|
23
|
+
- **Environment layers**: vcpkg packages, per-python pip packages (incl. upgradable), apt packages (Linux), conda environments, Docker (binary + daemon + images/containers), WSL distros, Visual Studio dev shells, and project-local environments (`.venv`, `node_modules`).
|
|
24
|
+
- **Dependency auditing (optional)**: with `--audit-deps`, devmap detects and invokes installed SCA tools (osv-scanner, govulncheck, pip-audit, Trivy), parses their JSON, and merges results into a unified view. devmap is a *scanner/orchestrator*, not a CVE database — for authoritative vulnerability data, use those tools directly.
|
|
25
|
+
- **Three sub-commands**: `scan` (the fact source), `query` (ask the manifest), `devdiff` (compare two manifests — environment drift / cross-machine consistency).
|
|
26
|
+
- **Zero Python dependencies.** The bundled app is pure TypeScript compiled to JavaScript.
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
devmap scan # pretty-print to terminal, write ~/.devmap/devmap.json
|
|
32
|
+
devmap scan --json # machine-readable JSON (devmap.json schema) to stdout
|
|
33
|
+
devmap scan --report # full markdown report
|
|
34
|
+
devmap scan --scan-root C:\src # also scan project-local envs under a root (comma-separated for many)
|
|
35
|
+
devmap scan --wsl-deep # also wake stopped WSL distros and probe their tools (slower)
|
|
36
|
+
devmap scan --outdated # hit PyPI to list upgradable pip/conda packages (slower, needs network)
|
|
37
|
+
devmap scan --ci # exit code 1 if any error-severity issue is found
|
|
38
|
+
devmap scan --audit-deps # invoke installed SCA tools and merge CVE findings
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Key `scan` flags:
|
|
42
|
+
|
|
43
|
+
| Flag | Description |
|
|
44
|
+
|------|-------------|
|
|
45
|
+
| `--json` | Emit machine-readable JSON (the `devmap.json` schema) to stdout. |
|
|
46
|
+
| `--report` | Emit a full markdown report. |
|
|
47
|
+
| `--no-manifest` | Do not persist the manifest to disk. |
|
|
48
|
+
| `--manifest <path>` | Read/write the manifest at a custom path (default `~/.devmap/devmap.json`). |
|
|
49
|
+
| `--disable <r1,r2>` | Disable check rules by ID prefix (e.g. `path.duplicate`, `pip.outdated`). |
|
|
50
|
+
| `--scan-root <dir>` | Root(s) to scan for project-local environments (comma-separated). Default: cwd. |
|
|
51
|
+
| `--outdated` | Network check for upgradable pip/conda packages (off by default). |
|
|
52
|
+
| `--wsl-deep` | Probe inside stopped WSL distros (off by default to avoid waking them). |
|
|
53
|
+
| `--audit-deps` | Invoke installed SCA tools and merge CVE findings into the report. |
|
|
54
|
+
| `--ci` | Exit non-zero on any error-severity issue. |
|
|
55
|
+
| `--quiet` | Suppress the live scan progress feedback (for scripts/CI). |
|
|
56
|
+
| `--bom` | Prefix output with a UTF-8 BOM so Notepad-like viewers render it correctly (stdout redirect/pipe only). |
|
|
57
|
+
|
|
58
|
+
### `query` — ask the manifest
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
devmap query # everything
|
|
62
|
+
devmap query node # tools whose id contains "node"
|
|
63
|
+
devmap query runtime.node # dot-form category.tool selector (runtime / pkg / ide)
|
|
64
|
+
devmap query --issues # only issues
|
|
65
|
+
devmap query --conflicts # only conflicts (multiVersion / path / ghost)
|
|
66
|
+
devmap query --off-path # only off-PATH installs
|
|
67
|
+
devmap query --kind runtime # filter by category
|
|
68
|
+
devmap query --where conda # filter by install path substring
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### `devdiff` — compare two manifests
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
devmap devdiff # stored manifest vs current live scan
|
|
75
|
+
devmap devdiff <file> # stored/before vs <file>
|
|
76
|
+
devmap devdiff <a> <b> # compare two manifest files
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Reports added/removed installs, version changes, and issues added/resolved.
|
|
80
|
+
|
|
81
|
+
## Output
|
|
82
|
+
|
|
83
|
+
- The default `scan` writes the manifest to **`~/.devmap/devmap.json`** (pure UTF-8, no BOM — directly parseable by Bun/Node/Python/jq).
|
|
84
|
+
- Use `query` / `devdiff` against a stored manifest without re-scanning.
|
|
85
|
+
|
|
86
|
+
## Repository
|
|
87
|
+
|
|
88
|
+
https://github.com/StevenLOL/devmap
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
[MIT](https://github.com/StevenLOL/devmap/blob/main/LICENSE)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// @bun
|
|
3
3
|
|
|
4
4
|
// src/version.ts
|
|
5
|
-
var VERSION = "0.3.
|
|
5
|
+
var VERSION = "0.3.5";
|
|
6
6
|
|
|
7
7
|
// src/install.ts
|
|
8
8
|
function isIsolated(i) {
|
|
@@ -1215,6 +1215,12 @@ var CANDIDATES = [
|
|
|
1215
1215
|
"C:\\tools\\vcpkg\\vcpkg.exe",
|
|
1216
1216
|
"C:\\vcpkg\\vcpkg"
|
|
1217
1217
|
];
|
|
1218
|
+
function parseVcpkgVersion(out) {
|
|
1219
|
+
if (!out)
|
|
1220
|
+
return null;
|
|
1221
|
+
const m = out.match(/version\s+(\d{4}-\d{2}-\d{2}(?:-[0-9a-f]+)?)/i);
|
|
1222
|
+
return m ? m[1] : null;
|
|
1223
|
+
}
|
|
1218
1224
|
async function findVcpkg() {
|
|
1219
1225
|
const cands = [];
|
|
1220
1226
|
const seen = new Set;
|
|
@@ -1235,7 +1241,7 @@ async function findVcpkg() {
|
|
|
1235
1241
|
}
|
|
1236
1242
|
for (const p of whichInDirs("vcpkg", pathDirs()))
|
|
1237
1243
|
add(p, true);
|
|
1238
|
-
const versions = await pool(cands, 8, (c) =>
|
|
1244
|
+
const versions = await pool(cands, 8, (c) => runBinAsync(c.path, ["version"], 9000).then(parseVcpkgVersion));
|
|
1239
1245
|
return cands.map((c, i) => ({ path: c.path, onPath: c.onPath, version: versions[i] }));
|
|
1240
1246
|
}
|
|
1241
1247
|
function parseList(out) {
|
|
@@ -2063,7 +2069,7 @@ function renderEnvironments(env) {
|
|
|
2063
2069
|
const rule = " " + "─".repeat(40);
|
|
2064
2070
|
if (env.vcpkg?.installed) {
|
|
2065
2071
|
console.log(rule);
|
|
2066
|
-
console.log(` \x1B[1mvcpkg\x1B[0m ${plur(env.vcpkg.packages.length, "package")} (\x1B[33m${plur(env.vcpkg.installs.length, "
|
|
2072
|
+
console.log(` \x1B[1mvcpkg\x1B[0m ${plur(env.vcpkg.packages.length, "package")} (\x1B[33m${plur(env.vcpkg.installs.length, "vcpkg copy", "vcpkg copies")}\x1B[0m)`);
|
|
2067
2073
|
for (const p of env.vcpkg.packages.slice(0, 6))
|
|
2068
2074
|
console.log(` ${p.name}@${p.version} \x1B[2m${p.triplet}\x1B[0m`);
|
|
2069
2075
|
}
|
|
@@ -2143,7 +2149,7 @@ function renderMarkdownLite(m) {
|
|
|
2143
2149
|
const env = m.environments || {};
|
|
2144
2150
|
const envLines = [];
|
|
2145
2151
|
if (env.vcpkg?.installed)
|
|
2146
|
-
envLines.push(`- vcpkg: ${plur(env.vcpkg.packages.length, "package")} / ${plur(env.vcpkg.installs.length, "
|
|
2152
|
+
envLines.push(`- vcpkg: ${plur(env.vcpkg.packages.length, "package")} / ${plur(env.vcpkg.installs.length, "vcpkg copy", "vcpkg copies")}`);
|
|
2147
2153
|
if (env.pip?.perInterpreter?.length)
|
|
2148
2154
|
envLines.push(`- pip: ${plur(env.pip.perInterpreter.length, "interpreter")} / ${plur(env.pip.perInterpreter.reduce((a, p) => a + p.packages.length, 0), "package")}`);
|
|
2149
2155
|
if (env.apt?.available)
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devmap
|
|
3
|
+
Version: 0.3.5
|
|
4
|
+
Summary: Map your machine's dev environment and surface issues (PATH conflicts, ghost binaries, multi-version collisions). fastfetch-for-dev-tools. This PyPI package ships the real devmap CLI (a bundled JavaScript app launched via Node.js or Bun), so `pip install devmap && devmap` works standalone.
|
|
5
|
+
Author: devmap contributors
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/StevenLOL/devmap
|
|
8
|
+
Project-URL: Repository, https://github.com/StevenLOL/devmap
|
|
9
|
+
Keywords: devmap,devtools,environment,scanner,fastfetch,diagnostics,dev-environment,path-conflict,ghost-binary
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# devmap
|
|
20
|
+
|
|
21
|
+
> A source-of-truth scanner and governance layer for your machine's development environment. One command maps the whole dev setup, draws the PATH-conflict graph, and surfaces ghost binaries and multi-version collisions.
|
|
22
|
+
|
|
23
|
+
`devmap` is the developer-focused spiritual successor to `fastfetch`: instead of only printing system specs, it scans the *development* surface of your machine — runtimes, package managers, IDEs, per-interpreter pip packages, conda/WSL/Docker environments, Visual Studio dev shells, and project-local virtual environments — and produces a single machine-readable manifest plus an actionable issue list.
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
This PyPI package ships the **real devmap CLI**. It bundles the compiled devmap app and launches it via **Node.js** (or **Bun**, if present), so it works standalone — no need to install from npm or build from source:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install devmap
|
|
31
|
+
devmap scan
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Requirements at runtime: a Node.js (or Bun) runtime available on `PATH`. Python itself is only used as the installer/launcher wrapper.
|
|
35
|
+
|
|
36
|
+
## Features
|
|
37
|
+
|
|
38
|
+
- **One-command full scan** of the dev environment (runtimes, package managers, IDEs, and the environment layers below).
|
|
39
|
+
- **PATH conflict graph**: detects multi-version tools, shadowed binaries, and ghost/broken symlinks (e.g. Windows App Execution Aliases that look broken but aren't).
|
|
40
|
+
- **Off-PATH awareness**: reports installed-but-not-on-PATH tools, while correctly treating version-manager environments (conda envs, nvm versions) as by-design off-PATH.
|
|
41
|
+
- **Environment layers**: vcpkg packages, per-python pip packages (incl. upgradable), apt packages (Linux), conda environments, Docker (binary + daemon + images/containers), WSL distros, Visual Studio dev shells, and project-local environments (`.venv`, `node_modules`).
|
|
42
|
+
- **Dependency auditing (optional)**: with `--audit-deps`, devmap detects and invokes installed SCA tools (osv-scanner, govulncheck, pip-audit, Trivy), parses their JSON, and merges results into a unified view. devmap is a *scanner/orchestrator*, not a CVE database — for authoritative vulnerability data, use those tools directly.
|
|
43
|
+
- **Three sub-commands**: `scan` (the fact source), `query` (ask the manifest), `devdiff` (compare two manifests — environment drift / cross-machine consistency).
|
|
44
|
+
- **Zero Python dependencies.** The bundled app is pure TypeScript compiled to JavaScript.
|
|
45
|
+
|
|
46
|
+
## Usage
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
devmap scan # pretty-print to terminal, write ~/.devmap/devmap.json
|
|
50
|
+
devmap scan --json # machine-readable JSON (devmap.json schema) to stdout
|
|
51
|
+
devmap scan --report # full markdown report
|
|
52
|
+
devmap scan --scan-root C:\src # also scan project-local envs under a root (comma-separated for many)
|
|
53
|
+
devmap scan --wsl-deep # also wake stopped WSL distros and probe their tools (slower)
|
|
54
|
+
devmap scan --outdated # hit PyPI to list upgradable pip/conda packages (slower, needs network)
|
|
55
|
+
devmap scan --ci # exit code 1 if any error-severity issue is found
|
|
56
|
+
devmap scan --audit-deps # invoke installed SCA tools and merge CVE findings
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Key `scan` flags:
|
|
60
|
+
|
|
61
|
+
| Flag | Description |
|
|
62
|
+
|------|-------------|
|
|
63
|
+
| `--json` | Emit machine-readable JSON (the `devmap.json` schema) to stdout. |
|
|
64
|
+
| `--report` | Emit a full markdown report. |
|
|
65
|
+
| `--no-manifest` | Do not persist the manifest to disk. |
|
|
66
|
+
| `--manifest <path>` | Read/write the manifest at a custom path (default `~/.devmap/devmap.json`). |
|
|
67
|
+
| `--disable <r1,r2>` | Disable check rules by ID prefix (e.g. `path.duplicate`, `pip.outdated`). |
|
|
68
|
+
| `--scan-root <dir>` | Root(s) to scan for project-local environments (comma-separated). Default: cwd. |
|
|
69
|
+
| `--outdated` | Network check for upgradable pip/conda packages (off by default). |
|
|
70
|
+
| `--wsl-deep` | Probe inside stopped WSL distros (off by default to avoid waking them). |
|
|
71
|
+
| `--audit-deps` | Invoke installed SCA tools and merge CVE findings into the report. |
|
|
72
|
+
| `--ci` | Exit non-zero on any error-severity issue. |
|
|
73
|
+
| `--quiet` | Suppress the live scan progress feedback (for scripts/CI). |
|
|
74
|
+
| `--bom` | Prefix output with a UTF-8 BOM so Notepad-like viewers render it correctly (stdout redirect/pipe only). |
|
|
75
|
+
|
|
76
|
+
### `query` — ask the manifest
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
devmap query # everything
|
|
80
|
+
devmap query node # tools whose id contains "node"
|
|
81
|
+
devmap query runtime.node # dot-form category.tool selector (runtime / pkg / ide)
|
|
82
|
+
devmap query --issues # only issues
|
|
83
|
+
devmap query --conflicts # only conflicts (multiVersion / path / ghost)
|
|
84
|
+
devmap query --off-path # only off-PATH installs
|
|
85
|
+
devmap query --kind runtime # filter by category
|
|
86
|
+
devmap query --where conda # filter by install path substring
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### `devdiff` — compare two manifests
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
devmap devdiff # stored manifest vs current live scan
|
|
93
|
+
devmap devdiff <file> # stored/before vs <file>
|
|
94
|
+
devmap devdiff <a> <b> # compare two manifest files
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Reports added/removed installs, version changes, and issues added/resolved.
|
|
98
|
+
|
|
99
|
+
## Output
|
|
100
|
+
|
|
101
|
+
- The default `scan` writes the manifest to **`~/.devmap/devmap.json`** (pure UTF-8, no BOM — directly parseable by Bun/Node/Python/jq).
|
|
102
|
+
- Use `query` / `devdiff` against a stored manifest without re-scanning.
|
|
103
|
+
|
|
104
|
+
## Repository
|
|
105
|
+
|
|
106
|
+
https://github.com/StevenLOL/devmap
|
|
107
|
+
|
|
108
|
+
## License
|
|
109
|
+
|
|
110
|
+
[MIT](https://github.com/StevenLOL/devmap/blob/main/LICENSE)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "devmap"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.5"
|
|
8
8
|
description = "Map your machine's dev environment and surface issues (PATH conflicts, ghost binaries, multi-version collisions). fastfetch-for-dev-tools. This PyPI package ships the real devmap CLI (a bundled JavaScript app launched via Node.js or Bun), so `pip install devmap && devmap` works standalone."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
devmap-0.3.3/PKG-INFO
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: devmap
|
|
3
|
-
Version: 0.3.3
|
|
4
|
-
Summary: Map your machine's dev environment and surface issues (PATH conflicts, ghost binaries, multi-version collisions). fastfetch-for-dev-tools. This PyPI package ships the real devmap CLI (a bundled JavaScript app launched via Node.js or Bun), so `pip install devmap && devmap` works standalone.
|
|
5
|
-
Author: devmap contributors
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/StevenLOL/devmap
|
|
8
|
-
Project-URL: Repository, https://github.com/StevenLOL/devmap
|
|
9
|
-
Keywords: devmap,devtools,environment,scanner,fastfetch,diagnostics,dev-environment,path-conflict,ghost-binary
|
|
10
|
-
Classifier: Development Status :: 4 - Beta
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
-
Classifier: Operating System :: OS Independent
|
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Topic :: Software Development :: Quality Assurance
|
|
16
|
-
Requires-Python: >=3.8
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
|
|
19
|
-
# devmap (PyPI placeholder — name reserved)
|
|
20
|
-
|
|
21
|
-
> **This is a placeholder package published only to reserve the `devmap`
|
|
22
|
-
> name on PyPI.** The real implementation will replace it.
|
|
23
|
-
|
|
24
|
-
## What devmap will be
|
|
25
|
-
|
|
26
|
-
A **fastfetch-for-dev-tools**: a single command that maps your machine's
|
|
27
|
-
development environment — runtimes, package managers, version managers,
|
|
28
|
-
containers, IDEs — and detects issues like PATH conflicts, ghost/zombie
|
|
29
|
-
binaries, version mismatches, and stale configs.
|
|
30
|
-
|
|
31
|
-
## Status
|
|
32
|
-
|
|
33
|
-
- Package name `devmap` reserved on PyPI ✅
|
|
34
|
-
- Implementation: in progress
|
|
35
|
-
|
|
36
|
-
## Repository
|
|
37
|
-
|
|
38
|
-
https://github.com/StevenLOL/devmap
|
devmap-0.3.3/README.md
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# devmap (PyPI placeholder — name reserved)
|
|
2
|
-
|
|
3
|
-
> **This is a placeholder package published only to reserve the `devmap`
|
|
4
|
-
> name on PyPI.** The real implementation will replace it.
|
|
5
|
-
|
|
6
|
-
## What devmap will be
|
|
7
|
-
|
|
8
|
-
A **fastfetch-for-dev-tools**: a single command that maps your machine's
|
|
9
|
-
development environment — runtimes, package managers, version managers,
|
|
10
|
-
containers, IDEs — and detects issues like PATH conflicts, ghost/zombie
|
|
11
|
-
binaries, version mismatches, and stale configs.
|
|
12
|
-
|
|
13
|
-
## Status
|
|
14
|
-
|
|
15
|
-
- Package name `devmap` reserved on PyPI ✅
|
|
16
|
-
- Implementation: in progress
|
|
17
|
-
|
|
18
|
-
## Repository
|
|
19
|
-
|
|
20
|
-
https://github.com/StevenLOL/devmap
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: devmap
|
|
3
|
-
Version: 0.3.3
|
|
4
|
-
Summary: Map your machine's dev environment and surface issues (PATH conflicts, ghost binaries, multi-version collisions). fastfetch-for-dev-tools. This PyPI package ships the real devmap CLI (a bundled JavaScript app launched via Node.js or Bun), so `pip install devmap && devmap` works standalone.
|
|
5
|
-
Author: devmap contributors
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/StevenLOL/devmap
|
|
8
|
-
Project-URL: Repository, https://github.com/StevenLOL/devmap
|
|
9
|
-
Keywords: devmap,devtools,environment,scanner,fastfetch,diagnostics,dev-environment,path-conflict,ghost-binary
|
|
10
|
-
Classifier: Development Status :: 4 - Beta
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
-
Classifier: Operating System :: OS Independent
|
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Topic :: Software Development :: Quality Assurance
|
|
16
|
-
Requires-Python: >=3.8
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
|
|
19
|
-
# devmap (PyPI placeholder — name reserved)
|
|
20
|
-
|
|
21
|
-
> **This is a placeholder package published only to reserve the `devmap`
|
|
22
|
-
> name on PyPI.** The real implementation will replace it.
|
|
23
|
-
|
|
24
|
-
## What devmap will be
|
|
25
|
-
|
|
26
|
-
A **fastfetch-for-dev-tools**: a single command that maps your machine's
|
|
27
|
-
development environment — runtimes, package managers, version managers,
|
|
28
|
-
containers, IDEs — and detects issues like PATH conflicts, ghost/zombie
|
|
29
|
-
binaries, version mismatches, and stale configs.
|
|
30
|
-
|
|
31
|
-
## Status
|
|
32
|
-
|
|
33
|
-
- Package name `devmap` reserved on PyPI ✅
|
|
34
|
-
- Implementation: in progress
|
|
35
|
-
|
|
36
|
-
## Repository
|
|
37
|
-
|
|
38
|
-
https://github.com/StevenLOL/devmap
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|