@quantracode/vibecheck 0.0.1 → 0.0.2
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/README.md +6 -6
- package/dist/index.d.ts +0 -2
- package/dist/index.js +7902 -8
- package/package.json +13 -7
- package/dist/__tests__/cli.test.d.ts +0 -2
- package/dist/__tests__/cli.test.d.ts.map +0 -1
- package/dist/__tests__/cli.test.js +0 -243
- package/dist/__tests__/fixtures/safe-app/app/api/users/route.js +0 -36
- package/dist/__tests__/fixtures/vulnerable-app/app/api/users/route.js +0 -28
- package/dist/__tests__/fixtures/vulnerable-app/lib/config.d.ts +0 -4
- package/dist/__tests__/fixtures/vulnerable-app/lib/config.d.ts.map +0 -1
- package/dist/__tests__/fixtures/vulnerable-app/lib/config.js +0 -6
- package/dist/__tests__/scanners/env-config.test.d.ts +0 -2
- package/dist/__tests__/scanners/env-config.test.d.ts.map +0 -1
- package/dist/__tests__/scanners/env-config.test.js +0 -142
- package/dist/__tests__/scanners/nextjs-middleware.test.d.ts +0 -2
- package/dist/__tests__/scanners/nextjs-middleware.test.d.ts.map +0 -1
- package/dist/__tests__/scanners/nextjs-middleware.test.js +0 -193
- package/dist/__tests__/scanners/scanner-packs.test.d.ts +0 -2
- package/dist/__tests__/scanners/scanner-packs.test.d.ts.map +0 -1
- package/dist/__tests__/scanners/scanner-packs.test.js +0 -126
- package/dist/__tests__/scanners/unused-security-imports.test.d.ts +0 -2
- package/dist/__tests__/scanners/unused-security-imports.test.d.ts.map +0 -1
- package/dist/__tests__/scanners/unused-security-imports.test.js +0 -145
- package/dist/commands/demo-artifact.d.ts +0 -7
- package/dist/commands/demo-artifact.d.ts.map +0 -1
- package/dist/commands/demo-artifact.js +0 -322
- package/dist/commands/evaluate.d.ts +0 -30
- package/dist/commands/evaluate.d.ts.map +0 -1
- package/dist/commands/evaluate.js +0 -258
- package/dist/commands/explain.d.ts +0 -12
- package/dist/commands/explain.d.ts.map +0 -1
- package/dist/commands/explain.js +0 -214
- package/dist/commands/index.d.ts +0 -7
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js +0 -6
- package/dist/commands/intent.d.ts +0 -21
- package/dist/commands/intent.d.ts.map +0 -1
- package/dist/commands/intent.js +0 -192
- package/dist/commands/scan.d.ts +0 -44
- package/dist/commands/scan.d.ts.map +0 -1
- package/dist/commands/scan.js +0 -497
- package/dist/commands/waivers.d.ts +0 -30
- package/dist/commands/waivers.d.ts.map +0 -1
- package/dist/commands/waivers.js +0 -249
- package/dist/index.d.ts.map +0 -1
- package/dist/phase3/index.d.ts +0 -11
- package/dist/phase3/index.d.ts.map +0 -1
- package/dist/phase3/index.js +0 -12
- package/dist/phase3/intent-miner.d.ts +0 -32
- package/dist/phase3/intent-miner.d.ts.map +0 -1
- package/dist/phase3/intent-miner.js +0 -323
- package/dist/phase3/proof-trace-builder.d.ts +0 -42
- package/dist/phase3/proof-trace-builder.d.ts.map +0 -1
- package/dist/phase3/proof-trace-builder.js +0 -441
- package/dist/phase3/scanners/auth-by-ui-server-gap.d.ts +0 -15
- package/dist/phase3/scanners/auth-by-ui-server-gap.d.ts.map +0 -1
- package/dist/phase3/scanners/auth-by-ui-server-gap.js +0 -237
- package/dist/phase3/scanners/comment-claim-unproven.d.ts +0 -14
- package/dist/phase3/scanners/comment-claim-unproven.d.ts.map +0 -1
- package/dist/phase3/scanners/comment-claim-unproven.js +0 -161
- package/dist/phase3/scanners/index.d.ts +0 -31
- package/dist/phase3/scanners/index.d.ts.map +0 -1
- package/dist/phase3/scanners/index.js +0 -40
- package/dist/phase3/scanners/middleware-assumed-not-matching.d.ts +0 -14
- package/dist/phase3/scanners/middleware-assumed-not-matching.d.ts.map +0 -1
- package/dist/phase3/scanners/middleware-assumed-not-matching.js +0 -172
- package/dist/phase3/scanners/validation-claimed-missing.d.ts +0 -15
- package/dist/phase3/scanners/validation-claimed-missing.d.ts.map +0 -1
- package/dist/phase3/scanners/validation-claimed-missing.js +0 -204
- package/dist/scanners/abuse/compute-abuse.d.ts +0 -20
- package/dist/scanners/abuse/compute-abuse.d.ts.map +0 -1
- package/dist/scanners/abuse/compute-abuse.js +0 -509
- package/dist/scanners/abuse/index.d.ts +0 -12
- package/dist/scanners/abuse/index.d.ts.map +0 -1
- package/dist/scanners/abuse/index.js +0 -15
- package/dist/scanners/auth/index.d.ts +0 -5
- package/dist/scanners/auth/index.d.ts.map +0 -1
- package/dist/scanners/auth/index.js +0 -10
- package/dist/scanners/auth/middleware-gap.d.ts +0 -22
- package/dist/scanners/auth/middleware-gap.d.ts.map +0 -1
- package/dist/scanners/auth/middleware-gap.js +0 -203
- package/dist/scanners/auth/unprotected-api-route.d.ts +0 -12
- package/dist/scanners/auth/unprotected-api-route.d.ts.map +0 -1
- package/dist/scanners/auth/unprotected-api-route.js +0 -126
- package/dist/scanners/config/index.d.ts +0 -5
- package/dist/scanners/config/index.d.ts.map +0 -1
- package/dist/scanners/config/index.js +0 -10
- package/dist/scanners/config/insecure-defaults.d.ts +0 -12
- package/dist/scanners/config/insecure-defaults.d.ts.map +0 -1
- package/dist/scanners/config/insecure-defaults.js +0 -77
- package/dist/scanners/config/undocumented-env.d.ts +0 -24
- package/dist/scanners/config/undocumented-env.d.ts.map +0 -1
- package/dist/scanners/config/undocumented-env.js +0 -159
- package/dist/scanners/crypto/index.d.ts +0 -6
- package/dist/scanners/crypto/index.d.ts.map +0 -1
- package/dist/scanners/crypto/index.js +0 -11
- package/dist/scanners/crypto/jwt-decode-unverified.d.ts +0 -14
- package/dist/scanners/crypto/jwt-decode-unverified.d.ts.map +0 -1
- package/dist/scanners/crypto/jwt-decode-unverified.js +0 -87
- package/dist/scanners/crypto/math-random-tokens.d.ts +0 -13
- package/dist/scanners/crypto/math-random-tokens.d.ts.map +0 -1
- package/dist/scanners/crypto/math-random-tokens.js +0 -80
- package/dist/scanners/crypto/weak-hashing.d.ts +0 -11
- package/dist/scanners/crypto/weak-hashing.d.ts.map +0 -1
- package/dist/scanners/crypto/weak-hashing.js +0 -95
- package/dist/scanners/env-config.d.ts +0 -24
- package/dist/scanners/env-config.d.ts.map +0 -1
- package/dist/scanners/env-config.js +0 -164
- package/dist/scanners/hallucinations/index.d.ts +0 -4
- package/dist/scanners/hallucinations/index.d.ts.map +0 -1
- package/dist/scanners/hallucinations/index.js +0 -8
- package/dist/scanners/hallucinations/unused-security-imports.d.ts +0 -36
- package/dist/scanners/hallucinations/unused-security-imports.d.ts.map +0 -1
- package/dist/scanners/hallucinations/unused-security-imports.js +0 -309
- package/dist/scanners/helpers/ast-helpers.d.ts +0 -6
- package/dist/scanners/helpers/ast-helpers.d.ts.map +0 -1
- package/dist/scanners/helpers/ast-helpers.js +0 -945
- package/dist/scanners/helpers/context-builder.d.ts +0 -17
- package/dist/scanners/helpers/context-builder.d.ts.map +0 -1
- package/dist/scanners/helpers/context-builder.js +0 -148
- package/dist/scanners/helpers/index.d.ts +0 -3
- package/dist/scanners/helpers/index.d.ts.map +0 -1
- package/dist/scanners/helpers/index.js +0 -2
- package/dist/scanners/index.d.ts +0 -30
- package/dist/scanners/index.d.ts.map +0 -1
- package/dist/scanners/index.js +0 -102
- package/dist/scanners/middleware/index.d.ts +0 -4
- package/dist/scanners/middleware/index.d.ts.map +0 -1
- package/dist/scanners/middleware/index.js +0 -7
- package/dist/scanners/middleware/missing-rate-limit.d.ts +0 -13
- package/dist/scanners/middleware/missing-rate-limit.d.ts.map +0 -1
- package/dist/scanners/middleware/missing-rate-limit.js +0 -140
- package/dist/scanners/network/cors-misconfiguration.d.ts +0 -14
- package/dist/scanners/network/cors-misconfiguration.d.ts.map +0 -1
- package/dist/scanners/network/cors-misconfiguration.js +0 -89
- package/dist/scanners/network/index.d.ts +0 -7
- package/dist/scanners/network/index.d.ts.map +0 -1
- package/dist/scanners/network/index.js +0 -18
- package/dist/scanners/network/missing-timeout.d.ts +0 -15
- package/dist/scanners/network/missing-timeout.d.ts.map +0 -1
- package/dist/scanners/network/missing-timeout.js +0 -93
- package/dist/scanners/network/open-redirect.d.ts +0 -15
- package/dist/scanners/network/open-redirect.d.ts.map +0 -1
- package/dist/scanners/network/open-redirect.js +0 -88
- package/dist/scanners/network/ssrf-prone-fetch.d.ts +0 -12
- package/dist/scanners/network/ssrf-prone-fetch.d.ts.map +0 -1
- package/dist/scanners/network/ssrf-prone-fetch.js +0 -90
- package/dist/scanners/nextjs-middleware.d.ts +0 -26
- package/dist/scanners/nextjs-middleware.d.ts.map +0 -1
- package/dist/scanners/nextjs-middleware.js +0 -246
- package/dist/scanners/privacy/debug-flags.d.ts +0 -13
- package/dist/scanners/privacy/debug-flags.d.ts.map +0 -1
- package/dist/scanners/privacy/debug-flags.js +0 -124
- package/dist/scanners/privacy/index.d.ts +0 -6
- package/dist/scanners/privacy/index.d.ts.map +0 -1
- package/dist/scanners/privacy/index.js +0 -11
- package/dist/scanners/privacy/over-broad-response.d.ts +0 -15
- package/dist/scanners/privacy/over-broad-response.d.ts.map +0 -1
- package/dist/scanners/privacy/over-broad-response.js +0 -109
- package/dist/scanners/privacy/sensitive-logging.d.ts +0 -11
- package/dist/scanners/privacy/sensitive-logging.d.ts.map +0 -1
- package/dist/scanners/privacy/sensitive-logging.js +0 -78
- package/dist/scanners/types.d.ts +0 -456
- package/dist/scanners/types.d.ts.map +0 -1
- package/dist/scanners/types.js +0 -16
- package/dist/scanners/unused-security-imports.d.ts +0 -34
- package/dist/scanners/unused-security-imports.d.ts.map +0 -1
- package/dist/scanners/unused-security-imports.js +0 -206
- package/dist/scanners/uploads/index.d.ts +0 -5
- package/dist/scanners/uploads/index.d.ts.map +0 -1
- package/dist/scanners/uploads/index.js +0 -9
- package/dist/scanners/uploads/missing-constraints.d.ts +0 -15
- package/dist/scanners/uploads/missing-constraints.d.ts.map +0 -1
- package/dist/scanners/uploads/missing-constraints.js +0 -109
- package/dist/scanners/uploads/public-path.d.ts +0 -11
- package/dist/scanners/uploads/public-path.d.ts.map +0 -1
- package/dist/scanners/uploads/public-path.js +0 -87
- package/dist/scanners/validation/client-side-only.d.ts +0 -14
- package/dist/scanners/validation/client-side-only.d.ts.map +0 -1
- package/dist/scanners/validation/client-side-only.js +0 -140
- package/dist/scanners/validation/ignored-validation.d.ts +0 -12
- package/dist/scanners/validation/ignored-validation.d.ts.map +0 -1
- package/dist/scanners/validation/ignored-validation.js +0 -119
- package/dist/scanners/validation/index.d.ts +0 -5
- package/dist/scanners/validation/index.d.ts.map +0 -1
- package/dist/scanners/validation/index.js +0 -9
- package/dist/utils/exclude-patterns.d.ts +0 -35
- package/dist/utils/exclude-patterns.d.ts.map +0 -1
- package/dist/utils/exclude-patterns.js +0 -78
- package/dist/utils/file-utils.d.ts +0 -37
- package/dist/utils/file-utils.d.ts.map +0 -1
- package/dist/utils/file-utils.js +0 -77
- package/dist/utils/fingerprint.d.ts +0 -25
- package/dist/utils/fingerprint.d.ts.map +0 -1
- package/dist/utils/fingerprint.js +0 -28
- package/dist/utils/git-info.d.ts +0 -14
- package/dist/utils/git-info.d.ts.map +0 -1
- package/dist/utils/git-info.js +0 -55
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -3
- package/dist/utils/progress.d.ts +0 -42
- package/dist/utils/progress.d.ts.map +0 -1
- package/dist/utils/progress.js +0 -165
- package/dist/utils/sarif-formatter.d.ts +0 -92
- package/dist/utils/sarif-formatter.d.ts.map +0 -1
- package/dist/utils/sarif-formatter.js +0 -172
package/dist/scanners/types.d.ts
DELETED
|
@@ -1,456 +0,0 @@
|
|
|
1
|
-
import type { Finding } from "@vibecheck/schema";
|
|
2
|
-
import type { SourceFile, Node, FunctionDeclaration, ArrowFunction, FunctionExpression } from "ts-morph";
|
|
3
|
-
/**
|
|
4
|
-
* Repository metadata extracted from package.json and environment
|
|
5
|
-
*/
|
|
6
|
-
export interface RepoMeta {
|
|
7
|
-
/** Dependencies from package.json */
|
|
8
|
-
dependencies: Record<string, string>;
|
|
9
|
-
/** Dev dependencies from package.json */
|
|
10
|
-
devDependencies: Record<string, string>;
|
|
11
|
-
/** Detected framework (next, express, etc.) */
|
|
12
|
-
framework: "next" | "express" | "fastify" | "koa" | "unknown";
|
|
13
|
-
/** Whether the project uses TypeScript */
|
|
14
|
-
hasTypeScript: boolean;
|
|
15
|
-
/** Whether next-auth is present */
|
|
16
|
-
hasNextAuth: boolean;
|
|
17
|
-
/** Whether prisma is present */
|
|
18
|
-
hasPrisma: boolean;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* File index for quick lookups
|
|
22
|
-
*/
|
|
23
|
-
export interface FileIndex {
|
|
24
|
-
/** All .ts, .tsx, .js, .jsx files */
|
|
25
|
-
allSourceFiles: string[];
|
|
26
|
-
/** TypeScript/TSX files only */
|
|
27
|
-
tsTsxFiles: string[];
|
|
28
|
-
/** Config files (.env*, *.config.*, etc.) */
|
|
29
|
-
configFiles: string[];
|
|
30
|
-
/** Next.js App Router route files (route.ts/js) */
|
|
31
|
-
routeFiles: string[];
|
|
32
|
-
/** Next.js middleware file path if exists */
|
|
33
|
-
middlewareFile?: string;
|
|
34
|
-
/** API route files specifically */
|
|
35
|
-
apiRouteFiles: string[];
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Function node types that can be handlers
|
|
39
|
-
*/
|
|
40
|
-
export type FunctionNode = FunctionDeclaration | ArrowFunction | FunctionExpression;
|
|
41
|
-
/**
|
|
42
|
-
* AST helpers for scanner use
|
|
43
|
-
*/
|
|
44
|
-
export interface AstHelpers {
|
|
45
|
-
/** Parse a source file with ts-morph */
|
|
46
|
-
parseFile(filePath: string): SourceFile | null;
|
|
47
|
-
/** Find exported route handlers (GET, POST, etc.) in Next.js route file */
|
|
48
|
-
findRouteHandlers(sourceFile: SourceFile): RouteHandler[];
|
|
49
|
-
/** Check if a function contains auth checks */
|
|
50
|
-
containsAuthCheck(node: FunctionNode): boolean;
|
|
51
|
-
/** Find database sink calls (prisma, sql, etc.) */
|
|
52
|
-
findDbSinks(node: FunctionNode): DbSink[];
|
|
53
|
-
/** Find validation usage (zod, yup, joi) */
|
|
54
|
-
findValidationUsage(node: FunctionNode): ValidationUsage[];
|
|
55
|
-
/** Find console/logger calls with sensitive data */
|
|
56
|
-
findSensitiveLogCalls(node: FunctionNode): SensitiveLogCall[];
|
|
57
|
-
/** Find insecure default fallbacks for env vars */
|
|
58
|
-
findInsecureDefaults(sourceFile: SourceFile): InsecureDefault[];
|
|
59
|
-
/** Find SSRF-prone fetch calls */
|
|
60
|
-
findSsrfProneFetch(node: FunctionNode): SsrfProneFetch[];
|
|
61
|
-
/** Get the text/content of a node */
|
|
62
|
-
getNodeText(node: Node): string;
|
|
63
|
-
/** Get line number of a node */
|
|
64
|
-
getNodeLine(node: Node): number;
|
|
65
|
-
/** Find redirect calls with user-controlled input */
|
|
66
|
-
findRedirectCalls(node: FunctionNode): RedirectCall[];
|
|
67
|
-
/** Find CORS configuration in file */
|
|
68
|
-
findCorsConfig(sourceFile: SourceFile): CorsConfig[];
|
|
69
|
-
/** Find outbound HTTP calls (fetch/axios) */
|
|
70
|
-
findOutboundCalls(node: FunctionNode): OutboundCall[];
|
|
71
|
-
/** Find Prisma queries that may expose too much data */
|
|
72
|
-
findPrismaQueries(node: FunctionNode): PrismaQuery[];
|
|
73
|
-
/** Find Math.random usage in sensitive contexts */
|
|
74
|
-
findMathRandomUsage(sourceFile: SourceFile): MathRandomUsage[];
|
|
75
|
-
/** Find JWT decode without verify */
|
|
76
|
-
findJwtDecodeWithoutVerify(sourceFile: SourceFile): JwtDecodeCall[];
|
|
77
|
-
/** Find weak hash usage */
|
|
78
|
-
findWeakHashUsage(sourceFile: SourceFile): WeakHashUsage[];
|
|
79
|
-
/** Find file upload handlers */
|
|
80
|
-
findFileUploadHandlers(node: FunctionNode): FileUploadHandler[];
|
|
81
|
-
/** Find file writes to public directories */
|
|
82
|
-
findPublicFileWrites(sourceFile: SourceFile): PublicFileWrite[];
|
|
83
|
-
/** Check if file contains rate limiting signals */
|
|
84
|
-
hasRateLimitSignals(sourceFile: SourceFile): boolean;
|
|
85
|
-
/** Check if file contains validation schemas */
|
|
86
|
-
hasValidationSchemas(sourceFile: SourceFile): boolean;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Route handler information
|
|
90
|
-
*/
|
|
91
|
-
export interface RouteHandler {
|
|
92
|
-
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
|
|
93
|
-
functionNode: FunctionNode;
|
|
94
|
-
exportName: string;
|
|
95
|
-
startLine: number;
|
|
96
|
-
endLine: number;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Database sink call information
|
|
100
|
-
*/
|
|
101
|
-
export interface DbSink {
|
|
102
|
-
kind: "prisma" | "sql" | "knex" | "drizzle" | "export";
|
|
103
|
-
operation: string;
|
|
104
|
-
node: Node;
|
|
105
|
-
line: number;
|
|
106
|
-
snippet: string;
|
|
107
|
-
isCritical: boolean;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Validation usage information
|
|
111
|
-
*/
|
|
112
|
-
export interface ValidationUsage {
|
|
113
|
-
library: "zod" | "yup" | "joi";
|
|
114
|
-
method: string;
|
|
115
|
-
resultAssigned: boolean;
|
|
116
|
-
resultUsed: boolean;
|
|
117
|
-
rawBodyUsedAfter: boolean;
|
|
118
|
-
node: Node;
|
|
119
|
-
line: number;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Sensitive log call information
|
|
123
|
-
*/
|
|
124
|
-
export interface SensitiveLogCall {
|
|
125
|
-
logMethod: string;
|
|
126
|
-
sensitiveVars: string[];
|
|
127
|
-
severity: "high" | "medium";
|
|
128
|
-
node: Node;
|
|
129
|
-
line: number;
|
|
130
|
-
snippet: string;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Insecure default fallback information
|
|
134
|
-
*/
|
|
135
|
-
export interface InsecureDefault {
|
|
136
|
-
envVar: string;
|
|
137
|
-
fallbackValue: string;
|
|
138
|
-
isCritical: boolean;
|
|
139
|
-
node: Node;
|
|
140
|
-
line: number;
|
|
141
|
-
snippet: string;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* SSRF-prone fetch call information
|
|
145
|
-
*/
|
|
146
|
-
export interface SsrfProneFetch {
|
|
147
|
-
fetchMethod: string;
|
|
148
|
-
userInputSource: string;
|
|
149
|
-
node: Node;
|
|
150
|
-
line: number;
|
|
151
|
-
snippet: string;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Redirect call information for open redirect detection
|
|
155
|
-
*/
|
|
156
|
-
export interface RedirectCall {
|
|
157
|
-
method: string;
|
|
158
|
-
targetExpression: string;
|
|
159
|
-
isUserControlled: boolean;
|
|
160
|
-
userControlledSource?: string;
|
|
161
|
-
node: Node;
|
|
162
|
-
line: number;
|
|
163
|
-
snippet: string;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* CORS configuration information
|
|
167
|
-
*/
|
|
168
|
-
export interface CorsConfig {
|
|
169
|
-
hasWildcardOrigin: boolean;
|
|
170
|
-
hasCredentials: boolean;
|
|
171
|
-
originValue?: string;
|
|
172
|
-
credentialsValue?: string;
|
|
173
|
-
node: Node;
|
|
174
|
-
line: number;
|
|
175
|
-
snippet: string;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Outbound HTTP call information
|
|
179
|
-
*/
|
|
180
|
-
export interface OutboundCall {
|
|
181
|
-
method: string;
|
|
182
|
-
urlExpression: string;
|
|
183
|
-
hasTimeout: boolean;
|
|
184
|
-
isExternalUrl: boolean;
|
|
185
|
-
node: Node;
|
|
186
|
-
line: number;
|
|
187
|
-
snippet: string;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Prisma query information for over-broad response detection
|
|
191
|
-
*/
|
|
192
|
-
export interface PrismaQuery {
|
|
193
|
-
model: string;
|
|
194
|
-
operation: string;
|
|
195
|
-
hasSelect: boolean;
|
|
196
|
-
hasInclude: boolean;
|
|
197
|
-
isDirectlyReturned: boolean;
|
|
198
|
-
node: Node;
|
|
199
|
-
line: number;
|
|
200
|
-
snippet: string;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Math.random token usage
|
|
204
|
-
*/
|
|
205
|
-
export interface MathRandomUsage {
|
|
206
|
-
variableName: string;
|
|
207
|
-
isSensitiveContext: boolean;
|
|
208
|
-
node: Node;
|
|
209
|
-
line: number;
|
|
210
|
-
snippet: string;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* JWT decode call without verify
|
|
214
|
-
*/
|
|
215
|
-
export interface JwtDecodeCall {
|
|
216
|
-
hasVerifyInFile: boolean;
|
|
217
|
-
node: Node;
|
|
218
|
-
line: number;
|
|
219
|
-
snippet: string;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Weak hash usage
|
|
223
|
-
*/
|
|
224
|
-
export interface WeakHashUsage {
|
|
225
|
-
algorithm: string;
|
|
226
|
-
isPasswordContext: boolean;
|
|
227
|
-
node: Node;
|
|
228
|
-
line: number;
|
|
229
|
-
snippet: string;
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* File upload handler information
|
|
233
|
-
*/
|
|
234
|
-
export interface FileUploadHandler {
|
|
235
|
-
uploadMethod: string;
|
|
236
|
-
hasSizeCheck: boolean;
|
|
237
|
-
hasTypeCheck: boolean;
|
|
238
|
-
hasLimits: boolean;
|
|
239
|
-
node: Node;
|
|
240
|
-
line: number;
|
|
241
|
-
snippet: string;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* File write to public path
|
|
245
|
-
*/
|
|
246
|
-
export interface PublicFileWrite {
|
|
247
|
-
writePath: string;
|
|
248
|
-
isPublicDir: boolean;
|
|
249
|
-
usesUserFilename: boolean;
|
|
250
|
-
node: Node;
|
|
251
|
-
line: number;
|
|
252
|
-
snippet: string;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Parsed Prisma model information
|
|
256
|
-
*/
|
|
257
|
-
export interface PrismaModelInfo {
|
|
258
|
-
name: string;
|
|
259
|
-
fields: string[];
|
|
260
|
-
hasSensitiveFields: boolean;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Prisma schema parsed info
|
|
264
|
-
*/
|
|
265
|
-
export interface PrismaSchemaInfo {
|
|
266
|
-
models: Map<string, PrismaModelInfo>;
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Framework detection hints
|
|
270
|
-
*/
|
|
271
|
-
export interface FrameworkHints {
|
|
272
|
-
isNext: boolean;
|
|
273
|
-
isExpress: boolean;
|
|
274
|
-
hasPrisma: boolean;
|
|
275
|
-
hasNextAuth: boolean;
|
|
276
|
-
hasMulter: boolean;
|
|
277
|
-
hasFormidable: boolean;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Progress callback for file processing
|
|
281
|
-
*/
|
|
282
|
-
export type FileProgressCallback = (file: string, index: number, total: number) => void;
|
|
283
|
-
/**
|
|
284
|
-
* Context passed to each scanner
|
|
285
|
-
*/
|
|
286
|
-
export interface ScanContext {
|
|
287
|
-
/** Absolute path to the target directory being scanned */
|
|
288
|
-
repoRoot: string;
|
|
289
|
-
/** Indexed files for quick lookup */
|
|
290
|
-
fileIndex: FileIndex;
|
|
291
|
-
/** Repository metadata */
|
|
292
|
-
repoMeta: RepoMeta;
|
|
293
|
-
/** AST helpers */
|
|
294
|
-
helpers: AstHelpers;
|
|
295
|
-
/** Framework detection hints */
|
|
296
|
-
frameworkHints: FrameworkHints;
|
|
297
|
-
/** Prisma schema information if available */
|
|
298
|
-
prismaSchemaInfo?: PrismaSchemaInfo;
|
|
299
|
-
/** Optional callback for file progress reporting */
|
|
300
|
-
onFileProgress?: FileProgressCallback;
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Scanner function signature
|
|
304
|
-
*/
|
|
305
|
-
export type Scanner = (context: ScanContext) => Promise<Finding[]>;
|
|
306
|
-
/**
|
|
307
|
-
* Scanner pack exports
|
|
308
|
-
*/
|
|
309
|
-
export interface ScannerPack {
|
|
310
|
-
/** Unique pack identifier */
|
|
311
|
-
id: string;
|
|
312
|
-
/** Human-readable name */
|
|
313
|
-
name: string;
|
|
314
|
-
/** Scanner functions in this pack */
|
|
315
|
-
scanners: Scanner[];
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Severity levels for comparison
|
|
319
|
-
*/
|
|
320
|
-
export declare const SEVERITY_ORDER: {
|
|
321
|
-
readonly critical: 4;
|
|
322
|
-
readonly high: 3;
|
|
323
|
-
readonly medium: 2;
|
|
324
|
-
readonly low: 1;
|
|
325
|
-
readonly info: 0;
|
|
326
|
-
};
|
|
327
|
-
/**
|
|
328
|
-
* Check if severity meets or exceeds threshold
|
|
329
|
-
*/
|
|
330
|
-
export declare function severityMeetsThreshold(severity: keyof typeof SEVERITY_ORDER, threshold: keyof typeof SEVERITY_ORDER): boolean;
|
|
331
|
-
/**
|
|
332
|
-
* Route information for route map
|
|
333
|
-
*/
|
|
334
|
-
export interface RouteInfo {
|
|
335
|
-
/** Stable unique identifier for the route */
|
|
336
|
-
routeId: string;
|
|
337
|
-
/** HTTP method */
|
|
338
|
-
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
|
|
339
|
-
/** URL path pattern */
|
|
340
|
-
path: string;
|
|
341
|
-
/** Source file path (relative) */
|
|
342
|
-
file: string;
|
|
343
|
-
/** Handler start line */
|
|
344
|
-
startLine: number;
|
|
345
|
-
/** Handler end line */
|
|
346
|
-
endLine: number;
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Middleware matcher information
|
|
350
|
-
*/
|
|
351
|
-
export interface MiddlewareInfo {
|
|
352
|
-
/** Source file path (relative) */
|
|
353
|
-
file: string;
|
|
354
|
-
/** Matcher patterns */
|
|
355
|
-
matchers: string[];
|
|
356
|
-
/** Whether it protects API routes */
|
|
357
|
-
protectsApi: boolean;
|
|
358
|
-
/** Start line of config */
|
|
359
|
-
startLine: number;
|
|
360
|
-
}
|
|
361
|
-
/**
|
|
362
|
-
* Claim types for intent mining (must match schema)
|
|
363
|
-
*/
|
|
364
|
-
export type IntentClaimType = "AUTH_ENFORCED" | "INPUT_VALIDATED" | "CSRF_ENABLED" | "RATE_LIMITED" | "ENCRYPTED_AT_REST" | "MIDDLEWARE_PROTECTED" | "OTHER";
|
|
365
|
-
/**
|
|
366
|
-
* Claim sources (must match schema)
|
|
367
|
-
*/
|
|
368
|
-
export type IntentClaimSource = "comment" | "identifier" | "import" | "doc" | "ui" | "config";
|
|
369
|
-
/**
|
|
370
|
-
* Claim scope (must match schema)
|
|
371
|
-
*/
|
|
372
|
-
export type IntentClaimScope = "route" | "module" | "global";
|
|
373
|
-
/**
|
|
374
|
-
* Claim strength (must match schema)
|
|
375
|
-
*/
|
|
376
|
-
export type IntentClaimStrength = "weak" | "medium" | "strong";
|
|
377
|
-
/**
|
|
378
|
-
* Intent claim mined from source code
|
|
379
|
-
*/
|
|
380
|
-
export interface IntentClaim {
|
|
381
|
-
/** Stable unique identifier */
|
|
382
|
-
intentId: string;
|
|
383
|
-
/** Type of security claim */
|
|
384
|
-
type: IntentClaimType;
|
|
385
|
-
/** Scope of the claim */
|
|
386
|
-
scope: IntentClaimScope;
|
|
387
|
-
/** Target route ID if applicable */
|
|
388
|
-
targetRouteId?: string;
|
|
389
|
-
/** Source of the claim */
|
|
390
|
-
source: IntentClaimSource;
|
|
391
|
-
/** Location in source */
|
|
392
|
-
location: {
|
|
393
|
-
file: string;
|
|
394
|
-
startLine: number;
|
|
395
|
-
endLine: number;
|
|
396
|
-
};
|
|
397
|
-
/** Strength of the claim */
|
|
398
|
-
strength: IntentClaimStrength;
|
|
399
|
-
/** Text evidence of the claim */
|
|
400
|
-
textEvidence: string;
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Proof trace step
|
|
404
|
-
*/
|
|
405
|
-
export interface ProofTraceStep {
|
|
406
|
-
/** File containing this step */
|
|
407
|
-
file: string;
|
|
408
|
-
/** Line number */
|
|
409
|
-
line: number;
|
|
410
|
-
/** Code snippet */
|
|
411
|
-
snippet: string;
|
|
412
|
-
/** Step label/description */
|
|
413
|
-
label: string;
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* Proof trace result
|
|
417
|
-
*/
|
|
418
|
-
export interface ProofTrace {
|
|
419
|
-
/** Route ID being traced */
|
|
420
|
-
routeId: string;
|
|
421
|
-
/** Whether auth was proven */
|
|
422
|
-
authProven: boolean;
|
|
423
|
-
/** Whether validation was proven */
|
|
424
|
-
validationProven: boolean;
|
|
425
|
-
/** Middleware coverage status */
|
|
426
|
-
middlewareCovered: boolean;
|
|
427
|
-
/** Trace steps showing the proof chain */
|
|
428
|
-
steps: ProofTraceStep[];
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* Coverage metrics for the scanned codebase
|
|
432
|
-
*/
|
|
433
|
-
export interface CoverageMetrics {
|
|
434
|
-
/** Auth coverage: routes with auth / total state-changing routes */
|
|
435
|
-
authCoverage: number;
|
|
436
|
-
/** Validation coverage: routes with validation / total routes with body */
|
|
437
|
-
validationCoverage: number;
|
|
438
|
-
/** Middleware coverage: routes covered by middleware / total routes */
|
|
439
|
-
middlewareCoverage: number;
|
|
440
|
-
}
|
|
441
|
-
/**
|
|
442
|
-
* Phase 3 extended scan context
|
|
443
|
-
*/
|
|
444
|
-
export interface Phase3Context extends ScanContext {
|
|
445
|
-
/** Route map */
|
|
446
|
-
routeMap: RouteInfo[];
|
|
447
|
-
/** Middleware map */
|
|
448
|
-
middlewareMap: MiddlewareInfo[];
|
|
449
|
-
/** Intent claims mined from source */
|
|
450
|
-
intentMap: IntentClaim[];
|
|
451
|
-
/** Proof traces for routes */
|
|
452
|
-
proofTraces: Map<string, ProofTrace>;
|
|
453
|
-
/** Coverage metrics */
|
|
454
|
-
coverage: CoverageMetrics;
|
|
455
|
-
}
|
|
456
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scanners/types.ts"],"names":[],"mappings":"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"}
|
package/dist/scanners/types.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Severity levels for comparison
|
|
3
|
-
*/
|
|
4
|
-
export const SEVERITY_ORDER = {
|
|
5
|
-
critical: 4,
|
|
6
|
-
high: 3,
|
|
7
|
-
medium: 2,
|
|
8
|
-
low: 1,
|
|
9
|
-
info: 0,
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Check if severity meets or exceeds threshold
|
|
13
|
-
*/
|
|
14
|
-
export function severityMeetsThreshold(severity, threshold) {
|
|
15
|
-
return SEVERITY_ORDER[severity] >= SEVERITY_ORDER[threshold];
|
|
16
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { Finding } from "@vibecheck/schema";
|
|
2
|
-
import type { ScanContext } from "./types.js";
|
|
3
|
-
interface ImportMatch {
|
|
4
|
-
library: string;
|
|
5
|
-
importedNames: string[];
|
|
6
|
-
line: number;
|
|
7
|
-
snippet: string;
|
|
8
|
-
isDefaultImport: boolean;
|
|
9
|
-
isNamespaceImport: boolean;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Find imports of security libraries in a file
|
|
13
|
-
*
|
|
14
|
-
* Limitations:
|
|
15
|
-
* - Uses regex, may match imports in comments
|
|
16
|
-
* - Does not handle dynamic imports: import('zod')
|
|
17
|
-
* - Does not track re-exports
|
|
18
|
-
*/
|
|
19
|
-
export declare function findSecurityImports(content: string, libraries: string[]): ImportMatch[];
|
|
20
|
-
/**
|
|
21
|
-
* Check if any imported identifiers are used after the import line
|
|
22
|
-
*/
|
|
23
|
-
export declare function checkIdentifierUsage(content: string, importLine: number, identifiers: string[], isNamespaceImport: boolean): {
|
|
24
|
-
identifier: string;
|
|
25
|
-
used: boolean;
|
|
26
|
-
}[];
|
|
27
|
-
/**
|
|
28
|
-
* Unused Security Imports Scanner
|
|
29
|
-
*
|
|
30
|
-
* Detects when security libraries are imported but not used
|
|
31
|
-
*/
|
|
32
|
-
export declare function scanUnusedSecurityImports(context: ScanContext): Promise<Finding[]>;
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=unused-security-imports.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unused-security-imports.d.ts","sourceRoot":"","sources":["../../src/scanners/unused-security-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAoC,MAAM,mBAAmB,CAAC;AAGnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqD9C,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAsEvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,EACrB,iBAAiB,EAAE,OAAO,GACzB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,CAmBzC;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAgFxF"}
|