@vibgrate/cli 1.0.80 → 1.0.81
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.
- package/LICENSE.md +1 -1
- package/dist/{baseline-WDQNMJ4M.js → baseline-5AZAIOQ6.js} +2 -2
- package/dist/{chunk-UH7CY33M.js → chunk-DEPG5EIH.js} +1 -1
- package/dist/{chunk-22VJDYG5.js → chunk-W6TXQI4D.js} +7 -7
- package/dist/cli.js +42 -8
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Vibgrate Proprietary License
|
|
2
2
|
|
|
3
|
-
Copyright
|
|
3
|
+
Copyright © 2026 Vibgrate. All rights reserved.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person or organisation
|
|
6
6
|
obtaining a copy of this software in compiled/distributed form (the "Software"),
|
|
@@ -577,7 +577,7 @@ function formatArchitectureDiagram(arch) {
|
|
|
577
577
|
lines.push("");
|
|
578
578
|
if (arch.layers.length > 0) {
|
|
579
579
|
for (const layer of arch.layers) {
|
|
580
|
-
const risk = layer.riskLevel === "low" ? chalk.green("low") : layer.riskLevel === "moderate" ? chalk.yellow("moderate") : chalk.red("high");
|
|
580
|
+
const risk = layer.riskLevel === "none" ? chalk.dim("none") : layer.riskLevel === "low" ? chalk.green("low") : layer.riskLevel === "moderate" ? chalk.yellow("moderate") : chalk.red("high");
|
|
581
581
|
lines.push(` ${chalk.bold(layer.layer)} ${layer.fileCount} file${layer.fileCount !== 1 ? "s" : ""} drift ${scoreBar(layer.driftScore)} risk ${risk}`);
|
|
582
582
|
}
|
|
583
583
|
lines.push("");
|
|
@@ -7430,6 +7430,10 @@ var ScanProgress = class {
|
|
|
7430
7430
|
lines.push(` ${ROBOT[2]}`);
|
|
7431
7431
|
lines.push(` ${ROBOT[3]} ${chalk4.dim(this.rootDir)}`);
|
|
7432
7432
|
lines.push("");
|
|
7433
|
+
for (const step of this.steps) {
|
|
7434
|
+
lines.push(this.renderStep(step));
|
|
7435
|
+
}
|
|
7436
|
+
lines.push("");
|
|
7433
7437
|
const totalWeight = this.steps.reduce((sum, s) => sum + (s.weight ?? 1), 0);
|
|
7434
7438
|
let completedWeight = 0;
|
|
7435
7439
|
for (const step of this.steps) {
|
|
@@ -7457,10 +7461,6 @@ var ScanProgress = class {
|
|
|
7457
7461
|
const treePart = this.stats.treeSummary ? chalk4.dim(` \xB7 ${this.stats.treeSummary.totalFiles.toLocaleString()} files \xB7 ${this.stats.treeSummary.totalDirs.toLocaleString()} dirs`) : "";
|
|
7458
7462
|
lines.push(` ${bar} ${chalk4.bold.white(`${pct}%`)} ${chalk4.dim(elapsedStr)}${etaStr}${treePart}`);
|
|
7459
7463
|
lines.push("");
|
|
7460
|
-
for (const step of this.steps) {
|
|
7461
|
-
lines.push(this.renderStep(step));
|
|
7462
|
-
}
|
|
7463
|
-
lines.push("");
|
|
7464
7464
|
lines.push(this.renderStats());
|
|
7465
7465
|
lines.push("");
|
|
7466
7466
|
const content = lines.join("\n") + "\n";
|
|
@@ -10023,7 +10023,7 @@ function classifyFile(filePath, archetype) {
|
|
|
10023
10023
|
}
|
|
10024
10024
|
function computeLayerDrift(packages) {
|
|
10025
10025
|
if (packages.length === 0) {
|
|
10026
|
-
return { score:
|
|
10026
|
+
return { score: 0, riskLevel: "none" };
|
|
10027
10027
|
}
|
|
10028
10028
|
let current = 0;
|
|
10029
10029
|
let oneBehind = 0;
|
|
@@ -10041,7 +10041,7 @@ function computeLayerDrift(packages) {
|
|
|
10041
10041
|
}
|
|
10042
10042
|
}
|
|
10043
10043
|
const known = current + oneBehind + twoPlusBehind;
|
|
10044
|
-
if (known === 0) return { score:
|
|
10044
|
+
if (known === 0) return { score: 0, riskLevel: "none" };
|
|
10045
10045
|
const currentPct = current / known;
|
|
10046
10046
|
const onePct = oneBehind / known;
|
|
10047
10047
|
const twoPct = twoPlusBehind / known;
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
baselineCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DEPG5EIH.js";
|
|
5
5
|
import {
|
|
6
6
|
VERSION,
|
|
7
7
|
computeHmac,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
pushCommand,
|
|
13
13
|
scanCommand,
|
|
14
14
|
writeDefaultConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-W6TXQI4D.js";
|
|
16
16
|
import {
|
|
17
17
|
Semaphore,
|
|
18
18
|
ensureDir,
|
|
@@ -42,7 +42,7 @@ var initCommand = new Command("init").description("Initialize vibgrate in a proj
|
|
|
42
42
|
console.log(chalk.green("\u2714") + ` Created ${chalk.bold("vibgrate.config.ts")}`);
|
|
43
43
|
}
|
|
44
44
|
if (opts.baseline) {
|
|
45
|
-
const { runBaseline } = await import("./baseline-
|
|
45
|
+
const { runBaseline } = await import("./baseline-5AZAIOQ6.js");
|
|
46
46
|
await runBaseline(rootDir);
|
|
47
47
|
}
|
|
48
48
|
console.log("");
|
|
@@ -172,6 +172,32 @@ async function writeCache(data) {
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
// src/commands/update.ts
|
|
175
|
+
function detectGlobalInstall() {
|
|
176
|
+
const execPath = process.argv[1] || "";
|
|
177
|
+
if (execPath.includes("/lib/node_modules/") || execPath.includes("\\node_modules\\")) {
|
|
178
|
+
if (!execPath.includes(process.cwd())) {
|
|
179
|
+
if (execPath.includes("pnpm")) return "pnpm";
|
|
180
|
+
if (execPath.includes("yarn")) return "yarn";
|
|
181
|
+
if (execPath.includes("bun")) return "bun";
|
|
182
|
+
return "npm";
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
function getGlobalUpdateCommand(pm, pkg, version) {
|
|
188
|
+
const spec = `${pkg}@${version}`;
|
|
189
|
+
switch (pm) {
|
|
190
|
+
case "pnpm":
|
|
191
|
+
return `pnpm add -g ${spec}`;
|
|
192
|
+
case "yarn":
|
|
193
|
+
return `yarn global add ${spec}`;
|
|
194
|
+
case "bun":
|
|
195
|
+
return `bun add -g ${spec}`;
|
|
196
|
+
case "npm":
|
|
197
|
+
default:
|
|
198
|
+
return `npm install -g ${spec}`;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
175
201
|
async function detectPackageManager(cwd) {
|
|
176
202
|
if (await pathExists(path4.join(cwd, "pnpm-lock.yaml"))) return "pnpm";
|
|
177
203
|
if (await pathExists(path4.join(cwd, "bun.lockb"))) return "bun";
|
|
@@ -202,7 +228,7 @@ async function isDevDependency(cwd) {
|
|
|
202
228
|
return true;
|
|
203
229
|
}
|
|
204
230
|
}
|
|
205
|
-
var updateCommand = new Command3("update").description("Update vibgrate to the latest version").option("--check", "Only check for updates, do not install").option("--pm <manager>", "Package manager to use (npm, pnpm, yarn, bun)").action(async (opts) => {
|
|
231
|
+
var updateCommand = new Command3("update").description("Update vibgrate to the latest version").option("--check", "Only check for updates, do not install").option("--pm <manager>", "Package manager to use (npm, pnpm, yarn, bun)").option("--global", "Update global installation").action(async (opts) => {
|
|
206
232
|
console.log(chalk3.dim(`Current version: ${VERSION}`));
|
|
207
233
|
console.log(chalk3.dim("Checking npm registry..."));
|
|
208
234
|
const latest = await fetchLatestVersion();
|
|
@@ -221,10 +247,18 @@ var updateCommand = new Command3("update").description("Update vibgrate to the l
|
|
|
221
247
|
return;
|
|
222
248
|
}
|
|
223
249
|
const cwd = process.cwd();
|
|
224
|
-
const
|
|
225
|
-
const
|
|
226
|
-
const
|
|
227
|
-
|
|
250
|
+
const globalPm = detectGlobalInstall();
|
|
251
|
+
const isGlobal = opts.global || globalPm !== null;
|
|
252
|
+
const pm = opts.pm || (globalPm ?? await detectPackageManager(cwd));
|
|
253
|
+
let cmd;
|
|
254
|
+
if (isGlobal) {
|
|
255
|
+
cmd = getGlobalUpdateCommand(pm, "@vibgrate/cli", latest);
|
|
256
|
+
console.log(chalk3.dim(`Updating global installation with ${pm}: ${cmd}`));
|
|
257
|
+
} else {
|
|
258
|
+
const isDev = await isDevDependency(cwd);
|
|
259
|
+
cmd = getInstallCommand(pm, "@vibgrate/cli", latest, isDev);
|
|
260
|
+
console.log(chalk3.dim(`Using ${pm}: ${cmd}`));
|
|
261
|
+
}
|
|
228
262
|
try {
|
|
229
263
|
execSync(cmd, { cwd, stdio: "inherit" });
|
|
230
264
|
console.log(chalk3.green("\u2714") + ` Updated to @vibgrate/cli@${latest}`);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type DepSection = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies';
|
|
2
|
-
type RiskLevel = 'low' | 'moderate' | 'high';
|
|
2
|
+
type RiskLevel = 'low' | 'moderate' | 'high' | 'none';
|
|
3
3
|
type ProjectType = 'node' | 'dotnet' | 'python' | 'java' | 'go' | 'rust' | 'php' | 'typescript' | 'ruby' | 'swift' | 'kotlin' | 'dart' | 'scala' | 'r' | 'objective-c' | 'elixir' | 'haskell' | 'lua' | 'perl' | 'julia' | 'shell' | 'clojure' | 'groovy' | 'c' | 'cpp' | 'cobol' | 'fortran' | 'visual-basic' | 'pascal' | 'ada' | 'assembly' | 'rpg';
|
|
4
4
|
type OutputFormat = 'text' | 'json' | 'sarif' | 'md';
|
|
5
5
|
interface DependencyRow {
|
|
@@ -392,9 +392,9 @@ interface LayerSummary {
|
|
|
392
392
|
layer: ArchitectureLayer;
|
|
393
393
|
/** Number of files in this layer */
|
|
394
394
|
fileCount: number;
|
|
395
|
-
/** Drift score for dependencies used in this layer (0–100,
|
|
395
|
+
/** Drift score for dependencies used in this layer (0–100, 0 when no packages to track) */
|
|
396
396
|
driftScore: number;
|
|
397
|
-
/** Risk level derived from drift score ('
|
|
397
|
+
/** Risk level derived from drift score ('none' when no packages to track) */
|
|
398
398
|
riskLevel: RiskLevel;
|
|
399
399
|
/** Tech stack components detected in this layer */
|
|
400
400
|
techStack: InventoryItem[];
|
package/dist/index.js
CHANGED