@vibgrate/cli 2026.4.30 → 2026.6.5
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/dist/baseline-FPO7HS7Y.js +9 -0
- package/dist/chunk-42GW43JE.js +97 -0
- package/dist/chunk-74ZJFYEM.js +1936 -0
- package/dist/chunk-JSBRDJBE.js +30 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +1674 -301
- package/dist/index.d.ts +1 -617
- package/dist/index.js +8 -6
- package/dist/semver-JBJZTHUX.js +5 -0
- package/package.json +8 -7
- package/dist/baseline-QZZXBT74.js +0 -10
- package/dist/chunk-2VJCLUTR.js +0 -31
- package/dist/chunk-JQHUH6A3.js +0 -684
- package/dist/chunk-XCIPC2J7.js +0 -12756
- package/dist/fs-D24ONFXR.js +0 -32
package/dist/index.d.ts
CHANGED
|
@@ -1,617 +1 @@
|
|
|
1
|
-
|
|
2
|
-
type RiskLevel = 'low' | 'moderate' | 'high' | 'none';
|
|
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
|
-
type OutputFormat = 'text' | 'json' | 'sarif' | 'md';
|
|
5
|
-
interface DependencyRow {
|
|
6
|
-
package: string;
|
|
7
|
-
section: DepSection;
|
|
8
|
-
currentSpec: string;
|
|
9
|
-
resolvedVersion: string | null;
|
|
10
|
-
latestStable: string | null;
|
|
11
|
-
majorsBehind: number | null;
|
|
12
|
-
drift: 'current' | 'minor-behind' | 'major-behind' | 'unknown';
|
|
13
|
-
}
|
|
14
|
-
interface DetectedFramework {
|
|
15
|
-
name: string;
|
|
16
|
-
currentVersion: string | null;
|
|
17
|
-
latestVersion: string | null;
|
|
18
|
-
majorsBehind: number | null;
|
|
19
|
-
}
|
|
20
|
-
interface ProjectReference {
|
|
21
|
-
/** Relative path to the referenced project from the root */
|
|
22
|
-
path: string;
|
|
23
|
-
/** Project name (derived from path or manifest) */
|
|
24
|
-
name: string;
|
|
25
|
-
/** Type of reference: 'project' for .NET ProjectReference, 'workspace' for npm workspace dep */
|
|
26
|
-
refType: 'project' | 'workspace';
|
|
27
|
-
}
|
|
28
|
-
interface ProjectScan {
|
|
29
|
-
type: ProjectType;
|
|
30
|
-
path: string;
|
|
31
|
-
name: string;
|
|
32
|
-
/** Deterministic project ID: SHA-256 hash of `${path}:${name}:${workspaceId}` */
|
|
33
|
-
projectId?: string;
|
|
34
|
-
/** Optional solution identifier when project belongs to a solution/workspace file */
|
|
35
|
-
solutionId?: string;
|
|
36
|
-
/** Optional solution name resolved from solution/workspace metadata */
|
|
37
|
-
solutionName?: string;
|
|
38
|
-
runtime?: string;
|
|
39
|
-
runtimeLatest?: string;
|
|
40
|
-
runtimeMajorsBehind?: number;
|
|
41
|
-
targetFramework?: string;
|
|
42
|
-
/** Package manager used for this project (e.g. 'pnpm', 'yarn', 'npm', 'bun') */
|
|
43
|
-
packageManager?: string;
|
|
44
|
-
frameworks: DetectedFramework[];
|
|
45
|
-
dependencies: DependencyRow[];
|
|
46
|
-
dependencyAgeBuckets: {
|
|
47
|
-
current: number;
|
|
48
|
-
oneBehind: number;
|
|
49
|
-
twoPlusBehind: number;
|
|
50
|
-
unknown: number;
|
|
51
|
-
};
|
|
52
|
-
/** Individual project drift score (computed per-project, then aggregated into artifact.drift) */
|
|
53
|
-
drift?: DriftScore;
|
|
54
|
-
/** References to other projects in the same repository (internal dependencies) */
|
|
55
|
-
projectReferences?: ProjectReference[];
|
|
56
|
-
/** Number of source files in the project directory */
|
|
57
|
-
fileCount?: number;
|
|
58
|
-
/** Project-level architecture layer diagram (Mermaid flowchart) */
|
|
59
|
-
architectureMermaid?: string;
|
|
60
|
-
/** Project-level architecture detection result (layers, archetype, file counts) */
|
|
61
|
-
architecture?: ArchitectureResult;
|
|
62
|
-
/** Project-level relationship diagram (first-level parents + children) */
|
|
63
|
-
relationshipDiagram?: MermaidDiagram;
|
|
64
|
-
/** Compacted UI purpose evidence for this project */
|
|
65
|
-
uiPurpose?: CompactUiPurpose;
|
|
66
|
-
/** Base64-encoded favicon for this project, detected from its public/ directory */
|
|
67
|
-
faviconBase64?: string;
|
|
68
|
-
}
|
|
69
|
-
interface SolutionScan {
|
|
70
|
-
/** Deterministic solution ID: SHA-256 hash of `${path}:${name}:${workspaceId}` */
|
|
71
|
-
solutionId: string;
|
|
72
|
-
/** Relative path to solution file */
|
|
73
|
-
path: string;
|
|
74
|
-
/** Solution display name */
|
|
75
|
-
name: string;
|
|
76
|
-
/** Solution file type */
|
|
77
|
-
type: 'dotnet-sln';
|
|
78
|
-
/** Projects resolved as belonging to this solution (by relative project path) */
|
|
79
|
-
projectPaths: string[];
|
|
80
|
-
/** Aggregate drift score for all resolved projects in this solution */
|
|
81
|
-
drift?: DriftScore;
|
|
82
|
-
/** Aggregate architecture result for all projects in this solution */
|
|
83
|
-
architecture?: ArchitectureResult;
|
|
84
|
-
/** Solution relationship diagram with top-level solution node and project links */
|
|
85
|
-
relationshipDiagram?: MermaidDiagram;
|
|
86
|
-
}
|
|
87
|
-
interface MermaidDiagram {
|
|
88
|
-
mermaid: string;
|
|
89
|
-
svg?: string;
|
|
90
|
-
}
|
|
91
|
-
interface DriftScore {
|
|
92
|
-
score: number;
|
|
93
|
-
riskLevel: RiskLevel;
|
|
94
|
-
components: {
|
|
95
|
-
runtimeScore: number;
|
|
96
|
-
frameworkScore: number;
|
|
97
|
-
dependencyScore: number;
|
|
98
|
-
eolScore: number;
|
|
99
|
-
};
|
|
100
|
-
/** Which components had sufficient data to score. Missing = no data available. */
|
|
101
|
-
measured?: ('runtime' | 'framework' | 'dependency' | 'eol')[];
|
|
102
|
-
}
|
|
103
|
-
interface Finding {
|
|
104
|
-
ruleId: string;
|
|
105
|
-
level: 'warning' | 'error' | 'note';
|
|
106
|
-
message: string;
|
|
107
|
-
location: string;
|
|
108
|
-
details?: Record<string, unknown>;
|
|
109
|
-
}
|
|
110
|
-
type VcsType = 'git' | 'unknown';
|
|
111
|
-
interface VcsInfo {
|
|
112
|
-
type: VcsType;
|
|
113
|
-
sha?: string;
|
|
114
|
-
shortSha?: string;
|
|
115
|
-
branch?: string;
|
|
116
|
-
remoteUrl?: string;
|
|
117
|
-
}
|
|
118
|
-
interface RepositoryInfo {
|
|
119
|
-
name: string;
|
|
120
|
-
version?: string;
|
|
121
|
-
pipeline?: string;
|
|
122
|
-
remoteUrl?: string;
|
|
123
|
-
}
|
|
124
|
-
interface TreeCount {
|
|
125
|
-
/** Total files discovered (excluding skipped dirs like node_modules, .git, dist) */
|
|
126
|
-
totalFiles: number;
|
|
127
|
-
/** Total subdirectories discovered (excluding skipped dirs) */
|
|
128
|
-
totalDirs: number;
|
|
129
|
-
}
|
|
130
|
-
interface ScanArtifact {
|
|
131
|
-
schemaVersion: '1.0';
|
|
132
|
-
timestamp: string;
|
|
133
|
-
vibgrateVersion: string;
|
|
134
|
-
rootPath: string;
|
|
135
|
-
vcs?: VcsInfo;
|
|
136
|
-
repository?: RepositoryInfo;
|
|
137
|
-
projects: ProjectScan[];
|
|
138
|
-
solutions?: SolutionScan[];
|
|
139
|
-
drift: DriftScore;
|
|
140
|
-
findings: Finding[];
|
|
141
|
-
baseline?: string;
|
|
142
|
-
delta?: number;
|
|
143
|
-
extended?: ExtendedScanResults;
|
|
144
|
-
/** Scan wall-clock duration in milliseconds */
|
|
145
|
-
durationMs?: number;
|
|
146
|
-
/** Number of manifest/config files scanned */
|
|
147
|
-
filesScanned?: number;
|
|
148
|
-
/** Workspace tree summary (file & directory counts from discovery) */
|
|
149
|
-
treeSummary?: TreeCount;
|
|
150
|
-
/** Workspace-level relationship diagram */
|
|
151
|
-
relationshipDiagram?: MermaidDiagram;
|
|
152
|
-
}
|
|
153
|
-
interface ScanOptions {
|
|
154
|
-
out?: string;
|
|
155
|
-
format: OutputFormat;
|
|
156
|
-
failOn?: 'warn' | 'error';
|
|
157
|
-
baseline?: string;
|
|
158
|
-
changedOnly?: boolean;
|
|
159
|
-
concurrency: number;
|
|
160
|
-
/** Auto-push after scan. If set, artifact is uploaded using this DSN (or VIBGRATE_DSN env). */
|
|
161
|
-
push?: boolean;
|
|
162
|
-
dsn?: string;
|
|
163
|
-
/** Override data residency region for push */
|
|
164
|
-
region?: string;
|
|
165
|
-
/** Fail on push errors (like --strict on push command) */
|
|
166
|
-
strict?: boolean;
|
|
167
|
-
/** Enable optional UI-purpose evidence extraction (slower, richer context for dashboard) */
|
|
168
|
-
uiPurpose?: boolean;
|
|
169
|
-
/** Prevent writing .vibgrate JSON artifacts to disk */
|
|
170
|
-
noLocalArtifacts?: boolean;
|
|
171
|
-
/** Enable strongest privacy profile: minimize scanners and suppress local artifacts */
|
|
172
|
-
maxPrivacy?: boolean;
|
|
173
|
-
/** Run without any network calls; drift may be partial without a package manifest */
|
|
174
|
-
offline?: boolean;
|
|
175
|
-
/** Path to package-version manifest JSON or ZIP used in offline/privacy workflows */
|
|
176
|
-
packageManifest?: string;
|
|
177
|
-
/** Fail the run if drift score is above this absolute budget */
|
|
178
|
-
driftBudget?: number;
|
|
179
|
-
/** Fail when drift worsens by more than this percentage vs baseline */
|
|
180
|
-
driftWorseningPercent?: number;
|
|
181
|
-
/** Per-project scan timeout override (seconds). Takes precedence over config file. */
|
|
182
|
-
projectScanTimeout?: number;
|
|
183
|
-
}
|
|
184
|
-
interface ScannerToggle {
|
|
185
|
-
enabled: boolean;
|
|
186
|
-
}
|
|
187
|
-
interface ScannersConfig {
|
|
188
|
-
platformMatrix?: ScannerToggle;
|
|
189
|
-
dependencyRisk?: ScannerToggle;
|
|
190
|
-
dependencyGraph?: ScannerToggle;
|
|
191
|
-
toolingInventory?: ScannerToggle;
|
|
192
|
-
buildDeploy?: ScannerToggle;
|
|
193
|
-
tsModernity?: ScannerToggle;
|
|
194
|
-
breakingChangeExposure?: ScannerToggle;
|
|
195
|
-
fileHotspots?: ScannerToggle;
|
|
196
|
-
securityPosture?: ScannerToggle;
|
|
197
|
-
serviceDependencies?: ScannerToggle;
|
|
198
|
-
architecture?: ScannerToggle;
|
|
199
|
-
codeQuality?: ScannerToggle;
|
|
200
|
-
uiPurpose?: ScannerToggle;
|
|
201
|
-
runtimeConfiguration?: ScannerToggle;
|
|
202
|
-
dataStores?: ScannerToggle;
|
|
203
|
-
apiSurface?: ScannerToggle;
|
|
204
|
-
operationalResilience?: ScannerToggle;
|
|
205
|
-
assetBranding?: ScannerToggle;
|
|
206
|
-
ossGovernance?: ScannerToggle;
|
|
207
|
-
}
|
|
208
|
-
interface VibgrateConfig {
|
|
209
|
-
include?: string[];
|
|
210
|
-
exclude?: string[];
|
|
211
|
-
/** Maximum file size (bytes) the CLI will read during a scan. Files larger
|
|
212
|
-
* than this are silently skipped. Default: 5 242 880 (5 MB). */
|
|
213
|
-
maxFileSizeToScan?: number;
|
|
214
|
-
/** Per-project scan timeout in seconds. If a single project takes
|
|
215
|
-
* longer than this the project is skipped and the path auto-excluded on
|
|
216
|
-
* the next run. Increase for very large mono-repos. Default: 180 (3 min). */
|
|
217
|
-
projectScanTimeout?: number;
|
|
218
|
-
scanners?: ScannersConfig | false;
|
|
219
|
-
thresholds?: {
|
|
220
|
-
failOnError?: {
|
|
221
|
-
eolDays?: number;
|
|
222
|
-
frameworkMajorLag?: number;
|
|
223
|
-
dependencyTwoPlusPercent?: number;
|
|
224
|
-
};
|
|
225
|
-
warn?: {
|
|
226
|
-
frameworkMajorLag?: number;
|
|
227
|
-
dependencyTwoPlusPercent?: number;
|
|
228
|
-
};
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
interface PlatformMatrixResult {
|
|
232
|
-
nodeEngines?: string;
|
|
233
|
-
npmEngines?: string;
|
|
234
|
-
pnpmEngines?: string;
|
|
235
|
-
dotnetTargetFrameworks: string[];
|
|
236
|
-
nativeModules: string[];
|
|
237
|
-
osAssumptions: string[];
|
|
238
|
-
dockerBaseImages: string[];
|
|
239
|
-
nodeVersionFiles: string[];
|
|
240
|
-
}
|
|
241
|
-
interface DependencyRiskResult {
|
|
242
|
-
deprecatedPackages: string[];
|
|
243
|
-
nativeModulePackages: string[];
|
|
244
|
-
totalDependencies: number;
|
|
245
|
-
}
|
|
246
|
-
interface DuplicatedPackage {
|
|
247
|
-
name: string;
|
|
248
|
-
versions: string[];
|
|
249
|
-
consumers: number;
|
|
250
|
-
}
|
|
251
|
-
interface PhantomDependency {
|
|
252
|
-
package: string;
|
|
253
|
-
spec: string;
|
|
254
|
-
sourcePath: string;
|
|
255
|
-
}
|
|
256
|
-
interface DependencyGraphResult {
|
|
257
|
-
lockfileType: string | null;
|
|
258
|
-
totalUnique: number;
|
|
259
|
-
totalInstalled: number;
|
|
260
|
-
duplicatedPackages: DuplicatedPackage[];
|
|
261
|
-
phantomDependencies: string[];
|
|
262
|
-
phantomDependencyDetails?: PhantomDependency[];
|
|
263
|
-
}
|
|
264
|
-
interface InventoryItem {
|
|
265
|
-
name: string;
|
|
266
|
-
package: string;
|
|
267
|
-
version: string | null;
|
|
268
|
-
}
|
|
269
|
-
interface ToolingInventoryResult {
|
|
270
|
-
frontend: InventoryItem[];
|
|
271
|
-
metaFrameworks: InventoryItem[];
|
|
272
|
-
bundlers: InventoryItem[];
|
|
273
|
-
css: InventoryItem[];
|
|
274
|
-
backend: InventoryItem[];
|
|
275
|
-
orm: InventoryItem[];
|
|
276
|
-
testing: InventoryItem[];
|
|
277
|
-
lintFormat: InventoryItem[];
|
|
278
|
-
apiMessaging: InventoryItem[];
|
|
279
|
-
observability: InventoryItem[];
|
|
280
|
-
}
|
|
281
|
-
interface BuildDeployResult {
|
|
282
|
-
ci: string[];
|
|
283
|
-
ciWorkflowCount: number;
|
|
284
|
-
docker: {
|
|
285
|
-
dockerfileCount: number;
|
|
286
|
-
baseImages: string[];
|
|
287
|
-
};
|
|
288
|
-
iac: string[];
|
|
289
|
-
releaseTooling: string[];
|
|
290
|
-
packageManagers: string[];
|
|
291
|
-
monorepoTools: string[];
|
|
292
|
-
}
|
|
293
|
-
interface TsModernityResult {
|
|
294
|
-
typescriptVersion: string | null;
|
|
295
|
-
strict: boolean | null;
|
|
296
|
-
noImplicitAny: boolean | null;
|
|
297
|
-
strictNullChecks: boolean | null;
|
|
298
|
-
module: string | null;
|
|
299
|
-
moduleResolution: string | null;
|
|
300
|
-
target: string | null;
|
|
301
|
-
moduleType: 'esm' | 'cjs' | 'mixed' | null;
|
|
302
|
-
exportsField: boolean;
|
|
303
|
-
}
|
|
304
|
-
type UpgradeRecommendation = 'do-nothing' | 'upgrade-safely-now' | 'plan-major-upgrade' | 'codemod-available' | 'manual-hotspots';
|
|
305
|
-
interface BreakingChangePackageIntelligence {
|
|
306
|
-
package: string;
|
|
307
|
-
currentVersion: string | null;
|
|
308
|
-
targetVersion: string | null;
|
|
309
|
-
majorJumpCount: number;
|
|
310
|
-
interimMajors: string[];
|
|
311
|
-
releaseNoteSources: string[];
|
|
312
|
-
parsedSignals: string[];
|
|
313
|
-
impactedFeatures: string[];
|
|
314
|
-
usage: {
|
|
315
|
-
importSites: number;
|
|
316
|
-
filesTouchedEstimate: number;
|
|
317
|
-
functionsTouchedEstimate: number;
|
|
318
|
-
touchedPercent: number;
|
|
319
|
-
};
|
|
320
|
-
automatable: 'codemod-available' | 'deterministic-recipe' | 'manual';
|
|
321
|
-
codemod?: string;
|
|
322
|
-
}
|
|
323
|
-
interface BreakingChangeProjectIntelligence {
|
|
324
|
-
project: string;
|
|
325
|
-
projectPath: string;
|
|
326
|
-
packages: BreakingChangePackageIntelligence[];
|
|
327
|
-
recommendation: UpgradeRecommendation;
|
|
328
|
-
}
|
|
329
|
-
interface BreakingChangeSolutionIntelligence {
|
|
330
|
-
solutionId: string;
|
|
331
|
-
solutionName: string;
|
|
332
|
-
projectCount: number;
|
|
333
|
-
majorPackages: number;
|
|
334
|
-
recommendation: UpgradeRecommendation;
|
|
335
|
-
}
|
|
336
|
-
interface BreakingChangeExposureResult {
|
|
337
|
-
deprecatedPackages: string[];
|
|
338
|
-
legacyPolyfills: string[];
|
|
339
|
-
peerConflictsDetected: boolean;
|
|
340
|
-
exposureScore: number;
|
|
341
|
-
projectIntelligence: BreakingChangeProjectIntelligence[];
|
|
342
|
-
solutionIntelligence: BreakingChangeSolutionIntelligence[];
|
|
343
|
-
overallRecommendation: UpgradeRecommendation;
|
|
344
|
-
}
|
|
345
|
-
interface FileHotspot {
|
|
346
|
-
path: string;
|
|
347
|
-
bytes: number;
|
|
348
|
-
}
|
|
349
|
-
interface PackageCentrality {
|
|
350
|
-
name: string;
|
|
351
|
-
referencedInProjects: number;
|
|
352
|
-
}
|
|
353
|
-
interface FileHotspotsResult {
|
|
354
|
-
fileCountByExtension: Record<string, number>;
|
|
355
|
-
largestFiles: FileHotspot[];
|
|
356
|
-
totalFiles: number;
|
|
357
|
-
maxDirectoryDepth: number;
|
|
358
|
-
mostUsedPackages: PackageCentrality[];
|
|
359
|
-
}
|
|
360
|
-
interface SecurityPostureResult {
|
|
361
|
-
lockfilePresent: boolean;
|
|
362
|
-
multipleLockfileTypes: boolean;
|
|
363
|
-
gitignoreCoversEnv: boolean;
|
|
364
|
-
gitignoreCoversNodeModules: boolean;
|
|
365
|
-
envFilesTracked: boolean;
|
|
366
|
-
lockfileTypes: string[];
|
|
367
|
-
}
|
|
368
|
-
interface ServiceDependencyItem {
|
|
369
|
-
name: string;
|
|
370
|
-
package: string;
|
|
371
|
-
version: string | null;
|
|
372
|
-
}
|
|
373
|
-
interface ServiceDependenciesResult {
|
|
374
|
-
payment: ServiceDependencyItem[];
|
|
375
|
-
auth: ServiceDependencyItem[];
|
|
376
|
-
email: ServiceDependencyItem[];
|
|
377
|
-
cloud: ServiceDependencyItem[];
|
|
378
|
-
databases: ServiceDependencyItem[];
|
|
379
|
-
messaging: ServiceDependencyItem[];
|
|
380
|
-
observability: ServiceDependencyItem[];
|
|
381
|
-
crm: ServiceDependencyItem[];
|
|
382
|
-
storage: ServiceDependencyItem[];
|
|
383
|
-
search: ServiceDependencyItem[];
|
|
384
|
-
}
|
|
385
|
-
/** Detected project archetype (fingerprint) */
|
|
386
|
-
type ProjectArchetype = 'nextjs' | 'remix' | 'sveltekit' | 'nuxt' | 'nestjs' | 'express' | 'fastify' | 'hono' | 'koa' | 'serverless' | 'library' | 'cli' | 'monorepo' | 'unknown';
|
|
387
|
-
/** Architectural layer classification */
|
|
388
|
-
type ArchitectureLayer = 'routing' | 'middleware' | 'services' | 'domain' | 'data-access' | 'infrastructure' | 'presentation' | 'config' | 'testing' | 'shared';
|
|
389
|
-
/** Per-layer aggregated data */
|
|
390
|
-
interface LayerSummary {
|
|
391
|
-
/** The layer name */
|
|
392
|
-
layer: ArchitectureLayer;
|
|
393
|
-
/** Number of files in this layer */
|
|
394
|
-
fileCount: number;
|
|
395
|
-
/** Drift score for dependencies used in this layer (0–100, 0 when no packages to track) */
|
|
396
|
-
driftScore: number;
|
|
397
|
-
/** Risk level derived from drift score ('none' when no packages to track) */
|
|
398
|
-
riskLevel: RiskLevel;
|
|
399
|
-
/** Tech stack components detected in this layer */
|
|
400
|
-
techStack: InventoryItem[];
|
|
401
|
-
/** Services/integrations used in this layer */
|
|
402
|
-
services: ServiceDependencyItem[];
|
|
403
|
-
/** Packages referenced in this layer with their drift status */
|
|
404
|
-
packages: LayerPackageRef[];
|
|
405
|
-
}
|
|
406
|
-
/** Package reference within a layer */
|
|
407
|
-
interface LayerPackageRef {
|
|
408
|
-
name: string;
|
|
409
|
-
version: string | null;
|
|
410
|
-
latestStable: string | null;
|
|
411
|
-
majorsBehind: number | null;
|
|
412
|
-
drift: 'current' | 'minor-behind' | 'major-behind' | 'unknown';
|
|
413
|
-
}
|
|
414
|
-
/** Full architecture detection result */
|
|
415
|
-
interface ArchitectureResult {
|
|
416
|
-
/** Detected project archetype */
|
|
417
|
-
archetype: ProjectArchetype;
|
|
418
|
-
/** Confidence of archetype detection (0–1) */
|
|
419
|
-
archetypeConfidence: number;
|
|
420
|
-
/** Per-layer summaries with drift + tech data */
|
|
421
|
-
layers: LayerSummary[];
|
|
422
|
-
/** Total files classified */
|
|
423
|
-
totalClassified: number;
|
|
424
|
-
/** Files that could not be classified */
|
|
425
|
-
unclassified: number;
|
|
426
|
-
}
|
|
427
|
-
interface GodFile {
|
|
428
|
-
path: string;
|
|
429
|
-
lines: number;
|
|
430
|
-
functionCount: number;
|
|
431
|
-
averageComplexity: number;
|
|
432
|
-
}
|
|
433
|
-
interface CodeQualityResult {
|
|
434
|
-
filesAnalyzed: number;
|
|
435
|
-
functionsAnalyzed: number;
|
|
436
|
-
avgCyclomaticComplexity: number;
|
|
437
|
-
avgFunctionLength: number;
|
|
438
|
-
maxNestingDepth: number;
|
|
439
|
-
godFiles: GodFile[];
|
|
440
|
-
circularDependencies: number;
|
|
441
|
-
deadCodePercent: number;
|
|
442
|
-
}
|
|
443
|
-
interface UiPurposeEvidenceItem {
|
|
444
|
-
kind: 'route' | 'nav' | 'title' | 'heading' | 'cta' | 'copy' | 'dependency' | 'feature_flag';
|
|
445
|
-
value: string;
|
|
446
|
-
file: string;
|
|
447
|
-
weight: number;
|
|
448
|
-
}
|
|
449
|
-
/** Compacted UI evidence for LLM inference - reduces token usage by ~80-90% */
|
|
450
|
-
interface CompactUiPurpose {
|
|
451
|
-
/** Top unique samples per category (typically ~40-60 items) */
|
|
452
|
-
samples: Array<{
|
|
453
|
-
kind: string;
|
|
454
|
-
value: string;
|
|
455
|
-
category: string;
|
|
456
|
-
}>;
|
|
457
|
-
/** Count of evidence items per semantic category */
|
|
458
|
-
categoryCounts: Record<string, number>;
|
|
459
|
-
/** Total evidence count before compaction */
|
|
460
|
-
originalCount: number;
|
|
461
|
-
/** High-signal dependencies (stripe, auth0, etc.) */
|
|
462
|
-
dependencies: string[];
|
|
463
|
-
/** Deduplicated route patterns */
|
|
464
|
-
routes: string[];
|
|
465
|
-
/** Detected UI frameworks (nextjs, react, vue, etc.) */
|
|
466
|
-
detectedFrameworks: string[];
|
|
467
|
-
}
|
|
468
|
-
interface UiPurposeResult {
|
|
469
|
-
enabled: boolean;
|
|
470
|
-
detectedFrameworks: string[];
|
|
471
|
-
evidenceCount: number;
|
|
472
|
-
capped: boolean;
|
|
473
|
-
topEvidence: UiPurposeEvidenceItem[];
|
|
474
|
-
unknownSignals: string[];
|
|
475
|
-
}
|
|
476
|
-
interface RuntimeConfigurationResult {
|
|
477
|
-
environmentVariables: string[];
|
|
478
|
-
featureFlags: string[];
|
|
479
|
-
hiddenConfigFiles: string[];
|
|
480
|
-
dotEnvFiles: string[];
|
|
481
|
-
secretsInjectionPaths: string[];
|
|
482
|
-
containerEntrypoints: string[];
|
|
483
|
-
startupArguments: string[];
|
|
484
|
-
jvmFlags: string[];
|
|
485
|
-
threadPoolSettings: string[];
|
|
486
|
-
}
|
|
487
|
-
interface DatabaseTechnology {
|
|
488
|
-
kind: 'sql' | 'nosql';
|
|
489
|
-
brand: string;
|
|
490
|
-
version: string | null;
|
|
491
|
-
evidence: string;
|
|
492
|
-
}
|
|
493
|
-
interface DataStoresResult {
|
|
494
|
-
databaseTechnologies: DatabaseTechnology[];
|
|
495
|
-
connectionStrings: string[];
|
|
496
|
-
connectionPoolSettings: string[];
|
|
497
|
-
replicationSettings: string[];
|
|
498
|
-
readReplicaSettings: string[];
|
|
499
|
-
failoverSettings: string[];
|
|
500
|
-
collationAndEncoding: string[];
|
|
501
|
-
queryTimeoutDefaults: string[];
|
|
502
|
-
manualIndexes: string[];
|
|
503
|
-
tables: string[];
|
|
504
|
-
views: string[];
|
|
505
|
-
storedProcedures: string[];
|
|
506
|
-
triggers: string[];
|
|
507
|
-
rowLevelSecurityPolicies: string[];
|
|
508
|
-
otherServices: string[];
|
|
509
|
-
}
|
|
510
|
-
interface OpenApiSpecification {
|
|
511
|
-
path: string;
|
|
512
|
-
format: 'json' | 'yaml' | 'yml';
|
|
513
|
-
version: string | null;
|
|
514
|
-
title: string | null;
|
|
515
|
-
endpointCount: number | null;
|
|
516
|
-
}
|
|
517
|
-
interface ApiIntegration {
|
|
518
|
-
provider: string;
|
|
519
|
-
endpoint: string;
|
|
520
|
-
version: string | null;
|
|
521
|
-
parameters: string[];
|
|
522
|
-
configOptions: string[];
|
|
523
|
-
authHints: string[];
|
|
524
|
-
files: string[];
|
|
525
|
-
}
|
|
526
|
-
interface ApiSurfaceResult {
|
|
527
|
-
integrations: ApiIntegration[];
|
|
528
|
-
openApiSpecifications: OpenApiSpecification[];
|
|
529
|
-
webhookUrls: string[];
|
|
530
|
-
callbackEndpoints: string[];
|
|
531
|
-
apiVersionPins: string[];
|
|
532
|
-
tokenExpirationPolicies: string[];
|
|
533
|
-
rateLimitOverrides: string[];
|
|
534
|
-
customHeaders: string[];
|
|
535
|
-
corsPolicies: string[];
|
|
536
|
-
oauthScopes: string[];
|
|
537
|
-
apiTokens: string[];
|
|
538
|
-
}
|
|
539
|
-
interface OperationalResilienceResult {
|
|
540
|
-
implicitTimeouts: string[];
|
|
541
|
-
defaultPaginationSize: string[];
|
|
542
|
-
implicitRetryLogic: string[];
|
|
543
|
-
defaultLocale: string[];
|
|
544
|
-
defaultCurrency: string[];
|
|
545
|
-
implicitTimezone: string[];
|
|
546
|
-
defaultCharacterEncoding: string[];
|
|
547
|
-
sessionStores: string[];
|
|
548
|
-
distributedLocks: string[];
|
|
549
|
-
jobSchedulers: string[];
|
|
550
|
-
idempotencyKeys: string[];
|
|
551
|
-
rateLimitingCounters: string[];
|
|
552
|
-
circuitBreakerState: string[];
|
|
553
|
-
abTestToggles: string[];
|
|
554
|
-
regionalEnablementRules: string[];
|
|
555
|
-
betaAccessGroups: string[];
|
|
556
|
-
licensingEnforcementLogic: string[];
|
|
557
|
-
killSwitches: string[];
|
|
558
|
-
connectorRetryLogic: string[];
|
|
559
|
-
apiPollingIntervals: string[];
|
|
560
|
-
fieldMappings: string[];
|
|
561
|
-
schemaRegistryRules: string[];
|
|
562
|
-
deadLetterQueueBehavior: string[];
|
|
563
|
-
dataMaskingRules: string[];
|
|
564
|
-
transformationLogic: string[];
|
|
565
|
-
timezoneHandling: string[];
|
|
566
|
-
encryptionSettings: string[];
|
|
567
|
-
hardcodedSecretSignals: string[];
|
|
568
|
-
}
|
|
569
|
-
interface AssetBrandingResult {
|
|
570
|
-
faviconFiles: Array<{
|
|
571
|
-
path: string;
|
|
572
|
-
base64: string;
|
|
573
|
-
}>;
|
|
574
|
-
productLogos: string[];
|
|
575
|
-
}
|
|
576
|
-
interface OssGovernanceResult {
|
|
577
|
-
directDependencies: number;
|
|
578
|
-
transitiveDependencies: number;
|
|
579
|
-
knownVulnerabilities: string[];
|
|
580
|
-
licenseRisks: string[];
|
|
581
|
-
}
|
|
582
|
-
interface ExtendedScanResults {
|
|
583
|
-
platformMatrix?: PlatformMatrixResult;
|
|
584
|
-
dependencyRisk?: DependencyRiskResult;
|
|
585
|
-
dependencyGraph?: DependencyGraphResult;
|
|
586
|
-
toolingInventory?: ToolingInventoryResult;
|
|
587
|
-
buildDeploy?: BuildDeployResult;
|
|
588
|
-
tsModernity?: TsModernityResult;
|
|
589
|
-
breakingChangeExposure?: BreakingChangeExposureResult;
|
|
590
|
-
fileHotspots?: FileHotspotsResult;
|
|
591
|
-
securityPosture?: SecurityPostureResult;
|
|
592
|
-
serviceDependencies?: ServiceDependenciesResult;
|
|
593
|
-
architecture?: ArchitectureResult;
|
|
594
|
-
codeQuality?: CodeQualityResult;
|
|
595
|
-
uiPurpose?: UiPurposeResult;
|
|
596
|
-
runtimeConfiguration?: RuntimeConfigurationResult;
|
|
597
|
-
dataStores?: DataStoresResult;
|
|
598
|
-
apiSurface?: ApiSurfaceResult;
|
|
599
|
-
operationalResilience?: OperationalResilienceResult;
|
|
600
|
-
assetBranding?: AssetBrandingResult;
|
|
601
|
-
ossGovernance?: OssGovernanceResult;
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
declare function runScan(rootDir: string, opts: ScanOptions): Promise<ScanArtifact>;
|
|
605
|
-
|
|
606
|
-
declare function computeDriftScore(projects: ProjectScan[]): DriftScore;
|
|
607
|
-
declare function generateFindings(projects: ProjectScan[], config?: VibgrateConfig): Finding[];
|
|
608
|
-
|
|
609
|
-
declare function formatText(artifact: ScanArtifact): string;
|
|
610
|
-
|
|
611
|
-
/** Generate a SARIF 2.1.0 document from scan artifact */
|
|
612
|
-
declare function formatSarif(artifact: ScanArtifact): object;
|
|
613
|
-
|
|
614
|
-
/** Generate a Markdown report from scan artifact */
|
|
615
|
-
declare function formatMarkdown(artifact: ScanArtifact): string;
|
|
616
|
-
|
|
617
|
-
export { type DependencyRow, type DriftScore, type Finding, type ProjectScan, type RiskLevel, type ScanArtifact, type ScanOptions, type VibgrateConfig, computeDriftScore, formatMarkdown, formatSarif, formatText, generateFindings, runScan };
|
|
1
|
+
export { DependencyRow, DriftScore, Finding, ProjectScan, RiskLevel, ScanArtifact, ScanOptions, VibgrateConfig, computeDriftScore, formatMarkdown, formatSarif, formatText, generateFindings, runScan } from '@vibgrate/core';
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import "./chunk-JSBRDJBE.js";
|
|
2
|
+
|
|
3
|
+
// src/index.ts
|
|
1
4
|
import {
|
|
5
|
+
runScan,
|
|
2
6
|
computeDriftScore,
|
|
3
|
-
formatMarkdown,
|
|
4
|
-
formatSarif,
|
|
5
|
-
formatText,
|
|
6
7
|
generateFindings,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
formatText,
|
|
9
|
+
formatSarif,
|
|
10
|
+
formatMarkdown
|
|
11
|
+
} from "@vibgrate/core";
|
|
10
12
|
export {
|
|
11
13
|
computeDriftScore,
|
|
12
14
|
formatMarkdown,
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibgrate/cli",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.6.5",
|
|
4
4
|
"description": "CLI for measuring upgrade drift across Node, .NET, Python & Java projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"vibgrate": "
|
|
7
|
+
"vibgrate": "dist/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"main": "./dist/index.js",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"HCS-RUNTIME-SETUP.md"
|
|
22
22
|
],
|
|
23
23
|
"scripts": {
|
|
24
|
-
"build": "pnpm run build:hcs && tsup
|
|
25
|
-
"build:only": "pnpm run build:hcs && tsup
|
|
24
|
+
"build": "pnpm run build:hcs && tsup && pnpm run bundle:hcs && pnpm test:solutions",
|
|
25
|
+
"build:only": "pnpm run build:hcs && tsup && pnpm run bundle:hcs",
|
|
26
26
|
"build:hcs": "pnpm --filter @vibgrate/hcs-node-worker build",
|
|
27
27
|
"bundle:hcs": "cp ../vibgrate-hcs/node/dist/main.js dist/hcs-worker.js",
|
|
28
28
|
"dev": "tsx src/cli.ts",
|
|
@@ -49,17 +49,18 @@
|
|
|
49
49
|
"@types/node": "^20.0.0",
|
|
50
50
|
"@types/semver": "^7.5.0",
|
|
51
51
|
"eslint": "^9.0.0",
|
|
52
|
+
"fast-xml-parser": "^4.3.0",
|
|
53
|
+
"semver": "^7.6.0",
|
|
52
54
|
"tsup": "^8.0.0",
|
|
53
55
|
"tsx": "^4.0.0",
|
|
56
|
+
"typescript": "^5.4.0",
|
|
54
57
|
"vitest": "^2.0.0",
|
|
55
58
|
"@vibgrate/hcs-node-worker": "workspace:*"
|
|
56
59
|
},
|
|
57
60
|
"dependencies": {
|
|
61
|
+
"@vibgrate/core": "workspace:*",
|
|
58
62
|
"chalk": "^5.3.0",
|
|
59
63
|
"commander": "^12.0.0",
|
|
60
|
-
"fast-xml-parser": "^4.3.0",
|
|
61
|
-
"semver": "^7.6.0",
|
|
62
|
-
"typescript": "^5.4.0",
|
|
63
64
|
"zod": "^3.23.0"
|
|
64
65
|
},
|
|
65
66
|
"engines": {
|