devmap 0.3.2__tar.gz → 0.3.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devmap
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
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
5
  Author: devmap contributors
6
6
  License: MIT
@@ -2,7 +2,7 @@
2
2
  // @bun
3
3
 
4
4
  // src/version.ts
5
- var VERSION = "0.3.2";
5
+ var VERSION = "0.3.4";
6
6
 
7
7
  // src/install.ts
8
8
  function isIsolated(i) {
@@ -555,17 +555,26 @@ var SCA_TOOLS = [
555
555
  auditArgs: ["-f", "json"],
556
556
  parse: (json) => {
557
557
  const out = [];
558
+ const sevOf = (s) => s ? toSeverity(s) : "error";
559
+ const seen = new Set;
560
+ const push = (name, vid, sev, title, detail) => {
561
+ const key = `${name}|${vid}`;
562
+ if (seen.has(key))
563
+ return;
564
+ seen.add(key);
565
+ out.push(makeCheck(`security.deps.pipaudit.${vid}`, "vuln", sev, title, detail, [name]));
566
+ };
558
567
  for (const dep of json?.dependencies || []) {
559
568
  for (const v of dep?.vulns || []) {
560
- const sev = toSeverity(v?.severity);
569
+ const sev = sevOf(v?.severity);
561
570
  const vid = v?.id || "UNKNOWN";
562
- out.push(makeCheck(`security.deps.pipaudit.${vid}`, "vuln", sev, `${dep?.name || "?"}@${dep?.version || "?"} affected by ${vid} (${sev === "error" ? "HIGH" : "MEDIUM"})`, `${vid}: ${v?.description || ""}. Fix versions: ${(v?.fix_versions || []).join(", ") || "n/a"}.`, [dep?.name || ""]));
571
+ push(dep?.name || "?", vid, sev, `${dep?.name || "?"}@${dep?.version || "?"} affected by ${vid} (${sev === "error" ? "HIGH" : "MEDIUM"})`, `${vid}: ${v?.description || ""}. Fix versions: ${(v?.fix_versions || []).join(", ") || "n/a"}.`);
563
572
  }
564
573
  }
565
574
  for (const v of json?.vulnerabilities || []) {
566
- const sev = toSeverity(v?.severity);
575
+ const sev = sevOf(v?.severity);
567
576
  const vid = v?.id || "UNKNOWN";
568
- out.push(makeCheck(`security.deps.pipaudit.${vid}`, "vuln", sev, `${v?.name || "?"} affected by ${vid}`, `${vid}: ${v?.description || ""}.`, [v?.name || ""]));
577
+ push(v?.name || "?", vid, sev, `${v?.name || "?"} affected by ${vid}`, `${vid}: ${v?.description || ""}.`);
569
578
  }
570
579
  return out;
571
580
  }
@@ -1206,6 +1215,12 @@ var CANDIDATES = [
1206
1215
  "C:\\tools\\vcpkg\\vcpkg.exe",
1207
1216
  "C:\\vcpkg\\vcpkg"
1208
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
+ }
1209
1224
  async function findVcpkg() {
1210
1225
  const cands = [];
1211
1226
  const seen = new Set;
@@ -1226,7 +1241,7 @@ async function findVcpkg() {
1226
1241
  }
1227
1242
  for (const p of whichInDirs("vcpkg", pathDirs()))
1228
1243
  add(p, true);
1229
- const versions = await pool(cands, 8, (c) => versionOfAsync(c.path, ["version", "--version"]));
1244
+ const versions = await pool(cands, 8, (c) => runBinAsync(c.path, ["version"], 9000).then(parseVcpkgVersion));
1230
1245
  return cands.map((c, i) => ({ path: c.path, onPath: c.onPath, version: versions[i] }));
1231
1246
  }
1232
1247
  function parseList(out) {
@@ -2054,7 +2069,7 @@ function renderEnvironments(env) {
2054
2069
  const rule = " " + "─".repeat(40);
2055
2070
  if (env.vcpkg?.installed) {
2056
2071
  console.log(rule);
2057
- console.log(` \x1B[1mvcpkg\x1B[0m ${plur(env.vcpkg.packages.length, "package")} (\x1B[33m${plur(env.vcpkg.installs.length, "install")}\x1B[0m)`);
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)`);
2058
2073
  for (const p of env.vcpkg.packages.slice(0, 6))
2059
2074
  console.log(` ${p.name}@${p.version} \x1B[2m${p.triplet}\x1B[0m`);
2060
2075
  }
@@ -2134,7 +2149,7 @@ function renderMarkdownLite(m) {
2134
2149
  const env = m.environments || {};
2135
2150
  const envLines = [];
2136
2151
  if (env.vcpkg?.installed)
2137
- envLines.push(`- vcpkg: ${plur(env.vcpkg.packages.length, "package")} / ${plur(env.vcpkg.installs.length, "install")}`);
2152
+ envLines.push(`- vcpkg: ${plur(env.vcpkg.packages.length, "package")} / ${plur(env.vcpkg.installs.length, "vcpkg copy", "vcpkg copies")}`);
2138
2153
  if (env.pip?.perInterpreter?.length)
2139
2154
  envLines.push(`- pip: ${plur(env.pip.perInterpreter.length, "interpreter")} / ${plur(env.pip.perInterpreter.reduce((a, p) => a + p.packages.length, 0), "package")}`);
2140
2155
  if (env.apt?.available)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devmap
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
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
5
  Author: devmap contributors
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "devmap"
7
- version = "0.3.2"
7
+ version = "0.3.4"
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"
File without changes
File without changes
File without changes