acme / storefront / OverviewDemo data
Overview
main · 9f3c2a1Analyzed 4 min agoTook 2m 51s
Files
4,812+38
Functions
14,823+212
Dependencies
18,421+96
Open issues
23−9
Health score
+6 this week72
of 100
Grade B−
Last 8 weeks
- TypeScript 71%
- Python 18%
- SQL 7%
- Other 4%
Repository map · 47 files
Explore- app
- components
- services
- api
- lib
- High risk
Top risks
All 7 issues- critical
SQL injection in user lookup
src/api/users.ts:184
13 dependent modules
Semgrep · taint trace
94 - critical
Hardcoded payment secret
src/config/payments.ts:12
Exposed in 3 builds
Secret scan
91 - critical
N+1 query in OrderService.list()
src/services/orders.ts:77
842ms p95
Query profile
88 - high
jsonwebtoken 8.5.1 has a known CVE
package.json
Auth path
Dependency audit
79 - high
calculateTotals() complexity 38
src/checkout/totals.ts:41
Changed 31× in 90 days
AST · cyclomatic
71 - high
Circular dependency: orders ↔ billing
src/services/
2 modules, 46 imports
Dependency graph
66 - medium
Unbounded cache in sessionStore
src/lib/session.ts:22
Memory growth
Static analysis
52
PRISM core summary
ReviewHealth is up 6 points. One fix removes the biggest risk.
- 01
User input reaches a raw SQL query in users.ts on line 184. Thirteen modules sit on that path, including auth and admin. A parameterized query removes the risk without changing the API.
Semgrep taint traceDependency graph
- 02
OrderService.list() runs one query per order. Batching it into a single indexed query cuts p95 from 842ms to about 127ms.
Query profileAST call graph
- 03
Last week's score gain came from splitting checkout logic. calculateTotals() is still the most complex function and changes most often; it is the next refactor to plan.
Complexity metricsGit churn
Written by AI from the analysis facts. Every point links to its evidence.
Issues
23 open- Security7
- Performance11
- Maintainability5
4
Critical
8
High
11
Medium
Hotspots
Map- services/orders31×
- api/users12×
- checkout/totals31×
- lib/session8×
- components/cart19×
Risk combines complexity, open issues and how often a module changes.
Quality
DetailsMaintainability
68/100
Test coverage
61%
Duplication
4.2%
Avg complexity
7.9
Last analysis
2m 51sClone
4s
Parse
21s
AST
18s
Static
34s
Security
29s
Graph
12s
Profile
25s
Quality
9s
AI
14s
Visualize
5s
Deterministic stages find the facts. AI only runs at the end, to explain them.
History
AllMerge pull request #482
9f3c2a1 · 4 min ago
72
+3
Refactor checkout totals
b71e0d4 · Yesterday
69
+3
Add billing webhooks
3ac9f12 · 3 days ago
66
+2
Upgrade Next.js
e0d55b8 · 6 days ago
64