PRISM

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 week

72

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

Review

Health is up 6 points. One fix removes the biggest risk.

  1. 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

  2. 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

  3. 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
ModuleRiskChurn
  • services/orders31×
  • api/users12×
  • checkout/totals31×
  • lib/session8×
  • components/cart19×

Risk combines complexity, open issues and how often a module changes.

Quality

Details

Maintainability

68/100

Test coverage

61%

Duplication

4.2%

Avg complexity

7.9

Last analysis

2m 51s
  1. Clone

    4s

  2. Parse

    21s

  3. AST

    18s

  4. Static

    34s

  5. Security

    29s

  6. Graph

    12s

  7. Profile

    25s

  8. Quality

    9s

  9. AI

    14s

  10. Visualize

    5s

Deterministic stages find the facts. AI only runs at the end, to explain them.

History

All
  • Merge 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