{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-645ffb989a9147eb", "name": "Stray `console.log` in TS/JS \u2014 src/server.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/server.ts:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cfe1359a131a03a0", "name": "Stray `console.log` in TS/JS \u2014 src/middleware/cors.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/middleware/cors.ts:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f5f9b18076dc206", "name": "Stray `console.log` in TS/JS \u2014 src/middleware/request-logger.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/middleware/request-logger.ts:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aad6ebd7618a30b9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sentry.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sentry.ts:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-60193f44c23bae55", "name": "Stray `console.log` in TS/JS \u2014 src/lib/firebase-admin.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/firebase-admin.ts:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "5 test file(s) for 108 source file(s) (ratio 0.05). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 7 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb9c9c8f816d3b9c", "name": "Commented-code block (5 lines) in src/middleware/require-role.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/require-role.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30a8c3e2e9feba2d", "name": "Commented-code block (5 lines) in src/middleware/require-auth.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/require-auth.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f04dd2c155c6d1e", "name": "Commented-code block (6 lines) in src/middleware/require-email-verified.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/require-email-verified.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32bae3f9cdebd1bf", "name": "Commented-code block (5 lines) in src/lib/weighing.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/weighing.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a390fa04634b292a", "name": "Commented-code block (9 lines) in src/lib/validate-image-url.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/validate-image-url.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fd0798d506a12b0", "name": "Commented-code block (15 lines) in src/lib/order-machine.ts:46", "shortDescription": {"text": "Commented-code block (15 lines) in src/lib/order-machine.ts:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d047448bfa0b15c", "name": "Commented-code block (5 lines) in src/lib/auto-assign.ts:63", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/auto-assign.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4646f4da36dd4a07", "name": "Commented-code block (5 lines) in src/lib/offer-sweeper.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/offer-sweeper.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36adcbf43af0b191", "name": "Commented-code block (6 lines) in src/lib/pricing-config.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/pricing-config.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8816c8753b148b4d", "name": "Commented-code block (8 lines) in src/lib/payments/provider.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/payments/provider.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6292c72486804d6", "name": "Commented-code block (7 lines) in src/lib/payments/phonepe.ts:11", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/payments/phonepe.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ea6e2f0260cfe60", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/payments/phonepe.ts:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/payments/phonepe.ts:37"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df6f187792bfca35", "name": "Commented-code block (7 lines) in src/routes/orders/orders.read.ts:22", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/orders/orders.read.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fdfe3a5d5ef13468", "name": "Commented-code block (5 lines) in src/routes/orders/orders.handler.ts:632", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/orders/orders.handler.ts:632"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de733630f9fbd7e6", "name": "Commented-code block (5 lines) in src/routes/auth/auth.handler.ts:203", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/auth/auth.handler.ts:203"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ededd529477b836c", "name": "Commented-code block (5 lines) in src/routes/admin/admin-disputes.handler.ts:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/admin/admin-disputes.handler.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ab7e26d5ba77d07", "name": "Commented-code block (5 lines) in src/routes/admin/admin-settlements.handler.ts:76", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/admin/admin-settlements.handler.ts:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-704aafd0baee8e3a", "name": "Commented-code block (7 lines) in src/routes/admin/admin-earnings.handler.ts:10", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/admin/admin-earnings.handler.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6446409cf8936fc", "name": "Commented-code block (5 lines) in src/routes/admin/admin-users.handler.ts:315", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/admin/admin-users.handler.ts:315"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43e716a99ca4a0f4", "name": "Commented-code block (6 lines) in src/routes/rider/rider.handler.ts:124", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/rider/rider.handler.ts:124"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86977eeaa5e6f754", "name": "Commented-code block (5 lines) in src/db/client.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/db/client.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d336080e12c4933", "name": "Commented-code block (5 lines) in src/db/schema/shop-payouts.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/db/schema/shop-payouts.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9844851f9cf0562", "name": "Commented-code block (6 lines) in src/db/schema/rider-settlements.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/db/schema/rider-settlements.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8340322999d85b6a", "name": "Commented-code block (5 lines) in src/db/schema/platform-settings.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/db/schema/platform-settings.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad1f2c0971b89ce0", "name": "10 env vars used in code but missing from .env.example", "shortDescription": {"text": "10 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `DB_CA_CERT`, `FIREBASE_STORAGE_BUCKET`, `PAYMENT_PROVIDER`, `PAYMENT_REDIRECT_URL`, `PHONEPE_AUTH_URL`, `PHONEPE_BASE_URL`, `PHONEPE_CLIENT_ID`, `PHONEPE_CLIENT_SECRET` + 2 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`src/app.ts` declares `USE /api` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b09e467a2fab926", "name": "Unused endpoint: PATCH /shops/:id/status", "shortDescription": {"text": "Unused endpoint: PATCH /shops/:id/status"}, "fullDescription": {"text": "`src/middleware/require-role.ts` declares `PATCH /shops/:id/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-988262c12d31b479", "name": "Unused endpoint: POST /orders", "shortDescription": {"text": "Unused endpoint: POST /orders"}, "fullDescription": {"text": "`src/middleware/require-role.ts` declares `POST /orders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0328e9bdbb61fa68", "name": "Unused endpoint: GET /orders", "shortDescription": {"text": "Unused endpoint: GET /orders"}, "fullDescription": {"text": "`src/middleware/require-role.ts` declares `GET /orders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b28d92215a503990", "name": "Unused endpoint: USE /auth", "shortDescription": {"text": "Unused endpoint: USE /auth"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /auth` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-79ebee1b808cc8cc", "name": "Unused endpoint: USE /orders", "shortDescription": {"text": "Unused endpoint: USE /orders"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /orders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2d8849fb6b1ac47", "name": "Unused endpoint: USE /admin", "shortDescription": {"text": "Unused endpoint: USE /admin"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /admin` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ea73d68f893932c", "name": "Unused endpoint: USE /rider", "shortDescription": {"text": "Unused endpoint: USE /rider"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /rider` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47e5c642f40bbc80", "name": "Unused endpoint: USE /customer", "shortDescription": {"text": "Unused endpoint: USE /customer"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /customer` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2b1760877fd2969", "name": "Unused endpoint: USE /shop", "shortDescription": {"text": "Unused endpoint: USE /shop"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /shop` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df6ab397f0687350", "name": "Unused endpoint: USE /shops", "shortDescription": {"text": "Unused endpoint: USE /shops"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /shops` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3c33d4888a3dabc1", "name": "Unused endpoint: USE /disputes", "shortDescription": {"text": "Unused endpoint: USE /disputes"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /disputes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96faeaaed453dacf", "name": "Unused endpoint: USE /addresses", "shortDescription": {"text": "Unused endpoint: USE /addresses"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /addresses` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49ada477458653e1", "name": "Unused endpoint: USE /favorites", "shortDescription": {"text": "Unused endpoint: USE /favorites"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /favorites` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d80629752210b855", "name": "Unused endpoint: USE /notifications", "shortDescription": {"text": "Unused endpoint: USE /notifications"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /notifications` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-195b646399ca4805", "name": "Unused endpoint: USE /memberships", "shortDescription": {"text": "Unused endpoint: USE /memberships"}, "fullDescription": {"text": "`src/routes/index.ts` declares `USE /memberships` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-358815753e8867f1", "name": "Unused endpoint: POST /token", "shortDescription": {"text": "Unused endpoint: POST /token"}, "fullDescription": {"text": "`src/routes/notifications/index.ts` declares `POST /token` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e3111177f806781", "name": "Unused endpoint: DELETE /token", "shortDescription": {"text": "Unused endpoint: DELETE /token"}, "fullDescription": {"text": "`src/routes/notifications/index.ts` declares `DELETE /token` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca5756175765b49d", "name": "Unused endpoint: GET /:id", "shortDescription": {"text": "Unused endpoint: GET /:id"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `GET /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a050eee29f8c99a", "name": "Unused endpoint: GET /:id/events", "shortDescription": {"text": "Unused endpoint: GET /:id/events"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `GET /:id/events` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-060056f7b8b68374", "name": "Unused endpoint: POST /quote", "shortDescription": {"text": "Unused endpoint: POST /quote"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /quote` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0cb78db4e7bafb1c", "name": "Unused endpoint: POST /:id/cancel", "shortDescription": {"text": "Unused endpoint: POST /:id/cancel"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/cancel` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-68676be92ccfe0e1", "name": "Unused endpoint: POST /:id/accept", "shortDescription": {"text": "Unused endpoint: POST /:id/accept"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/accept` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-42f2999bb43a2c8d", "name": "Unused endpoint: POST /:id/reject", "shortDescription": {"text": "Unused endpoint: POST /:id/reject"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/reject` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d43e04f54e5107fc", "name": "Unused endpoint: POST /:id/weigh", "shortDescription": {"text": "Unused endpoint: POST /:id/weigh"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/weigh` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e41bf33fc3fd3ecf", "name": "Unused endpoint: POST /:id/approve-adjustment", "shortDescription": {"text": "Unused endpoint: POST /:id/approve-adjustment"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/approve-adjustment` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4361549e3022a8a5", "name": "Unused endpoint: POST /:id/pay", "shortDescription": {"text": "Unused endpoint: POST /:id/pay"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/pay` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-68eed65f443838af", "name": "Unused endpoint: GET /:id/payment-status", "shortDescription": {"text": "Unused endpoint: GET /:id/payment-status"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `GET /:id/payment-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6b08099758adaab", "name": "Unused endpoint: POST /:id/review", "shortDescription": {"text": "Unused endpoint: POST /:id/review"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/review` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b172f569c1b2a537", "name": "Unused endpoint: POST /:id/ready", "shortDescription": {"text": "Unused endpoint: POST /:id/ready"}, "fullDescription": {"text": "`src/routes/orders/index.ts` declares `POST /:id/ready` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4672eb31f20fe454", "name": "Unused endpoint: POST /register/customer", "shortDescription": {"text": "Unused endpoint: POST /register/customer"}, "fullDescription": {"text": "`src/routes/auth/index.ts` declares `POST /register/customer` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c5e29c47d1cffea", "name": "Unused endpoint: POST /register/shop", "shortDescription": {"text": "Unused endpoint: POST /register/shop"}, "fullDescription": {"text": "`src/routes/auth/index.ts` declares `POST /register/shop` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0dec5e7254ef5fad", "name": "Unused endpoint: POST /register/rider", "shortDescription": {"text": "Unused endpoint: POST /register/rider"}, "fullDescription": {"text": "`src/routes/auth/index.ts` declares `POST /register/rider` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd1dc91abf32142d", "name": "Unused endpoint: GET /me", "shortDescription": {"text": "Unused endpoint: GET /me"}, "fullDescription": {"text": "`src/routes/auth/index.ts` declares `GET /me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea575b61c121b733", "name": "Unused endpoint: PATCH /me", "shortDescription": {"text": "Unused endpoint: PATCH /me"}, "fullDescription": {"text": "`src/routes/auth/index.ts` declares `PATCH /me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-380780ae47e04514", "name": "Unused endpoint: DELETE /me", "shortDescription": {"text": "Unused endpoint: DELETE /me"}, "fullDescription": {"text": "`src/routes/auth/index.ts` declares `DELETE /me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`src/routes/addresses/index.ts` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a61c112b611f4bb", "name": "Unused endpoint: DELETE /:id", "shortDescription": {"text": "Unused endpoint: DELETE /:id"}, "fullDescription": {"text": "`src/routes/addresses/index.ts` declares `DELETE /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0182bdc81b35f40d", "name": "Unused endpoint: PUT /:id/default", "shortDescription": {"text": "Unused endpoint: PUT /:id/default"}, "fullDescription": {"text": "`src/routes/addresses/index.ts` declares `PUT /:id/default` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4376db462976ec9b", "name": "Unused endpoint: GET /:id/services", "shortDescription": {"text": "Unused endpoint: GET /:id/services"}, "fullDescription": {"text": "`src/routes/shops/index.ts` declares `GET /:id/services` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a10deec3722a28bc", "name": "Unused endpoint: GET /:id/reviews", "shortDescription": {"text": "Unused endpoint: GET /:id/reviews"}, "fullDescription": {"text": "`src/routes/shops/index.ts` declares `GET /:id/reviews` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5cae3068724f9d3", "name": "Unused endpoint: GET /plans", "shortDescription": {"text": "Unused endpoint: GET /plans"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `GET /plans` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34e6cf7dddc9af0f", "name": "Unused endpoint: POST /plans", "shortDescription": {"text": "Unused endpoint: POST /plans"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `POST /plans` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4cd4bc88769c0c05", "name": "Unused endpoint: PATCH /plans/:id", "shortDescription": {"text": "Unused endpoint: PATCH /plans/:id"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `PATCH /plans/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77b844cc18dfe5cf", "name": "Unused endpoint: GET /memberships", "shortDescription": {"text": "Unused endpoint: GET /memberships"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `GET /memberships` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9bbf40298e2a59f", "name": "Unused endpoint: POST /memberships/grant", "shortDescription": {"text": "Unused endpoint: POST /memberships/grant"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `POST /memberships/grant` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d504b80adc9409ec", "name": "Unused endpoint: GET /dashboard", "shortDescription": {"text": "Unused endpoint: GET /dashboard"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `GET /dashboard` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-512ccb0fd0b230ba", "name": "Unused endpoint: GET /settings", "shortDescription": {"text": "Unused endpoint: GET /settings"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `GET /settings` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-689e4ffd880f570d", "name": "Unused endpoint: PATCH /settings", "shortDescription": {"text": "Unused endpoint: PATCH /settings"}, "fullDescription": {"text": "`src/routes/admin/index.ts` declares `PATCH /settings` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18167"}, "properties": {"repository": "Rinzo-app/Rinzo-Backend", "repoUrl": "https://github.com/Rinzo-app/Rinzo-Backend", "branch": "main"}, "results": [{"ruleId": "scanner-645ffb989a9147eb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/server.ts:20"}, "properties": {"repobilityId": "7753d6bdd8ad49dd", "scanner": "scanner-primary", "fingerprint": "645ffb989a9147eb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cfe1359a131a03a0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/middleware/cors.ts:15"}, "properties": {"repobilityId": "f89af79ddd9533e4", "scanner": "scanner-primary", "fingerprint": "cfe1359a131a03a0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f5f9b18076dc206", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/middleware/request-logger.ts:38"}, "properties": {"repobilityId": "c27588d43172f4ff", "scanner": "scanner-primary", "fingerprint": "5f5f9b18076dc206", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aad6ebd7618a30b9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sentry.ts:20"}, "properties": {"repobilityId": "73c0c5133fe3fb09", "scanner": "scanner-primary", "fingerprint": "aad6ebd7618a30b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-60193f44c23bae55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/firebase-admin.ts:32"}, "properties": {"repobilityId": "5cb76fb394f2f323", "scanner": "scanner-primary", "fingerprint": "60193f44c23bae55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "54339b3bdc64ccf2", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "d0c647542f2cc060", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "ba0836275fe84e84", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "0ee82ce1de9972a8", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "b5057c6283dcc1e5", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "153a066c1e63f31d", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "a0b6683329417279", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-cb9c9c8f816d3b9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/require-role.ts:11"}, "properties": {"repobilityId": "c4de2b94acb7a635", "scanner": "scanner-primary", "fingerprint": "cb9c9c8f816d3b9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30a8c3e2e9feba2d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/require-auth.ts:13"}, "properties": {"repobilityId": "859c9e7cf0a59117", "scanner": "scanner-primary", "fingerprint": "30a8c3e2e9feba2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f04dd2c155c6d1e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/require-email-verified.ts:4"}, "properties": {"repobilityId": "3c26c8d98ae4ed93", "scanner": "scanner-primary", "fingerprint": "3f04dd2c155c6d1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32bae3f9cdebd1bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/weighing.ts:8"}, "properties": {"repobilityId": "1d7aa02eacae3710", "scanner": "scanner-primary", "fingerprint": "32bae3f9cdebd1bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a390fa04634b292a", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/validate-image-url.ts:6"}, "properties": {"repobilityId": "a330d41705c79abf", "scanner": "scanner-primary", "fingerprint": "a390fa04634b292a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fd0798d506a12b0", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/lib/order-machine.ts:46"}, "properties": {"repobilityId": "e13655c6be84a937", "scanner": "scanner-primary", "fingerprint": "4fd0798d506a12b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d047448bfa0b15c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/auto-assign.ts:63"}, "properties": {"repobilityId": "17a235eed0e6aad3", "scanner": "scanner-primary", "fingerprint": "7d047448bfa0b15c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4646f4da36dd4a07", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/offer-sweeper.ts:19"}, "properties": {"repobilityId": "942635363358a7a3", "scanner": "scanner-primary", "fingerprint": "4646f4da36dd4a07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36adcbf43af0b191", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/pricing-config.ts:4"}, "properties": {"repobilityId": "01fc7466de1ec8b2", "scanner": "scanner-primary", "fingerprint": "36adcbf43af0b191", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8816c8753b148b4d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/payments/provider.ts:4"}, "properties": {"repobilityId": "7b77c2166921e9b8", "scanner": "scanner-primary", "fingerprint": "8816c8753b148b4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6292c72486804d6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/payments/phonepe.ts:11"}, "properties": {"repobilityId": "20d0c2402bed433e", "scanner": "scanner-primary", "fingerprint": "d6292c72486804d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ea6e2f0260cfe60", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/payments/phonepe.ts:37"}, "properties": {"repobilityId": "e11fad105fb4a34c", "scanner": "scanner-primary", "fingerprint": "6ea6e2f0260cfe60", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df6f187792bfca35", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/orders/orders.read.ts:22"}, "properties": {"repobilityId": "db30f4f29d08cd60", "scanner": "scanner-primary", "fingerprint": "df6f187792bfca35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdfe3a5d5ef13468", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/orders/orders.handler.ts:632"}, "properties": {"repobilityId": "79c3eb1fe3621c68", "scanner": "scanner-primary", "fingerprint": "fdfe3a5d5ef13468", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de733630f9fbd7e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/auth/auth.handler.ts:203"}, "properties": {"repobilityId": "0f6ae69dc7b35cf4", "scanner": "scanner-primary", "fingerprint": "de733630f9fbd7e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ededd529477b836c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/admin/admin-disputes.handler.ts:29"}, "properties": {"repobilityId": "b7e40342de69aaf8", "scanner": "scanner-primary", "fingerprint": "ededd529477b836c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ab7e26d5ba77d07", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/admin/admin-settlements.handler.ts:76"}, "properties": {"repobilityId": "b0ffc53a3df1cb33", "scanner": "scanner-primary", "fingerprint": "3ab7e26d5ba77d07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-704aafd0baee8e3a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/admin/admin-earnings.handler.ts:10"}, "properties": {"repobilityId": "2b05635775529f82", "scanner": "scanner-primary", "fingerprint": "704aafd0baee8e3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6446409cf8936fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/admin/admin-users.handler.ts:315"}, "properties": {"repobilityId": "93f1239a02dd4f4e", "scanner": "scanner-primary", "fingerprint": "c6446409cf8936fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43e716a99ca4a0f4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/rider/rider.handler.ts:124"}, "properties": {"repobilityId": "0da6ed595ad22b5d", "scanner": "scanner-primary", "fingerprint": "43e716a99ca4a0f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86977eeaa5e6f754", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/db/client.ts:12"}, "properties": {"repobilityId": "8667e3093b03fca1", "scanner": "scanner-primary", "fingerprint": "86977eeaa5e6f754", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d336080e12c4933", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/db/schema/shop-payouts.ts:4"}, "properties": {"repobilityId": "649e3953e3397f2b", "scanner": "scanner-primary", "fingerprint": "4d336080e12c4933", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9844851f9cf0562", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/db/schema/rider-settlements.ts:4"}, "properties": {"repobilityId": "6e1915dd105179e4", "scanner": "scanner-primary", "fingerprint": "f9844851f9cf0562", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8340322999d85b6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/db/schema/platform-settings.ts:3"}, "properties": {"repobilityId": "e8397580756425ac", "scanner": "scanner-primary", "fingerprint": "8340322999d85b6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad1f2c0971b89ce0", "level": "note", "message": {"text": "10 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "3bfdc60c61f1870e", "scanner": "scanner-primary", "fingerprint": "ad1f2c0971b89ce0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "9d6ef3ae41301af6", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1b09e467a2fab926", "level": "note", "message": {"text": "Unused endpoint: PATCH /shops/:id/status"}, "properties": {"repobilityId": "106c72c77b81e9b1", "scanner": "scanner-primary", "fingerprint": "1b09e467a2fab926", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-988262c12d31b479", "level": "note", "message": {"text": "Unused endpoint: POST /orders"}, "properties": {"repobilityId": "30a627a7bb663448", "scanner": "scanner-primary", "fingerprint": "988262c12d31b479", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0328e9bdbb61fa68", "level": "note", "message": {"text": "Unused endpoint: GET /orders"}, "properties": {"repobilityId": "e7bf548580ac37e7", "scanner": "scanner-primary", "fingerprint": "0328e9bdbb61fa68", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b28d92215a503990", "level": "note", "message": {"text": "Unused endpoint: USE /auth"}, "properties": {"repobilityId": "1314e750346b938e", "scanner": "scanner-primary", "fingerprint": "b28d92215a503990", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-79ebee1b808cc8cc", "level": "note", "message": {"text": "Unused endpoint: USE /orders"}, "properties": {"repobilityId": "424caa3d7cc06c9b", "scanner": "scanner-primary", "fingerprint": "79ebee1b808cc8cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b2d8849fb6b1ac47", "level": "note", "message": {"text": "Unused endpoint: USE /admin"}, "properties": {"repobilityId": "6b447cc79b8daf8f", "scanner": "scanner-primary", "fingerprint": "b2d8849fb6b1ac47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3ea73d68f893932c", "level": "note", "message": {"text": "Unused endpoint: USE /rider"}, "properties": {"repobilityId": "0519e668e320fb45", "scanner": "scanner-primary", "fingerprint": "3ea73d68f893932c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-47e5c642f40bbc80", "level": "note", "message": {"text": "Unused endpoint: USE /customer"}, "properties": {"repobilityId": "fe4baf9f089a9168", "scanner": "scanner-primary", "fingerprint": "47e5c642f40bbc80", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2b1760877fd2969", "level": "note", "message": {"text": "Unused endpoint: USE /shop"}, "properties": {"repobilityId": "adab9786f2cfd5c4", "scanner": "scanner-primary", "fingerprint": "d2b1760877fd2969", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-df6ab397f0687350", "level": "note", "message": {"text": "Unused endpoint: USE /shops"}, "properties": {"repobilityId": "0ecc8099fb3c1d32", "scanner": "scanner-primary", "fingerprint": "df6ab397f0687350", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3c33d4888a3dabc1", "level": "note", "message": {"text": "Unused endpoint: USE /disputes"}, "properties": {"repobilityId": "1865354124d4431f", "scanner": "scanner-primary", "fingerprint": "3c33d4888a3dabc1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-96faeaaed453dacf", "level": "note", "message": {"text": "Unused endpoint: USE /addresses"}, "properties": {"repobilityId": "740d79e2fcf52dab", "scanner": "scanner-primary", "fingerprint": "96faeaaed453dacf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-49ada477458653e1", "level": "note", "message": {"text": "Unused endpoint: USE /favorites"}, "properties": {"repobilityId": "155c9cd7e41cf1aa", "scanner": "scanner-primary", "fingerprint": "49ada477458653e1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d80629752210b855", "level": "note", "message": {"text": "Unused endpoint: USE /notifications"}, "properties": {"repobilityId": "ca0adfe3e6167372", "scanner": "scanner-primary", "fingerprint": "d80629752210b855", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-195b646399ca4805", "level": "note", "message": {"text": "Unused endpoint: USE /memberships"}, "properties": {"repobilityId": "bf6f7a1b488c2b5a", "scanner": "scanner-primary", "fingerprint": "195b646399ca4805", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-358815753e8867f1", "level": "note", "message": {"text": "Unused endpoint: POST /token"}, "properties": {"repobilityId": "a94c0ceb5302eea8", "scanner": "scanner-primary", "fingerprint": "358815753e8867f1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4e3111177f806781", "level": "note", "message": {"text": "Unused endpoint: DELETE /token"}, "properties": {"repobilityId": "b856020240af2a79", "scanner": "scanner-primary", "fingerprint": "4e3111177f806781", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca5756175765b49d", "level": "note", "message": {"text": "Unused endpoint: GET /:id"}, "properties": {"repobilityId": "21881354c421aa97", "scanner": "scanner-primary", "fingerprint": "ca5756175765b49d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a050eee29f8c99a", "level": "note", "message": {"text": "Unused endpoint: GET /:id/events"}, "properties": {"repobilityId": "452a810f276ef1df", "scanner": "scanner-primary", "fingerprint": "0a050eee29f8c99a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-060056f7b8b68374", "level": "note", "message": {"text": "Unused endpoint: POST /quote"}, "properties": {"repobilityId": "5e75229cb8f0a6a9", "scanner": "scanner-primary", "fingerprint": "060056f7b8b68374", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "8f749769e2a3f306", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0cb78db4e7bafb1c", "level": "note", "message": {"text": "Unused endpoint: POST /:id/cancel"}, "properties": {"repobilityId": "545ae19139754c1e", "scanner": "scanner-primary", "fingerprint": "0cb78db4e7bafb1c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-68676be92ccfe0e1", "level": "note", "message": {"text": "Unused endpoint: POST /:id/accept"}, "properties": {"repobilityId": "7d185907b54e3f2d", "scanner": "scanner-primary", "fingerprint": "68676be92ccfe0e1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-42f2999bb43a2c8d", "level": "note", "message": {"text": "Unused endpoint: POST /:id/reject"}, "properties": {"repobilityId": "2d91684b1da1c3fe", "scanner": "scanner-primary", "fingerprint": "42f2999bb43a2c8d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d43e04f54e5107fc", "level": "note", "message": {"text": "Unused endpoint: POST /:id/weigh"}, "properties": {"repobilityId": "767bea11617cd61e", "scanner": "scanner-primary", "fingerprint": "d43e04f54e5107fc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e41bf33fc3fd3ecf", "level": "note", "message": {"text": "Unused endpoint: POST /:id/approve-adjustment"}, "properties": {"repobilityId": "6f810434035d4127", "scanner": "scanner-primary", "fingerprint": "e41bf33fc3fd3ecf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4361549e3022a8a5", "level": "note", "message": {"text": "Unused endpoint: POST /:id/pay"}, "properties": {"repobilityId": "01ed4e767fddd5f3", "scanner": "scanner-primary", "fingerprint": "4361549e3022a8a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-68eed65f443838af", "level": "note", "message": {"text": "Unused endpoint: GET /:id/payment-status"}, "properties": {"repobilityId": "da2fb1de18ed1095", "scanner": "scanner-primary", "fingerprint": "68eed65f443838af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6b08099758adaab", "level": "note", "message": {"text": "Unused endpoint: POST /:id/review"}, "properties": {"repobilityId": "41fe5b49d7b4a5a3", "scanner": "scanner-primary", "fingerprint": "a6b08099758adaab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b172f569c1b2a537", "level": "note", "message": {"text": "Unused endpoint: POST /:id/ready"}, "properties": {"repobilityId": "fa355a568ee3a606", "scanner": "scanner-primary", "fingerprint": "b172f569c1b2a537", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4672eb31f20fe454", "level": "note", "message": {"text": "Unused endpoint: POST /register/customer"}, "properties": {"repobilityId": "075e25b4f9527351", "scanner": "scanner-primary", "fingerprint": "4672eb31f20fe454", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c5e29c47d1cffea", "level": "note", "message": {"text": "Unused endpoint: POST /register/shop"}, "properties": {"repobilityId": "af5a85a24c602fbc", "scanner": "scanner-primary", "fingerprint": "0c5e29c47d1cffea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0dec5e7254ef5fad", "level": "note", "message": {"text": "Unused endpoint: POST /register/rider"}, "properties": {"repobilityId": "2465f177a97dc604", "scanner": "scanner-primary", "fingerprint": "0dec5e7254ef5fad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd1dc91abf32142d", "level": "note", "message": {"text": "Unused endpoint: GET /me"}, "properties": {"repobilityId": "5a346bddf5d7b96c", "scanner": "scanner-primary", "fingerprint": "fd1dc91abf32142d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea575b61c121b733", "level": "note", "message": {"text": "Unused endpoint: PATCH /me"}, "properties": {"repobilityId": "5565c8baf20d9869", "scanner": "scanner-primary", "fingerprint": "ea575b61c121b733", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-380780ae47e04514", "level": "note", "message": {"text": "Unused endpoint: DELETE /me"}, "properties": {"repobilityId": "c8f0428ea32620c7", "scanner": "scanner-primary", "fingerprint": "380780ae47e04514", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "2f33713a9ab02731", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a61c112b611f4bb", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id"}, "properties": {"repobilityId": "4b783ab6d6e148af", "scanner": "scanner-primary", "fingerprint": "7a61c112b611f4bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0182bdc81b35f40d", "level": "note", "message": {"text": "Unused endpoint: PUT /:id/default"}, "properties": {"repobilityId": "df123fb8ab0f2fde", "scanner": "scanner-primary", "fingerprint": "0182bdc81b35f40d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4376db462976ec9b", "level": "note", "message": {"text": "Unused endpoint: GET /:id/services"}, "properties": {"repobilityId": "6c19cffb6af71fab", "scanner": "scanner-primary", "fingerprint": "4376db462976ec9b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a10deec3722a28bc", "level": "note", "message": {"text": "Unused endpoint: GET /:id/reviews"}, "properties": {"repobilityId": "dcf338f81027b362", "scanner": "scanner-primary", "fingerprint": "a10deec3722a28bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f5cae3068724f9d3", "level": "note", "message": {"text": "Unused endpoint: GET /plans"}, "properties": {"repobilityId": "7dee5af3b1a0beba", "scanner": "scanner-primary", "fingerprint": "f5cae3068724f9d3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34e6cf7dddc9af0f", "level": "note", "message": {"text": "Unused endpoint: POST /plans"}, "properties": {"repobilityId": "02cc6d32f0a7a9e8", "scanner": "scanner-primary", "fingerprint": "34e6cf7dddc9af0f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4cd4bc88769c0c05", "level": "note", "message": {"text": "Unused endpoint: PATCH /plans/:id"}, "properties": {"repobilityId": "46bee3f52552161c", "scanner": "scanner-primary", "fingerprint": "4cd4bc88769c0c05", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-77b844cc18dfe5cf", "level": "note", "message": {"text": "Unused endpoint: GET /memberships"}, "properties": {"repobilityId": "90b53b23e664e694", "scanner": "scanner-primary", "fingerprint": "77b844cc18dfe5cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d9bbf40298e2a59f", "level": "note", "message": {"text": "Unused endpoint: POST /memberships/grant"}, "properties": {"repobilityId": "445306eaca7d707f", "scanner": "scanner-primary", "fingerprint": "d9bbf40298e2a59f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d504b80adc9409ec", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard"}, "properties": {"repobilityId": "c9a1c8359fc3ef7e", "scanner": "scanner-primary", "fingerprint": "d504b80adc9409ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-512ccb0fd0b230ba", "level": "note", "message": {"text": "Unused endpoint: GET /settings"}, "properties": {"repobilityId": "8bcdb2a86caf58d4", "scanner": "scanner-primary", "fingerprint": "512ccb0fd0b230ba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-689e4ffd880f570d", "level": "note", "message": {"text": "Unused endpoint: PATCH /settings"}, "properties": {"repobilityId": "4311f68e0f0fb85e", "scanner": "scanner-primary", "fingerprint": "689e4ffd880f570d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}