@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.
Files changed (208) hide show
  1. package/README.md +6 -6
  2. package/dist/index.d.ts +0 -2
  3. package/dist/index.js +7902 -8
  4. package/package.json +13 -7
  5. package/dist/__tests__/cli.test.d.ts +0 -2
  6. package/dist/__tests__/cli.test.d.ts.map +0 -1
  7. package/dist/__tests__/cli.test.js +0 -243
  8. package/dist/__tests__/fixtures/safe-app/app/api/users/route.js +0 -36
  9. package/dist/__tests__/fixtures/vulnerable-app/app/api/users/route.js +0 -28
  10. package/dist/__tests__/fixtures/vulnerable-app/lib/config.d.ts +0 -4
  11. package/dist/__tests__/fixtures/vulnerable-app/lib/config.d.ts.map +0 -1
  12. package/dist/__tests__/fixtures/vulnerable-app/lib/config.js +0 -6
  13. package/dist/__tests__/scanners/env-config.test.d.ts +0 -2
  14. package/dist/__tests__/scanners/env-config.test.d.ts.map +0 -1
  15. package/dist/__tests__/scanners/env-config.test.js +0 -142
  16. package/dist/__tests__/scanners/nextjs-middleware.test.d.ts +0 -2
  17. package/dist/__tests__/scanners/nextjs-middleware.test.d.ts.map +0 -1
  18. package/dist/__tests__/scanners/nextjs-middleware.test.js +0 -193
  19. package/dist/__tests__/scanners/scanner-packs.test.d.ts +0 -2
  20. package/dist/__tests__/scanners/scanner-packs.test.d.ts.map +0 -1
  21. package/dist/__tests__/scanners/scanner-packs.test.js +0 -126
  22. package/dist/__tests__/scanners/unused-security-imports.test.d.ts +0 -2
  23. package/dist/__tests__/scanners/unused-security-imports.test.d.ts.map +0 -1
  24. package/dist/__tests__/scanners/unused-security-imports.test.js +0 -145
  25. package/dist/commands/demo-artifact.d.ts +0 -7
  26. package/dist/commands/demo-artifact.d.ts.map +0 -1
  27. package/dist/commands/demo-artifact.js +0 -322
  28. package/dist/commands/evaluate.d.ts +0 -30
  29. package/dist/commands/evaluate.d.ts.map +0 -1
  30. package/dist/commands/evaluate.js +0 -258
  31. package/dist/commands/explain.d.ts +0 -12
  32. package/dist/commands/explain.d.ts.map +0 -1
  33. package/dist/commands/explain.js +0 -214
  34. package/dist/commands/index.d.ts +0 -7
  35. package/dist/commands/index.d.ts.map +0 -1
  36. package/dist/commands/index.js +0 -6
  37. package/dist/commands/intent.d.ts +0 -21
  38. package/dist/commands/intent.d.ts.map +0 -1
  39. package/dist/commands/intent.js +0 -192
  40. package/dist/commands/scan.d.ts +0 -44
  41. package/dist/commands/scan.d.ts.map +0 -1
  42. package/dist/commands/scan.js +0 -497
  43. package/dist/commands/waivers.d.ts +0 -30
  44. package/dist/commands/waivers.d.ts.map +0 -1
  45. package/dist/commands/waivers.js +0 -249
  46. package/dist/index.d.ts.map +0 -1
  47. package/dist/phase3/index.d.ts +0 -11
  48. package/dist/phase3/index.d.ts.map +0 -1
  49. package/dist/phase3/index.js +0 -12
  50. package/dist/phase3/intent-miner.d.ts +0 -32
  51. package/dist/phase3/intent-miner.d.ts.map +0 -1
  52. package/dist/phase3/intent-miner.js +0 -323
  53. package/dist/phase3/proof-trace-builder.d.ts +0 -42
  54. package/dist/phase3/proof-trace-builder.d.ts.map +0 -1
  55. package/dist/phase3/proof-trace-builder.js +0 -441
  56. package/dist/phase3/scanners/auth-by-ui-server-gap.d.ts +0 -15
  57. package/dist/phase3/scanners/auth-by-ui-server-gap.d.ts.map +0 -1
  58. package/dist/phase3/scanners/auth-by-ui-server-gap.js +0 -237
  59. package/dist/phase3/scanners/comment-claim-unproven.d.ts +0 -14
  60. package/dist/phase3/scanners/comment-claim-unproven.d.ts.map +0 -1
  61. package/dist/phase3/scanners/comment-claim-unproven.js +0 -161
  62. package/dist/phase3/scanners/index.d.ts +0 -31
  63. package/dist/phase3/scanners/index.d.ts.map +0 -1
  64. package/dist/phase3/scanners/index.js +0 -40
  65. package/dist/phase3/scanners/middleware-assumed-not-matching.d.ts +0 -14
  66. package/dist/phase3/scanners/middleware-assumed-not-matching.d.ts.map +0 -1
  67. package/dist/phase3/scanners/middleware-assumed-not-matching.js +0 -172
  68. package/dist/phase3/scanners/validation-claimed-missing.d.ts +0 -15
  69. package/dist/phase3/scanners/validation-claimed-missing.d.ts.map +0 -1
  70. package/dist/phase3/scanners/validation-claimed-missing.js +0 -204
  71. package/dist/scanners/abuse/compute-abuse.d.ts +0 -20
  72. package/dist/scanners/abuse/compute-abuse.d.ts.map +0 -1
  73. package/dist/scanners/abuse/compute-abuse.js +0 -509
  74. package/dist/scanners/abuse/index.d.ts +0 -12
  75. package/dist/scanners/abuse/index.d.ts.map +0 -1
  76. package/dist/scanners/abuse/index.js +0 -15
  77. package/dist/scanners/auth/index.d.ts +0 -5
  78. package/dist/scanners/auth/index.d.ts.map +0 -1
  79. package/dist/scanners/auth/index.js +0 -10
  80. package/dist/scanners/auth/middleware-gap.d.ts +0 -22
  81. package/dist/scanners/auth/middleware-gap.d.ts.map +0 -1
  82. package/dist/scanners/auth/middleware-gap.js +0 -203
  83. package/dist/scanners/auth/unprotected-api-route.d.ts +0 -12
  84. package/dist/scanners/auth/unprotected-api-route.d.ts.map +0 -1
  85. package/dist/scanners/auth/unprotected-api-route.js +0 -126
  86. package/dist/scanners/config/index.d.ts +0 -5
  87. package/dist/scanners/config/index.d.ts.map +0 -1
  88. package/dist/scanners/config/index.js +0 -10
  89. package/dist/scanners/config/insecure-defaults.d.ts +0 -12
  90. package/dist/scanners/config/insecure-defaults.d.ts.map +0 -1
  91. package/dist/scanners/config/insecure-defaults.js +0 -77
  92. package/dist/scanners/config/undocumented-env.d.ts +0 -24
  93. package/dist/scanners/config/undocumented-env.d.ts.map +0 -1
  94. package/dist/scanners/config/undocumented-env.js +0 -159
  95. package/dist/scanners/crypto/index.d.ts +0 -6
  96. package/dist/scanners/crypto/index.d.ts.map +0 -1
  97. package/dist/scanners/crypto/index.js +0 -11
  98. package/dist/scanners/crypto/jwt-decode-unverified.d.ts +0 -14
  99. package/dist/scanners/crypto/jwt-decode-unverified.d.ts.map +0 -1
  100. package/dist/scanners/crypto/jwt-decode-unverified.js +0 -87
  101. package/dist/scanners/crypto/math-random-tokens.d.ts +0 -13
  102. package/dist/scanners/crypto/math-random-tokens.d.ts.map +0 -1
  103. package/dist/scanners/crypto/math-random-tokens.js +0 -80
  104. package/dist/scanners/crypto/weak-hashing.d.ts +0 -11
  105. package/dist/scanners/crypto/weak-hashing.d.ts.map +0 -1
  106. package/dist/scanners/crypto/weak-hashing.js +0 -95
  107. package/dist/scanners/env-config.d.ts +0 -24
  108. package/dist/scanners/env-config.d.ts.map +0 -1
  109. package/dist/scanners/env-config.js +0 -164
  110. package/dist/scanners/hallucinations/index.d.ts +0 -4
  111. package/dist/scanners/hallucinations/index.d.ts.map +0 -1
  112. package/dist/scanners/hallucinations/index.js +0 -8
  113. package/dist/scanners/hallucinations/unused-security-imports.d.ts +0 -36
  114. package/dist/scanners/hallucinations/unused-security-imports.d.ts.map +0 -1
  115. package/dist/scanners/hallucinations/unused-security-imports.js +0 -309
  116. package/dist/scanners/helpers/ast-helpers.d.ts +0 -6
  117. package/dist/scanners/helpers/ast-helpers.d.ts.map +0 -1
  118. package/dist/scanners/helpers/ast-helpers.js +0 -945
  119. package/dist/scanners/helpers/context-builder.d.ts +0 -17
  120. package/dist/scanners/helpers/context-builder.d.ts.map +0 -1
  121. package/dist/scanners/helpers/context-builder.js +0 -148
  122. package/dist/scanners/helpers/index.d.ts +0 -3
  123. package/dist/scanners/helpers/index.d.ts.map +0 -1
  124. package/dist/scanners/helpers/index.js +0 -2
  125. package/dist/scanners/index.d.ts +0 -30
  126. package/dist/scanners/index.d.ts.map +0 -1
  127. package/dist/scanners/index.js +0 -102
  128. package/dist/scanners/middleware/index.d.ts +0 -4
  129. package/dist/scanners/middleware/index.d.ts.map +0 -1
  130. package/dist/scanners/middleware/index.js +0 -7
  131. package/dist/scanners/middleware/missing-rate-limit.d.ts +0 -13
  132. package/dist/scanners/middleware/missing-rate-limit.d.ts.map +0 -1
  133. package/dist/scanners/middleware/missing-rate-limit.js +0 -140
  134. package/dist/scanners/network/cors-misconfiguration.d.ts +0 -14
  135. package/dist/scanners/network/cors-misconfiguration.d.ts.map +0 -1
  136. package/dist/scanners/network/cors-misconfiguration.js +0 -89
  137. package/dist/scanners/network/index.d.ts +0 -7
  138. package/dist/scanners/network/index.d.ts.map +0 -1
  139. package/dist/scanners/network/index.js +0 -18
  140. package/dist/scanners/network/missing-timeout.d.ts +0 -15
  141. package/dist/scanners/network/missing-timeout.d.ts.map +0 -1
  142. package/dist/scanners/network/missing-timeout.js +0 -93
  143. package/dist/scanners/network/open-redirect.d.ts +0 -15
  144. package/dist/scanners/network/open-redirect.d.ts.map +0 -1
  145. package/dist/scanners/network/open-redirect.js +0 -88
  146. package/dist/scanners/network/ssrf-prone-fetch.d.ts +0 -12
  147. package/dist/scanners/network/ssrf-prone-fetch.d.ts.map +0 -1
  148. package/dist/scanners/network/ssrf-prone-fetch.js +0 -90
  149. package/dist/scanners/nextjs-middleware.d.ts +0 -26
  150. package/dist/scanners/nextjs-middleware.d.ts.map +0 -1
  151. package/dist/scanners/nextjs-middleware.js +0 -246
  152. package/dist/scanners/privacy/debug-flags.d.ts +0 -13
  153. package/dist/scanners/privacy/debug-flags.d.ts.map +0 -1
  154. package/dist/scanners/privacy/debug-flags.js +0 -124
  155. package/dist/scanners/privacy/index.d.ts +0 -6
  156. package/dist/scanners/privacy/index.d.ts.map +0 -1
  157. package/dist/scanners/privacy/index.js +0 -11
  158. package/dist/scanners/privacy/over-broad-response.d.ts +0 -15
  159. package/dist/scanners/privacy/over-broad-response.d.ts.map +0 -1
  160. package/dist/scanners/privacy/over-broad-response.js +0 -109
  161. package/dist/scanners/privacy/sensitive-logging.d.ts +0 -11
  162. package/dist/scanners/privacy/sensitive-logging.d.ts.map +0 -1
  163. package/dist/scanners/privacy/sensitive-logging.js +0 -78
  164. package/dist/scanners/types.d.ts +0 -456
  165. package/dist/scanners/types.d.ts.map +0 -1
  166. package/dist/scanners/types.js +0 -16
  167. package/dist/scanners/unused-security-imports.d.ts +0 -34
  168. package/dist/scanners/unused-security-imports.d.ts.map +0 -1
  169. package/dist/scanners/unused-security-imports.js +0 -206
  170. package/dist/scanners/uploads/index.d.ts +0 -5
  171. package/dist/scanners/uploads/index.d.ts.map +0 -1
  172. package/dist/scanners/uploads/index.js +0 -9
  173. package/dist/scanners/uploads/missing-constraints.d.ts +0 -15
  174. package/dist/scanners/uploads/missing-constraints.d.ts.map +0 -1
  175. package/dist/scanners/uploads/missing-constraints.js +0 -109
  176. package/dist/scanners/uploads/public-path.d.ts +0 -11
  177. package/dist/scanners/uploads/public-path.d.ts.map +0 -1
  178. package/dist/scanners/uploads/public-path.js +0 -87
  179. package/dist/scanners/validation/client-side-only.d.ts +0 -14
  180. package/dist/scanners/validation/client-side-only.d.ts.map +0 -1
  181. package/dist/scanners/validation/client-side-only.js +0 -140
  182. package/dist/scanners/validation/ignored-validation.d.ts +0 -12
  183. package/dist/scanners/validation/ignored-validation.d.ts.map +0 -1
  184. package/dist/scanners/validation/ignored-validation.js +0 -119
  185. package/dist/scanners/validation/index.d.ts +0 -5
  186. package/dist/scanners/validation/index.d.ts.map +0 -1
  187. package/dist/scanners/validation/index.js +0 -9
  188. package/dist/utils/exclude-patterns.d.ts +0 -35
  189. package/dist/utils/exclude-patterns.d.ts.map +0 -1
  190. package/dist/utils/exclude-patterns.js +0 -78
  191. package/dist/utils/file-utils.d.ts +0 -37
  192. package/dist/utils/file-utils.d.ts.map +0 -1
  193. package/dist/utils/file-utils.js +0 -77
  194. package/dist/utils/fingerprint.d.ts +0 -25
  195. package/dist/utils/fingerprint.d.ts.map +0 -1
  196. package/dist/utils/fingerprint.js +0 -28
  197. package/dist/utils/git-info.d.ts +0 -14
  198. package/dist/utils/git-info.d.ts.map +0 -1
  199. package/dist/utils/git-info.js +0 -55
  200. package/dist/utils/index.d.ts +0 -4
  201. package/dist/utils/index.d.ts.map +0 -1
  202. package/dist/utils/index.js +0 -3
  203. package/dist/utils/progress.d.ts +0 -42
  204. package/dist/utils/progress.d.ts.map +0 -1
  205. package/dist/utils/progress.js +0 -165
  206. package/dist/utils/sarif-formatter.d.ts +0 -92
  207. package/dist/utils/sarif-formatter.d.ts.map +0 -1
  208. package/dist/utils/sarif-formatter.js +0 -172
@@ -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":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;IAC9D,0CAA0C;IAC1C,aAAa,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gCAAgC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mDAAmD;IACnD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAE/C,2EAA2E;IAC3E,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,EAAE,CAAC;IAE1D,+CAA+C;IAC/C,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAE/C,mDAAmD;IACnD,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAAC;IAE1C,4CAA4C;IAC5C,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,EAAE,CAAC;IAE3D,oDAAoD;IACpD,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,EAAE,CAAC;IAE9D,mDAAmD;IACnD,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,EAAE,CAAC;IAEhE,kCAAkC;IAClC,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,EAAE,CAAC;IAEzD,qCAAqC;IACrC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IAEhC,gCAAgC;IAChC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IAIhC,qDAAqD;IACrD,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAEtD,sCAAsC;IACtC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAErD,6CAA6C;IAC7C,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAEtD,wDAAwD;IACxD,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,CAAC;IAErD,mDAAmD;IACnD,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,EAAE,CAAC;IAE/D,qCAAqC;IACrC,0BAA0B,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,CAAC;IAEpE,2BAA2B;IAC3B,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,CAAC;IAE3D,gCAAgC;IAChC,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,EAAE,CAAC;IAEhE,6CAA6C;IAC7C,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,EAAE,CAAC;IAEhE,mDAAmD;IACnD,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;IAErD,gDAAgD;IAChD,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IACzE,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,gCAAgC;IAChC,cAAc,EAAE,cAAc,CAAC;IAC/B,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,oDAAoD;IACpD,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,OAAO,cAAc,EACrC,SAAS,EAAE,MAAM,OAAO,cAAc,GACrC,OAAO,CAET;AAMD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IACzE,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,qCAAqC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,mBAAmB,GACnB,sBAAsB,GACtB,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,YAAY,GACZ,QAAQ,GACR,KAAK,GACL,IAAI,GACJ,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,yBAAyB;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,4BAA4B;IAC5B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iCAAiC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,gBAAgB;IAChB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,qBAAqB;IACrB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,sCAAsC;IACtC,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,8BAA8B;IAC9B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;CAC3B"}
@@ -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"}