{"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-2a2d3475acb0b0a0", "name": "Stray `console.log` in TS/JS \u2014 scripts/contract-check.ts:115", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/contract-check.ts:115"}, "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-b486f25e5b24775c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/CityHalalMortgage.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/CityHalalMortgage.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3478cecb8c289814", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/HouseholdSection.tsx:240", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/HouseholdSection.tsx:240"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dce893a5ab666dcd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/JsonLdScript.tsx:6", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/JsonLdScript.tsx:6"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fffcb498abab7eae", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/GettingStartedChecklist.tsx:129", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/GettingStartedChecklist.tsx:129"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b5d0f4775eb5ba3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/WeeklyRecap.tsx:149", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/WeeklyRecap.tsx:149"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4e5e933939eade2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/TopPriorities.tsx:123", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/TopPriorities.tsx:123"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d70159fe1c5e2bf", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/SpendingDrillDown.tsx:168", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/SpendingDrillDown.tsx:168"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-14f56a263dca8993", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/MonthDetailSheet.tsx:223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/MonthDetailSheet.tsx:223"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39581c2a782d0e5b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/DailyRitual.tsx:102", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/DailyRitual.tsx:102"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e11168c0d73f760", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminEmailLogTab.tsx:208", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminEmailLogTab.tsx:208"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-883fdd32c1582334", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUnverifiedTab.tsx:188", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUnverifiedTab.tsx:188"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ac447aa1e32983b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUserDrilldownSheet.tsx:444", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUserDrilldownSheet.tsx:444"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc58b54bb0f90fb6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/FunnelStageDrilldown.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/FunnelStageDrilldown.tsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd941fd5bafe9ca2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUserDetailModal.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUserDetailModal.tsx:186"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-305891eb4a8f7a3d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:311", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:311"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ab72732f49ac566", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/security/page.tsx:128", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/security/page.tsx:128"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4dd06cd393cf4083", "name": "Stray `console.log` in TS/JS \u2014 src/app/email-capture/route.ts:384", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/email-capture/route.ts:384"}, "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-f568faf225c429b1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/hawl/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/hawl/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c712acbdc845a30b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/what-is-sukuk/page.tsx:65", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/what-is-sukuk/page.tsx:65"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c7f7365a8007de8c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/riba-elimination/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/riba-elimination/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d82f419d635c6811", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/islamic-finance-app/page.tsx:64", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/islamic-finance-app/page.tsx:64"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c98193a1cccfa367", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/what-is-zakat/page.tsx:46", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/what-is-zakat/page.tsx:46"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d29cb3dfc4567a69", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/halal-stocks/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/halal-stocks/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9eb9582cc9cf9c6e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/types-of-zakat/page.tsx:30", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/types-of-zakat/page.tsx:30"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d64771cd57f26c2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/how-much-zakat-do-i-owe/page.tsx:31", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b24bd7df0c63c31", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/halal-budgeting/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/halal-budgeting/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ce2b651197edc35", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/nisab/page.tsx:31", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/nisab/page.tsx:31"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ccf59f99caadea1f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/zakat-on-gold/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/zakat-on-gold/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c293a4cca3e7c61", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/zakat-calculator/page.tsx:81", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/zakat-calculator/page.tsx:81"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11bc7bc8c0f9c182", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/page.tsx:362", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/page.tsx:362"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8900e88c9a56beb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/monarch-alternative-for-muslims/page.tsx:87", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/monarch-alternative-for-muslims/page.tsx:87"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2df386dcf0df10f4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-real-estate-investing-2026/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-real-estate-investing-2026/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f9f6948efcf50a3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-pension-uk/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-pension-uk/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a52d479dfd7ad5e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-savings-account/page.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-savings-account/page.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd98d626b1367e0d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-vs-rent-2026/page.tsx:65", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-vs-rent-2026/page.tsx:65"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1295797ef634cbce", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-investing-canada/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-investing-canada/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a6d9980eef98a29", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-rental-property/page.tsx:19", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-rental-property/page.tsx:19"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f4142e3550270a8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/hawl/page.tsx:87", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/hawl/page.tsx:87"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a516aca0f2cb2ee3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-al-fitr-calculator/page.tsx:143", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-al-fitr-calculator/page.tsx:143"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1b503008bc82306", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/mint-alternative-for-muslims/page.tsx:133", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/mint-alternative-for-muslims/page.tsx:133"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28dfe685c8179e81", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stocks-and-etfs/page.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stocks-and-etfs/page.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ca1d1e73f4d30ec", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-credit-card-alternatives-2026/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-credit-card-alternatives-2026/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a93abf6488ec0c39", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/aaoifi-halal-screening/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/aaoifi-halal-screening/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cb2d72aae15799d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/diminishing-musharaka-explained/page.tsx:68", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/diminishing-musharaka-explained/page.tsx:68"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89ae0336c526cb26", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-finance-basics/page.tsx:55", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-finance-basics/page.tsx:55"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2996f25253bde6f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-estate-planning-tools/page.tsx:85", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-estate-planning-tools/page.tsx:85"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-672510843886f3f7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-cryptocurrency/page.tsx:66", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-cryptocurrency/page.tsx:66"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f0df0eba381876e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-my-mortgage-halal/page.tsx:72", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-my-mortgage-halal/page.tsx:72"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b7eaed2cb7d1161", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/la-wasiyyata-li-warith/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/la-wasiyyata-li-warith/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6638547fd9b14b58", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-receivables-and-business-debts/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-receivables-and-business-debts/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fcf502e38ce9859b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/what-is-sukuk/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/what-is-sukuk/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a171f1c72e3739a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-recipients-2026/page.tsx:61", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-recipients-2026/page.tsx:61"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9c20844b5c54a1f4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-providers-usa/page.tsx:113", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-providers-usa/page.tsx:113"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19e156bc6a380e2e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ynab-alternative-for-muslims/page.tsx:92", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ynab-alternative-for-muslims/page.tsx:92"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9c8b59b71ef47095", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-money-market-funds/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-money-market-funds/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3aabd192c5bfe890", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-nfts-and-digital-assets/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-nfts-and-digital-assets/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d219ccc4e1e19fb4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-gold-hanafi/page.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-gold-hanafi/page.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eeef2ed93c06f894", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ramadan-giving-tracker/page.tsx:87", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ramadan-giving-tracker/page.tsx:87"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7cf48a94cab05bdb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-index-funds-2026/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-index-funds-2026/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86397e35adc4f257", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-stock-screener/page.tsx:115", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-stock-screener/page.tsx:115"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-861fb6c7a2a21508", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-loans-usa/page.tsx:50", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-loans-usa/page.tsx:50"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9331e6ca74f1141", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/hajj-savings-plan/page.tsx:87", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/hajj-savings-plan/page.tsx:87"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b28878b1156fb915", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-amazon-stock-halal-2026/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-amazon-stock-halal-2026/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dcb8f40685d5fcd5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-life-insurance-vs-takaful/page.tsx:65", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-life-insurance-vs-takaful/page.tsx:65"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-73df7075f2e37293", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stocks/page.tsx:72", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stocks/page.tsx:72"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c18f7fd5049323e3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-etfs/page.tsx:126", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-etfs/page.tsx:126"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56f975e6aab52ef7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-robo-advisor-comparison/page.tsx:66", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-robo-advisor-comparison/page.tsx:66"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2e5ad91841df72d8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-bitcoin-halal-2026/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-bitcoin-halal-2026/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34dc05d02a28e066", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab-gbp/page.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab-gbp/page.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6397bda522732c47", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/riba-elimination/page.tsx:109", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/riba-elimination/page.tsx:109"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d0e8881a373ed7ee", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-near-me/page.tsx:72", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-near-me/page.tsx:72"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba152ca85741f082", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ijara-vs-murabaha-vs-musharaka-explained/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ijara-vs-murabaha-vs-musharaka-explained/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80a09de8ddfa4546", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-uk/page.tsx:101", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-uk/page.tsx:101"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-882e4b82315adee3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-finance-app/page.tsx:229", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-finance-app/page.tsx:229"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1759992e7a122234", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-401k/page.tsx:94", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-401k/page.tsx:94"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fa53bda451248e5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-a-529-plan-halal/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-a-529-plan-halal/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cebf66564ae0d846", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-business-assets/page.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-business-assets/page.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-486ccbcf7e1b21ed", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-estate-planning/page.tsx:88", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-estate-planning/page.tsx:88"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80ba3e26e792b27a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-will-template/page.tsx:97", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-will-template/page.tsx:97"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a526a89101c5e31", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-savings-account-usa/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-savings-account-usa/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-041a0f2860f89f9d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-banking-vs-conventional/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-banking-vs-conventional/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56752eb3a356fcb8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/what-is-zakat/page.tsx:141", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/what-is-zakat/page.tsx:141"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-45ba2f06cd9cfc6b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-savings/page.tsx:56", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-savings/page.tsx:56"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c6976dd4bb66107", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-stocks/page.tsx:84", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-stocks/page.tsx:84"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e7675708e32c74e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-will/page.tsx:72", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-will/page.tsx:72"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37262f8d6e7fcc58", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-my-401k-halal/page.tsx:66", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-my-401k-halal/page.tsx:66"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d14e4de65cc80178", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/riba-free-mortgage/page.tsx:130", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/riba-free-mortgage/page.tsx:130"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa5f258573356f9d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-budgeting-app/page.tsx:337", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-budgeting-app/page.tsx:337"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0921390e135908a6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-retirement-accounts/page.tsx:55", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-retirement-accounts/page.tsx:55"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb99ef30c8f0e7cd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/madhab-finance/page.tsx:110", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/madhab-finance/page.tsx:110"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b763bb338a07126", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-investing-guide/page.tsx:125", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-investing-guide/page.tsx:125"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-473854ff878851cb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/sadaqah-jariyah-ideas/page.tsx:90", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/sadaqah-jariyah-ideas/page.tsx:90"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4d5370378e0838b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-401k/page.tsx:20", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-401k/page.tsx:20"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-075ca2346f5a47ca", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-al-fitr/page.tsx:55", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-al-fitr/page.tsx:55"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff69ab0ff35e24ca", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/how-much-zakat-do-i-owe/page.tsx:136", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/how-much-zakat-do-i-owe/page.tsx:136"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-904cbb165a6e0acc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/learn/halal-budgeting/page.tsx:240", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/learn/halal-budgeting/page.tsx:240"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-232c5f03d3c2bca2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-budgeting/page.tsx:169", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-budgeting/page.tsx:169"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60a3c112d1357c23", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-401k-methodology/page.tsx:59", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-401k-methodology/page.tsx:59"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ac35dec0c13bb66", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-crypto/page.tsx:19", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-crypto/page.tsx:19"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-554b2d035c9f476d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ramadan-giving-tracker-setup/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ramadan-giving-tracker-setup/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b47e637537ae6f1e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/muslim-household-budget/page.tsx:159", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/muslim-household-budget/page.tsx:159"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0504fe142e008a7a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab/page.tsx:90", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab/page.tsx:90"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9b1718b59ad7306", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stock-options-rsus/page.tsx:66", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stock-options-rsus/page.tsx:66"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-078de3bd8dc20e6a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab-gold-vs-silver/page.tsx:69", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab-gold-vs-silver/page.tsx:69"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-435bcf87c7549e71", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-gold/page.tsx:63", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-gold/page.tsx:63"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1eaf081b93518186", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/sadaqah-vs-zakat/page.tsx:104", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/sadaqah-vs-zakat/page.tsx:104"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fd898950219789e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-emergency-fund-methodology/page.tsx:62", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-emergency-fund-methodology/page.tsx:62"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd046d4422ee00af", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/hawl/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/hawl/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b7d972f2652efad", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/what-is-sukuk/page.tsx:65", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/what-is-sukuk/page.tsx:65"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca31232443cdafca", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/riba-elimination/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/riba-elimination/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-632c071bf7f69292", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/islamic-finance-app/page.tsx:64", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/islamic-finance-app/page.tsx:64"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6fe7727b6aaf3a2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/what-is-zakat/page.tsx:46", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/what-is-zakat/page.tsx:46"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70e3f75de5e27d15", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/halal-stocks/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/halal-stocks/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-952fda9a9bfc8b1c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/types-of-zakat/page.tsx:30", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/types-of-zakat/page.tsx:30"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96b8b0a664bef844", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/how-much-zakat-do-i-owe/page.tsx:31", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c32731ae1b0bbaa", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/halal-budgeting/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/halal-budgeting/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53222468eb7ba627", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/nisab/page.tsx:31", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/nisab/page.tsx:31"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e60ac826d58c2f4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/zakat-on-gold/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/zakat-on-gold/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e50d36249154ed84", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/zakat-calculator/page.tsx:81", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/zakat-calculator/page.tsx:81"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d936f4619ff23a64", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/page.tsx:1328", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/page.tsx:1328"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c702a4950e3b2c3e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/layout.tsx:430", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/layout.tsx:430"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a77bc2a42303ed8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/transactions/page.tsx:1279", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/transactions/page.tsx:1279"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eca93aa934823b48", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/riba/page.tsx:1034", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/riba/page.tsx:1034"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f3565a954c6ae3b1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/analytics/page.tsx:853", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/analytics/page.tsx:853"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-343e94dc24478f6d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/import/page.tsx:918", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/import/page.tsx:918"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06d458e227c2cf07", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/import/GenericCsvImport.tsx:383", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/import/GenericCsvImport.tsx:383"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2b9ce9acd576eed", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/sadaqah/page.tsx:546", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/sadaqah/page.tsx:546"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7099277b2755a85e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/recurring/page.tsx:468", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/recurring/page.tsx:468"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2bfbd7f5dc6e87bd", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/net-worth/page.tsx:573", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/net-worth/page.tsx:573"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77e7317ded46ff37", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/assets/[id]/page.tsx:243", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/assets/[id]/page.tsx:243"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-599371f1c7652d31", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/billing/page.tsx:774", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/billing/page.tsx:774"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57af42ba9ecc6c01", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/admin/activity/page.tsx:170", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/admin/activity/page.tsx:170"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46ed2138cffc8ff6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/admin/scorecard/page.tsx:381", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/admin/scorecard/page.tsx:381"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c20a3a92e2b1d9d3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/wasiyyah/page.tsx:599", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/wasiyyah/page.tsx:599"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31181a89a4fe6a2a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/investments/page.tsx:843", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/investments/page.tsx:843"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-369571f2df142f08", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/ledger/page.tsx:264", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/ledger/page.tsx:264"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ccdc76ce62c4aab", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/family/page.tsx:319", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/family/page.tsx:319"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-234c80efb1d9f29b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/reports/page.tsx:410", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/reports/page.tsx:410"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c77d1b86052d915f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/zakat/page.tsx:932", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/zakat/page.tsx:932"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94035582e04bf568", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/summary/page.tsx:228", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/summary/page.tsx:228"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7ca26b2c708b671", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/halal/page.tsx:370", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/halal/page.tsx:370"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63c56c7d225b9619", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/cash-flow/page.tsx:979", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/cash-flow/page.tsx:979"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-604dfcb7f4a87963", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/debts/page.tsx:938", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/debts/page.tsx:938"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-383b93bd65be784c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ramadan/page.tsx:105", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ramadan/page.tsx:105"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-05198e1858aa2144", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/zakat-uk/page.tsx:96", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/zakat-uk/page.tsx:96"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1778f4081b4f83a9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/hawl/page.tsx:58", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/hawl/page.tsx:58"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d5d3af60520387d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/what-is-sukuk/page.tsx:66", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/what-is-sukuk/page.tsx:66"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c8e84149617c99ab", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/riba-elimination/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/riba-elimination/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa0b18cfca0338b5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/what-is-zakat/page.tsx:49", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/what-is-zakat/page.tsx:49"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6ab70cb3befb4be", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/halal-stocks/page.tsx:58", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/halal-stocks/page.tsx:58"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d102bdbd629641a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/application-finance-islamique/page.tsx:65", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/application-finance-islamique/page.tsx:65"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-061d272e50b28a78", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/types-of-zakat/page.tsx:31", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/types-of-zakat/page.tsx:31"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cf66a3cbac00f74", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/how-much-zakat-do-i-owe/page.tsx:32", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/how-much-zakat-do-i-owe/page.tsx:32"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3cc05e90968d7a6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/halal-budgeting/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/halal-budgeting/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e64667f732093a60", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/nisab/page.tsx:32", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/nisab/page.tsx:32"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6572c556c448316", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/zakat-on-gold/page.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/zakat-on-gold/page.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-318850205866ac97", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/zakat-calculator/page.tsx:82", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/zakat-calculator/page.tsx:82"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b580eedc6ea019d3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/try/page.tsx:48", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/try/page.tsx:48"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03b178efecfe8c4b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/refer/page.tsx:147", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/refer/page.tsx:147"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-550f401c2e7bf285", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/page.tsx:96", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/page.tsx:96"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-504db3551c27a24a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/waqf/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/waqf/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b69bce8c0f2e7f15", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/riba/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/riba/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-139677b437dfbb18", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/hawl/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/hawl/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f7f2142086957ee7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/ijara/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/ijara/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-328609312dd97388", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/sadaqah/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/sadaqah/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e824d20caf73dba5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/sukuk/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/sukuk/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95825996b7f6897f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/faraid/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/faraid/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59f4e78fcc46d19f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/takaful/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/takaful/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-203aef678b09877c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/murabaha/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/murabaha/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09ddcab81b696c38", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/musharaka/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/musharaka/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a18f042b05ac3bf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/zakat/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/zakat/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54639d5410d9ed34", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/hibah/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/hibah/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82060f0074a28146", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/nisab/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/nisab/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b1de3f1b4c6646d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/wassiyah/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/wassiyah/page.tsx:40"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5674aa636324e63", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/trust/TrustPageClient.tsx:85", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/trust/TrustPageClient.tsx:85"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0b6b098661a6ed6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/page.tsx:106", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/page.tsx:106"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-550e4fb86d4d9510", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/msft/page.tsx:36", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/msft/page.tsx:36"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-623034da73ddff4c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/adbe/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/adbe/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2c9fa6c1786d462", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/ko/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/ko/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-daa4767e117359cd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/list/page.tsx:104", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/list/page.tsx:104"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a6e1ced69abdf4a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nvda/page.tsx:36", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nvda/page.tsx:36"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-415434207c9c1556", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/tsla/page.tsx:36", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/tsla/page.tsx:36"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-43bec70894162922", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nflx/page.tsx:52", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nflx/page.tsx:52"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c9d73a6ecee781b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/meta/page.tsx:52", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/meta/page.tsx:52"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0f926347b932183", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/orcl/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/orcl/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c503713619f55c8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/amzn/page.tsx:36", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/amzn/page.tsx:36"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-654dbb4095b4aa8e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/ul/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/ul/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a695eb7eb2c4a968", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/pg/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/pg/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5861e27e000d8318", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/aapl/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/aapl/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3a04c83970defbaa", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/crm/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/crm/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bdd7090834ab5cbf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nsrgy/page.tsx:52", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nsrgy/page.tsx:52"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abe6ce2a006ba88a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/amd/page.tsx:44", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/amd/page.tsx:44"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1db0701a193f0b41", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/googl/page.tsx:52", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/googl/page.tsx:52"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fcbff812efed0e41", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/family/page.tsx:117", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/family/page.tsx:117"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2a7d101e43eaeb2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/faraid-calculator/page.tsx:79", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/faraid-calculator/page.tsx:79"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5276f69172e5aab1", "name": "\"active\" state uses light bg in a dark theme \u2014 src/app/setup/page.tsx:465", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/app/setup/page.tsx:465"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-205c4092ac2b6efb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/page.tsx:242", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/page.tsx:242"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7dc56826541dd570", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-zeta/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-zeta/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf49ccced29b876e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/islamic-finance-apps/page.tsx:54", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/islamic-finance-apps/page.tsx:54"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6712bf6c8820e3d8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-rocketmoney/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-rocketmoney/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c52f69c7b269d5a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-zoya/page.tsx:83", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-zoya/page.tsx:83"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02eefb5cf0679213", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-pocketguard/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-pocketguard/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90d486c56401a61c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-fudget/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-fudget/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ebeb11a07b6fafd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-stash/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-stash/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7104a0b5f70db20e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-robinhood/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-robinhood/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bef395d2adbfa832", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-quicken/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-quicken/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-560e794cd25ad918", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-musaffa/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-musaffa/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c788cfb2d21bf760", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-wahed/page.tsx:73", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-wahed/page.tsx:73"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ec6a7d455dcb25ea", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-yaqeen-money/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-yaqeen-money/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b614d01cd15b362", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-tiller/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-tiller/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0aae1965db2479a9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-acorns/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-acorns/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fc2e68ebe348340", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-saturna/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-saturna/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-85adb2d14059b025", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-mvelopes/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-mvelopes/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5205e79f926e8bf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-ynab/page.tsx:74", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-ynab/page.tsx:74"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0d88e32aecdcaef", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-spendee/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-spendee/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-faf1b68f093f6dc6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-empower/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-empower/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13818e4ffa00c1df", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-personal-capital/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-personal-capital/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-345bb0183bb080ee", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-monarch/page.tsx:71", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-monarch/page.tsx:71"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13165c6c7e128321", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-copilot/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-copilot/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d52f0fe0ccbb2d8d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-wealthfront/page.tsx:70", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-wealthfront/page.tsx:70"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-407deb4d924fa481", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/features/page.tsx:47", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/features/page.tsx:47"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e479f9781c557063", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/methodology/MethodologyClient.tsx:34", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/methodology/MethodologyClient.tsx:34"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-748ae53adc9f068f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/zakat-calculator/page.tsx:112", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/zakat-calculator/page.tsx:112"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0eadf94dd675c6bf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/legacy/homepage-pre-v20-2026-04-30.tsx:182", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/legacy/homepage-pre-v20-2026-04-30.tsx:182"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe3a142877767e37", "name": "Possible secret in scripts/link-sandbox-bank.mjs", "shortDescription": {"text": "Possible secret in scripts/link-sandbox-bank.mjs"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-07abe91ba072253b", "name": "Insecure pattern 'local_storage_auth_token' in src/__tests__/signupAcquisitionHeaders.test.ts:12", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/__tests__/signupAcquisitionHeaders.test.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ee9df0cd077abbd", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/CityHalalMortgage.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/CityHalalMortgage.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac8de1ad8cc659c2", "name": "Insecure pattern 'local_storage_auth_token' in src/components/SessionTimeoutModal.tsx:177", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/SessionTimeoutModal.tsx:177"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66757122a2f2a4a6", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:311", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:311"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8122361e9b7d9bc1", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/security/page.tsx:128", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/security/page.tsx:128"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7146ae402879cecb", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/hawl/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/hawl/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e8b714cfb65f1f3d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/what-is-sukuk/page.tsx:65", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/what-is-sukuk/page.tsx:65"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86da3864abd3065c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/riba-elimination/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/riba-elimination/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18c6c5a05134ca3d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/islamic-finance-app/page.tsx:64", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/islamic-finance-app/page.tsx:64"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ff068122051861a", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/what-is-zakat/page.tsx:46", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/what-is-zakat/page.tsx:46"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-faafdfb9b7e1477e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/halal-stocks/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/halal-stocks/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a2e404e6dda69db", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/types-of-zakat/page.tsx:30", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/types-of-zakat/page.tsx:30"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97fb44fdb6079aaf", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/how-much-zakat-do-i-owe/page.tsx:31", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b3430d78989ef25", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/halal-budgeting/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/halal-budgeting/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f09e2e4f8b423359", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/nisab/page.tsx:31", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/nisab/page.tsx:31"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bb65ab12ddf9ede1", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/zakat-on-gold/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/zakat-on-gold/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c219db8eb1c2cb3b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/zakat-calculator/page.tsx:81", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/zakat-calculator/page.tsx:81"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-316305cf7dc76a8c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/page.tsx:362", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/page.tsx:362"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-904c3a71a63f930d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/monarch-alternative-for-muslims/page.tsx:87", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/monarch-alternative-for-muslims/page.tsx:87"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b7df66303a3000c6", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-real-estate-investing-2026/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-real-estate-investing-2026/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ba3288bc07a91ec", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-pension-uk/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-pension-uk/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5bd9f9a324039acd", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-savings-account/page.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-savings-account/page.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f7e9fb56b2f5ab99", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-vs-rent-2026/page.tsx:65", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-vs-rent-2026/page.tsx:65"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5a9762d1d3bf2523", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-investing-canada/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-investing-canada/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b3995e0230acdc5", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-rental-property/page.tsx:19", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-rental-property/page.tsx:19"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58487967ad384cfe", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/hawl/page.tsx:87", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/hawl/page.tsx:87"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d7d505c35fe2a8e0", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-al-fitr-calculator/page.tsx:143", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-al-fitr-calculator/page.tsx:143"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5322be57141c46a2", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/mint-alternative-for-muslims/page.tsx:133", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/mint-alternative-for-muslims/page.tsx:133"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00f9151104fc56fb", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stocks-and-etfs/page.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stocks-and-etfs/page.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8003554abf41b820", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-credit-card-alternatives-2026/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-credit-card-alternatives-2026/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-003d052eb485afa6", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/aaoifi-halal-screening/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/aaoifi-halal-screening/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-83626237f25e172a", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/diminishing-musharaka-explained/page.tsx:68", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/diminishing-musharaka-explained/page.tsx:68"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b845d8e81484505", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-finance-basics/page.tsx:55", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-finance-basics/page.tsx:55"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-214d04c54656480c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-estate-planning-tools/page.tsx:85", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-estate-planning-tools/page.tsx:85"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bfa1336a7d74bb46", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-cryptocurrency/page.tsx:66", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-cryptocurrency/page.tsx:66"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-416fc72a71237697", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-my-mortgage-halal/page.tsx:72", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-my-mortgage-halal/page.tsx:72"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ebee20702c12ef0d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/la-wasiyyata-li-warith/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/la-wasiyyata-li-warith/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14d974a07d8cc897", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-receivables-and-business-debts/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-receivables-and-business-debts/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6dca45bea3270df", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/what-is-sukuk/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/what-is-sukuk/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41238171d71dde8e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-recipients-2026/page.tsx:61", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-recipients-2026/page.tsx:61"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d559f5f6dcf7ee2d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-providers-usa/page.tsx:113", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-providers-usa/page.tsx:113"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7df1ed155f553421", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ynab-alternative-for-muslims/page.tsx:92", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ynab-alternative-for-muslims/page.tsx:92"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0297c9a14d921430", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-money-market-funds/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-money-market-funds/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a393b1bcafc4909", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-nfts-and-digital-assets/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-nfts-and-digital-assets/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d7597f319943af3a", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-gold-hanafi/page.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-gold-hanafi/page.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc16f4202874a666", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ramadan-giving-tracker/page.tsx:87", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ramadan-giving-tracker/page.tsx:87"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-990f8d50261ed994", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-index-funds-2026/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-index-funds-2026/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f272d2bf651b301d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-stock-screener/page.tsx:115", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-stock-screener/page.tsx:115"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cab0fd7108251a6", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-loans-usa/page.tsx:50", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-loans-usa/page.tsx:50"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02f94a9d7b329fbd", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/hajj-savings-plan/page.tsx:87", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/hajj-savings-plan/page.tsx:87"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c88373cfa4ac6f9a", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-amazon-stock-halal-2026/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-amazon-stock-halal-2026/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a53852ed5e2277d9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-life-insurance-vs-takaful/page.tsx:65", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-life-insurance-vs-takaful/page.tsx:65"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95ff674d6665ecd4", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stocks/page.tsx:72", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stocks/page.tsx:72"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc1a5cec26bfd9e0", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-etfs/page.tsx:126", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-etfs/page.tsx:126"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68bb3c69ac270266", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-robo-advisor-comparison/page.tsx:66", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-robo-advisor-comparison/page.tsx:66"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f771bb80b3ddf16", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-bitcoin-halal-2026/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-bitcoin-halal-2026/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a428698532bd9a97", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab-gbp/page.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab-gbp/page.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d2068008c4af293", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/riba-elimination/page.tsx:109", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/riba-elimination/page.tsx:109"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a54b8d2e2b8a10b9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-near-me/page.tsx:72", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-near-me/page.tsx:72"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6560f95aca17b13", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ijara-vs-murabaha-vs-musharaka-explained/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ijara-vs-murabaha-vs-musharaka-explained/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74dc4097421274c0", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-uk/page.tsx:101", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-uk/page.tsx:101"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0432bd5d91de90de", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-finance-app/page.tsx:229", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-finance-app/page.tsx:229"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f338da91493c1e5", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-401k/page.tsx:94", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-401k/page.tsx:94"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab74124c427b6292", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-a-529-plan-halal/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-a-529-plan-halal/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1aa836b627127f22", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-business-assets/page.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-business-assets/page.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-922cc8a6fb5780e8", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-estate-planning/page.tsx:88", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-estate-planning/page.tsx:88"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51ff2c3b295fa864", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-savings-account-usa/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-savings-account-usa/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd8d9adeb511a27f", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-banking-vs-conventional/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-banking-vs-conventional/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6d8d7b35585c83c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/what-is-zakat/page.tsx:141", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/what-is-zakat/page.tsx:141"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd527818a60d3b5c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-savings/page.tsx:56", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-savings/page.tsx:56"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d6f03e35645cf979", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-stocks/page.tsx:84", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-stocks/page.tsx:84"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-04897df4531d94d1", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-will/page.tsx:72", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-will/page.tsx:72"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fed9758b0b2383c2", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-my-401k-halal/page.tsx:66", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-my-401k-halal/page.tsx:66"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b4af2e8937ca126", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/riba-free-mortgage/page.tsx:130", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/riba-free-mortgage/page.tsx:130"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-254a01e3d33c432c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-budgeting-app/page.tsx:337", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-budgeting-app/page.tsx:337"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6a2b2ec1c15b72b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-retirement-accounts/page.tsx:55", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-retirement-accounts/page.tsx:55"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95dbcf2bbbe7944f", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/madhab-finance/page.tsx:110", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/madhab-finance/page.tsx:110"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a461dc14011c0fb", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-investing-guide/page.tsx:125", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-investing-guide/page.tsx:125"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d476111eeeb122d9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/sadaqah-jariyah-ideas/page.tsx:90", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/sadaqah-jariyah-ideas/page.tsx:90"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91da1dfe28c122e5", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-401k/page.tsx:20", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-401k/page.tsx:20"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28a86718b8486f18", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-al-fitr/page.tsx:55", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-al-fitr/page.tsx:55"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab13dea49b3d7e00", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/how-much-zakat-do-i-owe/page.tsx:136", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/how-much-zakat-do-i-owe/page.tsx:136"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae49bc99f6d4b83e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-budgeting/page.tsx:169", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-budgeting/page.tsx:169"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4f438c007584766d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-401k-methodology/page.tsx:59", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-401k-methodology/page.tsx:59"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f84437951daae1f8", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-crypto/page.tsx:19", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-crypto/page.tsx:19"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-911c9701ec0d3a68", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ramadan-giving-tracker-setup/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ramadan-giving-tracker-setup/page.tsx:67"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d42a609b1e820dc0", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/muslim-household-budget/page.tsx:159", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/muslim-household-budget/page.tsx:159"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4f3b4a9034a019b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab/page.tsx:90", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab/page.tsx:90"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a62b0b5e5ece0449", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stock-options-rsus/page.tsx:66", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stock-options-rsus/page.tsx:66"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68c8eb3ffa91c968", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab-gold-vs-silver/page.tsx:69", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab-gold-vs-silver/page.tsx:69"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4db2dc669b21e8d4", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-gold/page.tsx:63", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-gold/page.tsx:63"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2cc697fce2ee04a9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/sadaqah-vs-zakat/page.tsx:104", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/sadaqah-vs-zakat/page.tsx:104"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66bf4ef1cc648248", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-emergency-fund-methodology/page.tsx:62", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-emergency-fund-methodology/page.tsx:62"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9dab172061f382a", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/hawl/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/hawl/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41eb0d4324eab326", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/what-is-sukuk/page.tsx:65", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/what-is-sukuk/page.tsx:65"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-38ac03857a5dbeea", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/riba-elimination/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/riba-elimination/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a3aabf2b31b5f74", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/islamic-finance-app/page.tsx:64", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/islamic-finance-app/page.tsx:64"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-108d54a08950102b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/what-is-zakat/page.tsx:46", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/what-is-zakat/page.tsx:46"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17048db623cfcee7", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/halal-stocks/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/halal-stocks/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8992b42e440311f", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/types-of-zakat/page.tsx:30", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/types-of-zakat/page.tsx:30"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d12ac94b6c87b45", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/how-much-zakat-do-i-owe/page.tsx:31", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d66b517998b8b7f", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/halal-budgeting/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/halal-budgeting/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86e058cb368a946e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/nisab/page.tsx:31", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/nisab/page.tsx:31"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac789903d5143447", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/zakat-on-gold/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/zakat-on-gold/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8701ec90c297dcac", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/zakat-calculator/page.tsx:81", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/zakat-calculator/page.tsx:81"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54a2a624bf9f944c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/ramadan/page.tsx:105", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ramadan/page.tsx:105"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af062c368bb4f4d9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/zakat-uk/page.tsx:96", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/zakat-uk/page.tsx:96"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-934b5960210b6bcc", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/hawl/page.tsx:58", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/hawl/page.tsx:58"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-660a8229b4b9f33e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/what-is-sukuk/page.tsx:66", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/what-is-sukuk/page.tsx:66"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c83057696d33991", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/riba-elimination/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/riba-elimination/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9441a13bdaeeb0c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/what-is-zakat/page.tsx:49", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/what-is-zakat/page.tsx:49"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9043d06030cd375", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/halal-stocks/page.tsx:58", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/halal-stocks/page.tsx:58"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9076898c1c97c841", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/application-finance-islamique/page.tsx:65", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/application-finance-islamique/page.tsx:65"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-051cece311ab9054", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/types-of-zakat/page.tsx:31", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/types-of-zakat/page.tsx:31"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98877b3ae2352afc", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/how-much-zakat-do-i-owe/page.tsx:32", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/how-much-zakat-do-i-owe/page.tsx:32"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7c9214f85281904", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/halal-budgeting/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/halal-budgeting/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d858819f24cc6d89", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/nisab/page.tsx:32", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/nisab/page.tsx:32"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ab2bf05de70d358", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/zakat-on-gold/page.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/zakat-on-gold/page.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-33d1d929b0908395", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/zakat-calculator/page.tsx:82", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/zakat-calculator/page.tsx:82"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c0b9d47ea0d26cb", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/try/page.tsx:48", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/try/page.tsx:48"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89ad3267ef780737", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/refer/page.tsx:147", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/refer/page.tsx:147"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cbc04dc2c6025acd", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/page.tsx:96", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/page.tsx:96"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7aaef682feeba5b0", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/waqf/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/waqf/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a821d54e58c1642", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/riba/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/riba/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7710b5e03535e605", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/hawl/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/hawl/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4426d06e0724bce7", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/ijara/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/ijara/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e2b97f8c86451ae0", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/sadaqah/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/sadaqah/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64f4cb37f8ae150d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/sukuk/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/sukuk/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f596bd446353369c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/faraid/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/faraid/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e05f68ce6ba8ff6", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/takaful/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/takaful/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6b011414dfff1ab", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/murabaha/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/murabaha/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9816bea1a2d1731", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/musharaka/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/musharaka/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edd7cee287c4a777", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/zakat/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/zakat/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a4f41f7590076e82", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/hibah/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/hibah/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd6906aceb2e827c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/nisab/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/nisab/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf07862e9365fd08", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/wassiyah/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/wassiyah/page.tsx:40"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc4f046ed1c26c69", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/trust/TrustPageClient.tsx:85", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/trust/TrustPageClient.tsx:85"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce1dcb29ae678b0b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/page.tsx:106", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/page.tsx:106"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe9aa9b1049f0011", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/msft/page.tsx:36", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/msft/page.tsx:36"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b84cf71b1e6b964", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/adbe/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/adbe/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d2b63734bfd6e6b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/ko/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/ko/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17ecef5aecef2de4", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/list/page.tsx:104", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/list/page.tsx:104"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6067ca528900257", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nvda/page.tsx:36", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nvda/page.tsx:36"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46bcb294edd72f2e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/tsla/page.tsx:36", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/tsla/page.tsx:36"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f632a2c3469b3c6", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nflx/page.tsx:52", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nflx/page.tsx:52"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4495744e14bd0a96", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/meta/page.tsx:52", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/meta/page.tsx:52"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f3d10fe14fa26872", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/orcl/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/orcl/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f61ce16f48fecbb", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/amzn/page.tsx:36", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/amzn/page.tsx:36"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7483481e5b83c4ce", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/ul/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/ul/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-731a6885de22430c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/pg/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/pg/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f26b2a0cd80e976", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/aapl/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/aapl/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4a34cb17acab6f9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/crm/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/crm/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-306c49e9cbf7a694", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nsrgy/page.tsx:52", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nsrgy/page.tsx:52"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a19a58d3f29c3717", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/amd/page.tsx:44", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/amd/page.tsx:44"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a64de147aa918ef1", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/googl/page.tsx:52", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/googl/page.tsx:52"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-825803cec421b95f", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/family/page.tsx:117", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/family/page.tsx:117"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b25d6147e984a5fe", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/faraid-calculator/page.tsx:79", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/faraid-calculator/page.tsx:79"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5df26b07fbf9a88d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/page.tsx:242", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/page.tsx:242"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbcdfcd52d0b30dd", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-zeta/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-zeta/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f6727805b362069", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/islamic-finance-apps/page.tsx:54", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/islamic-finance-apps/page.tsx:54"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3cfc17e5e9bc5391", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-rocketmoney/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-rocketmoney/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ba03ee3dc899ec9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-zoya/page.tsx:83", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-zoya/page.tsx:83"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c7b19ff9351fc4fd", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-pocketguard/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-pocketguard/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7cb3dc15f56acc99", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-fudget/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-fudget/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-26d92f04df3c3a54", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-stash/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-stash/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da3f957dd41edd44", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-robinhood/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-robinhood/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29d6da7d20254164", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-quicken/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-quicken/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cdcdb2e0974ee4b7", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-musaffa/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-musaffa/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db8ae37f62fb132f", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-wahed/page.tsx:73", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-wahed/page.tsx:73"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c2b010ebb89ddd6", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-yaqeen-money/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-yaqeen-money/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-901209ea3c819097", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-tiller/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-tiller/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d119833cfbf41c50", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-acorns/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-acorns/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b46f0b05d601195", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-saturna/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-saturna/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14033224804d2913", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-mvelopes/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-mvelopes/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa1ae7ddf1deb446", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-ynab/page.tsx:74", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-ynab/page.tsx:74"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-531e14b615f6d6fe", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-spendee/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-spendee/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-92c566e352e01bfd", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-empower/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-empower/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4d4154bd3bdd894b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-personal-capital/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-personal-capital/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea876c09d5cdc780", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-monarch/page.tsx:71", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-monarch/page.tsx:71"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8563d0163e11239e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-copilot/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-copilot/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f800c41c93514b51", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-wealthfront/page.tsx:70", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-wealthfront/page.tsx:70"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee666cf64f657c4b", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/features/page.tsx:47", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/features/page.tsx:47"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd5b56113f347fd9", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/methodology/MethodologyClient.tsx:34", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/methodology/MethodologyClient.tsx:34"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b499c14a8da090e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/zakat-calculator/page.tsx:112", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/zakat-calculator/page.tsx:112"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6139cc09ca12f53a", "name": "Insecure pattern 'local_storage_auth_token' in src/lib/api.ts:525", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/lib/api.ts:525"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-06b46ff12293525d", "name": "Possible secret in src/lib/i18n/dictionaries/fr.ts", "shortDescription": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-f705b43ebdfdaf65", "name": "Possible secret in src/lib/i18n/dictionaries/ur.ts", "shortDescription": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a86bb0a96ba9e871", "name": "Possible secret in src/lib/i18n/dictionaries/en.ts", "shortDescription": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4effdf74a92da461", "name": "Possible secret in src/lib/i18n/dictionaries/ar.ts", "shortDescription": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-328eb7b3e9ef8a20", "name": "Insecure pattern 'dangerous_innerhtml' in src/legacy/homepage-pre-v20-2026-04-30.tsx:182", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/legacy/homepage-pre-v20-2026-04-30.tsx:182"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a32b96c4befc421", "name": "Possible secret in e2e/api-health.spec.ts", "shortDescription": {"text": "Possible secret in e2e/api-health.spec.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-9b154b857c6d89b5", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65c9bd56493a81d3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3d3edcf8c74ee64", "name": "Very large file: src/components/admin/LifecycleCampaignCenter.tsx (1538 lines)", "shortDescription": {"text": "Very large file: src/components/admin/LifecycleCampaignCenter.tsx (1538 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0fabf1f69b66b094", "name": "Very large file: src/components/admin/AdminUserDetailModal.tsx (1237 lines)", "shortDescription": {"text": "Very large file: src/components/admin/AdminUserDetailModal.tsx (1237 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f3c3393f4581e508", "name": "Very large file: src/app/dashboard/page.tsx (1850 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/page.tsx (1850 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-62d41939dda30e50", "name": "Very large file: src/app/dashboard/transactions/page.tsx (2080 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/transactions/page.tsx (2080 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f35b305e4180cab1", "name": "Very large file: src/app/dashboard/riba/page.tsx (1194 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/riba/page.tsx (1194 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-969c62fd3a047c04", "name": "Very large file: src/app/dashboard/analytics/page.tsx (1089 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/analytics/page.tsx (1089 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b87cfcaf5bb07b8", "name": "Very large file: src/app/dashboard/shared/page.tsx (1179 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/shared/page.tsx (1179 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b00c5d605eb903a", "name": "Very large file: src/app/dashboard/investments/page.tsx (1058 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/investments/page.tsx (1058 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81c50f1b964b2be3", "name": "Very large file: src/app/dashboard/profile/page.tsx (1057 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/profile/page.tsx (1057 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca8c179b695eb519", "name": "Very large file: src/app/dashboard/zakat/page.tsx (1840 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/zakat/page.tsx (1840 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e89751f372fb1f3a", "name": "Very large file: src/app/dashboard/cash-flow/page.tsx (1214 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/cash-flow/page.tsx (1214 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e9ea4bfea097881f", "name": "Very large file: src/app/dashboard/debts/page.tsx (1193 lines)", "shortDescription": {"text": "Very large file: src/app/dashboard/debts/page.tsx (1193 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-287d612dc77b96fb", "name": "Very large file: src/lib/api.ts (2511 lines)", "shortDescription": {"text": "Very large file: src/lib/api.ts (2511 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d66759063ff5115", "name": "Very large file: src/lib/i18n/dictionaries/fr.ts (4327 lines)", "shortDescription": {"text": "Very large file: src/lib/i18n/dictionaries/fr.ts (4327 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-510020677872f78c", "name": "Very large file: src/lib/i18n/dictionaries/ur.ts (4321 lines)", "shortDescription": {"text": "Very large file: src/lib/i18n/dictionaries/ur.ts (4321 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b22615494893568e", "name": "Very large file: src/lib/i18n/dictionaries/en.ts (4386 lines)", "shortDescription": {"text": "Very large file: src/lib/i18n/dictionaries/en.ts (4386 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90c2f90add55321a", "name": "Very large file: src/lib/i18n/dictionaries/ar.ts (4321 lines)", "shortDescription": {"text": "Very large file: src/lib/i18n/dictionaries/ar.ts (4321 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "17 test file(s) for 503 source file(s) (ratio 0.03). 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 51 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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 169 placeholder/mock markers across 58 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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-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-1769100d559bed9a", "name": "Commented-code block (5 lines) in playwright.config.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in playwright.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-f0e35bb27acd0aee", "name": "Commented-code block (8 lines) in eslint.config.mjs:8", "shortDescription": {"text": "Commented-code block (8 lines) in eslint.config.mjs: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-7139a03582805ed0", "name": "Commented-code block (6 lines) in next.config.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in next.config.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-9daaddfbf919f0ee", "name": "Commented-code block (5 lines) in scripts/contract-check.ts:93", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/contract-check.ts:93"}, "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-bf0cff8ded0a6aed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/link-sandbox-bank.mjs:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/link-sandbox-bank.mjs:88"}, "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-f2342ac79fe8abb2", "name": "Commented-code block (5 lines) in src/instrumentation-client.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/instrumentation-client.ts:9"}, "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-d4ecee01b0d48b16", "name": "Commented-code block (5 lines) in src/proxy.ts:102", "shortDescription": {"text": "Commented-code block (5 lines) in src/proxy.ts:102"}, "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-d3850fd2a91a4893", "name": "Commented-code block (6 lines) in src/__tests__/backgroundPollsDoNotLogout.test.ts:115", "shortDescription": {"text": "Commented-code block (6 lines) in src/__tests__/backgroundPollsDoNotLogout.test.ts:115"}, "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-ba83bc78fc1612c1", "name": "Commented-code block (8 lines) in src/__tests__/adminSurfaces.test.tsx:148", "shortDescription": {"text": "Commented-code block (8 lines) in src/__tests__/adminSurfaces.test.tsx:148"}, "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-d610a6617c009c37", "name": "Legacy-named symbol `rt_old` in src/__tests__/refreshTokenFallback.test.ts:24", "shortDescription": {"text": "Legacy-named symbol `rt_old` in src/__tests__/refreshTokenFallback.test.ts:24"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c16152654404e64", "name": "Commented-code block (6 lines) in src/components/NisabLivePrices.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/NisabLivePrices.tsx: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-b5d7a616a63c7f8c", "name": "Commented-code block (6 lines) in src/components/GoogleSignInButton.tsx:86", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/GoogleSignInButton.tsx:86"}, "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-8dd41878f217978e", "name": "Commented-code block (12 lines) in src/components/TransactionUsageMeter.tsx:27", "shortDescription": {"text": "Commented-code block (12 lines) in src/components/TransactionUsageMeter.tsx:27"}, "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-1835c70ec323575c", "name": "Commented-code block (8 lines) in src/components/OnboardingWizard.tsx:22", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/OnboardingWizard.tsx: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-8d4c56668a72bcd3", "name": "Commented-code block (7 lines) in src/components/ReferralPromptModal.tsx:38", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/ReferralPromptModal.tsx:38"}, "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-8fd45740b41cf58b", "name": "Commented-code block (5 lines) in src/components/ErrorBoundary.tsx:31", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ErrorBoundary.tsx:31"}, "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-fc32ce4d0d5fc110", "name": "Commented-code block (6 lines) in src/components/ShareReceiptButton.tsx:74", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/ShareReceiptButton.tsx:74"}, "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-b54f05f58cbfcc1a", "name": "Commented-code block (5 lines) in src/components/PlanGate.tsx:47", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/PlanGate.tsx:47"}, "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-bf6341788dd16113", "name": "Commented-code block (5 lines) in src/components/SupportModeBanner.tsx:37", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/SupportModeBanner.tsx:37"}, "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-b0197bde3b87cf83", "name": "Commented-code block (12 lines) in src/components/TrialBanner.tsx:11", "shortDescription": {"text": "Commented-code block (12 lines) in src/components/TrialBanner.tsx: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-2200794b987736d0", "name": "Commented-code block (7 lines) in src/components/BankLogo.tsx:97", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/BankLogo.tsx:97"}, "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-fcf38742144f3c8e", "name": "Commented-code block (5 lines) in src/components/HeroLink.tsx:122", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/HeroLink.tsx:122"}, "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-87cd9c3c97941e90", "name": "Commented-code block (5 lines) in src/components/SessionTimeoutModal.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/SessionTimeoutModal.tsx: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-57e1fc01fe8005ee", "name": "Commented-code block (6 lines) in src/components/MerchantLogo.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/MerchantLogo.tsx: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-5ffa692644efa6c7", "name": "Commented-code block (7 lines) in src/components/SyncBanksButton.tsx:65", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/SyncBanksButton.tsx:65"}, "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-3a85348bac98a97f", "name": "Commented-code block (10 lines) in src/components/ui/ModalShell.tsx:46", "shortDescription": {"text": "Commented-code block (10 lines) in src/components/ui/ModalShell.tsx: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-494858d456f4646a", "name": "Commented-code block (5 lines) in src/components/dashboard/InlineMonthBreakdown.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/dashboard/InlineMonthBreakdown.tsx: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-b7c4626cc435798c", "name": "Commented-code block (5 lines) in src/components/dashboard/NetWorthDrilldown.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/dashboard/NetWorthDrilldown.tsx: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-e323d4850630a192", "name": "Commented-code block (6 lines) in src/components/dashboard/KpiCard.tsx:253", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/dashboard/KpiCard.tsx:253"}, "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-adff74378215c708", "name": "Commented-code block (5 lines) in src/components/dashboard/WeeklyRecap.tsx:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/dashboard/WeeklyRecap.tsx: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-2674ac535e88c53e", "name": "Commented-code block (8 lines) in src/components/dashboard/MonthDetailSheet.tsx:100", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/dashboard/MonthDetailSheet.tsx:100"}, "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-2d9d7e39398311b8", "name": "Commented-code block (6 lines) in src/components/admin/adminFormatting.ts:73", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/admin/adminFormatting.ts:73"}, "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-66b46bd9ca05854e", "name": "Commented-code block (8 lines) in src/components/admin/DataFreshness.tsx:66", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/admin/DataFreshness.tsx:66"}, "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-2c93ba67f6c82062", "name": "Commented-code block (5 lines) in src/components/admin/AdminGrantTrialModal.tsx:46", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/admin/AdminGrantTrialModal.tsx: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-8b43e58f25c7ee1e", "name": "Commented-code block (5 lines) in src/components/admin/AdminUserDetailModal.tsx:284", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/admin/AdminUserDetailModal.tsx:284"}, "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-8c8974f626ad7cd6", "name": "Commented-code block (6 lines) in src/app/not-found.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/not-found.tsx: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-387f0e6af3a0f6b0", "name": "Commented-code block (6 lines) in src/app/sitemap.ts:245", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/sitemap.ts:245"}, "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-9bd45099fdf47063", "name": "Commented-code block (11 lines) in src/app/page.tsx:26", "shortDescription": {"text": "Commented-code block (11 lines) in src/app/page.tsx:26"}, "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-b9c6b0afbb7c2544", "name": "Commented-code block (8 lines) in src/app/layout.tsx:19", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/layout.tsx: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-29fb017492bb13e2", "name": "Commented-code block (6 lines) in src/app/providers.tsx:85", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/providers.tsx:85"}, "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-32c5a8b89e3cb718", "name": "Commented-code block (5 lines) in src/app/email-capture/route.ts:46", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/email-capture/route.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-76cb11b1b9f5165c", "name": "Commented-code block (7 lines) in src/app/open/page.tsx:54", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/open/page.tsx:54"}, "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-47b5e3fdc2b56063", "name": "Commented-code block (5 lines) in src/app/learn/halal-stocks/page.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/learn/halal-stocks/page.tsx: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-f14fff389ed96cb8", "name": "Commented-code block (5 lines) in src/app/learn/halal-investing-guide/page.tsx:199", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/learn/halal-investing-guide/page.tsx:199"}, "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-3301c566688aa92a", "name": "Commented-code block (5 lines) in src/app/auth/[...path]/route.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/auth/[...path]/route.ts:18"}, "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-231219875b9b8e1e", "name": "Commented-code block (5 lines) in src/app/login/page.tsx:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/login/page.tsx:20"}, "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-28c3ec05ad651ec0", "name": "Commented-code block (5 lines) in src/app/dashboard/AskBarakah.tsx:185", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/AskBarakah.tsx:185"}, "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-cf6df69ed55bf70d", "name": "Commented-code block (5 lines) in src/app/dashboard/page.tsx:138", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/page.tsx:138"}, "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-bec7f14dca59fdc9", "name": "Commented-code block (5 lines) in src/app/dashboard/NotificationBell.tsx:62", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/NotificationBell.tsx:62"}, "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-5aee4b6cc3480728", "name": "Commented-code block (8 lines) in src/app/dashboard/layout.tsx:35", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/dashboard/layout.tsx:35"}, "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-287c5ffc17bcb51d", "name": "Commented-code block (5 lines) in src/app/dashboard/categorize/page.tsx:142", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/categorize/page.tsx:142"}, "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-7eb388ca635e77a3", "name": "Commented-code block (5 lines) in src/app/dashboard/settings/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/settings/page.tsx:1"}, "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-9caaccf9fe25f2eb", "name": "Commented-code block (6 lines) in src/app/dashboard/transactions/page.tsx:82", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/transactions/page.tsx:82"}, "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-2b72739d239c3d4d", "name": "Commented-code block (5 lines) in src/app/dashboard/forecasting/page.tsx:52", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/forecasting/page.tsx:52"}, "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-bf50cf631f9bf196", "name": "Commented-code block (5 lines) in src/app/dashboard/notifications/page.tsx:30", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/notifications/page.tsx:30"}, "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-850e519bedcfa2d1", "name": "Commented-code block (6 lines) in src/app/dashboard/riba/page.tsx:32", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/riba/page.tsx:32"}, "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-e7bc69dc17f025ee", "name": "Commented-code block (6 lines) in src/app/dashboard/analytics/page.tsx:11", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/analytics/page.tsx: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-ef4323f2d96e95a7", "name": "Commented-code block (6 lines) in src/app/dashboard/shared/page.tsx:61", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/shared/page.tsx:61"}, "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-42c420459bea2752", "name": "Commented-code block (5 lines) in src/app/dashboard/budget/page.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/budget/page.tsx:14"}, "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-b07b1b53b9e6fb92", "name": "Commented-code block (6 lines) in src/app/dashboard/referral/page.tsx:34", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/referral/page.tsx:34"}, "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-0b7d491f89c51cb7", "name": "Commented-code block (7 lines) in src/app/dashboard/recurring/page.tsx:413", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/dashboard/recurring/page.tsx:413"}, "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-2bc0d33833656cc6", "name": "Commented-code block (9 lines) in src/app/dashboard/net-worth/page.tsx:107", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/dashboard/net-worth/page.tsx:107"}, "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-cd2d95ee04eff329", "name": "Commented-code block (7 lines) in src/app/dashboard/assets/page.tsx:64", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/dashboard/assets/page.tsx:64"}, "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-67a1bad988b5bc85", "name": "Commented-code block (6 lines) in src/app/dashboard/fiqh/page.tsx:126", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/fiqh/page.tsx:126"}, "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-1c4d1373b1da7779", "name": "Commented-code block (5 lines) in src/app/dashboard/bills/page.tsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/bills/page.tsx:18"}, "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-f93f2b90f59dfc8c", "name": "Commented-code block (5 lines) in src/app/dashboard/savings/page.tsx:330", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/savings/page.tsx:330"}, "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-9c23020bb15e2c46", "name": "Commented-code block (6 lines) in src/app/dashboard/billing/page.tsx:27", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/billing/page.tsx:27"}, "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-0c121111c870875e", "name": "Commented-code block (7 lines) in src/app/dashboard/faraid/page.tsx:186", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/dashboard/faraid/page.tsx:186"}, "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-c1b5405f043f5029", "name": "Commented-code block (8 lines) in src/app/dashboard/admin/page.tsx:442", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/dashboard/admin/page.tsx:442"}, "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-91a340370f8e38ff", "name": "Commented-code block (7 lines) in src/app/dashboard/admin/email-preview/page.tsx:294", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/dashboard/admin/email-preview/page.tsx:294"}, "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-eae7c133297e960d", "name": "Commented-code block (5 lines) in src/app/dashboard/wasiyyah/page.tsx:295", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/wasiyyah/page.tsx:295"}, "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-228aa80bf2ffc2b8", "name": "Commented-code block (6 lines) in src/app/dashboard/investments/page.tsx:126", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/investments/page.tsx:126"}, "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-1091e307d5a75203", "name": "Commented-code block (6 lines) in src/app/dashboard/ledger/page.tsx:137", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/ledger/page.tsx:137"}, "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-2c2aa05b16d70e18", "name": "Legacy-named symbol `profPwSameAsOld` in src/app/dashboard/profile/page.tsx:238", "shortDescription": {"text": "Legacy-named symbol `profPwSameAsOld` in src/app/dashboard/profile/page.tsx:238"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfdedc7a4da8649a", "name": "Commented-code block (5 lines) in src/app/dashboard/reports/page.tsx:247", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/reports/page.tsx:247"}, "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-0546c425fb61bbf5", "name": "Commented-code block (7 lines) in src/app/dashboard/zakat/page.tsx:32", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/dashboard/zakat/page.tsx:32"}, "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-b3e5d491636a178b", "name": "Commented-code block (10 lines) in src/app/dashboard/summary/page.tsx:381", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/dashboard/summary/page.tsx:381"}, "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-2815da6f17337981", "name": "Commented-code block (6 lines) in src/app/dashboard/subscriptions/page.tsx:91", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/subscriptions/page.tsx:91"}, "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-1f864b4d957e9c88", "name": "Commented-code block (5 lines) in src/app/dashboard/retirement-zakat/page.tsx:57", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/dashboard/retirement-zakat/page.tsx:57"}, "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-5234d8fa2f349960", "name": "Commented-code block (7 lines) in src/app/dashboard/cash-flow/page.tsx:119", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/dashboard/cash-flow/page.tsx:119"}, "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-721a5f9a60bd9582", "name": "Commented-code block (6 lines) in src/app/dashboard/debts/page.tsx:657", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/dashboard/debts/page.tsx:657"}, "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-b3d9ab537e89a7d3", "name": "Commented-code block (6 lines) in src/app/signup/page.tsx:13", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/signup/page.tsx: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-c9ad28e09e30f63a", "name": "Commented-code block (5 lines) in src/app/plaid/oauth/page.tsx:28", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/plaid/oauth/page.tsx:28"}, "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-a389d68158f21355", "name": "Commented-code block (8 lines) in src/app/fiqh-terms/page.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/fiqh-terms/page.tsx: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-87288d26fb692a5d", "name": "Commented-code block (7 lines) in src/app/onboarding/locale-confirm/page.tsx:2", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/onboarding/locale-confirm/page.tsx:2"}, "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-6bdc5e32c9f61d70", "name": "Commented-code block (5 lines) in src/app/trust/page.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/trust/page.tsx: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-da019dae15faf1c4", "name": "Commented-code block (10 lines) in src/app/trust/TrustPageClient.tsx:6", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/trust/TrustPageClient.tsx: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-9069ed76e5547492", "name": "Commented-code block (5 lines) in src/app/halal-stocks/page.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/halal-stocks/page.tsx: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-675d4d851ed5839f", "name": "Commented-code block (7 lines) in src/app/family/join/page.tsx:40", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/family/join/page.tsx:40"}, "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-227df4589515feeb", "name": "Commented-code block (5 lines) in src/app/setup/page.tsx:95", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/setup/page.tsx:95"}, "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-3244d80f33fb53ad", "name": "Commented-code block (15 lines) in src/app/sso/confirm-link/page.tsx:32", "shortDescription": {"text": "Commented-code block (15 lines) in src/app/sso/confirm-link/page.tsx:32"}, "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-46e72b8c0ed92c92", "name": "Commented-code block (6 lines) in src/app/pricing/PricingToggle.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/pricing/PricingToggle.tsx: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-2ae847b64706fef3", "name": "Commented-code block (5 lines) in src/app/pricing/page.tsx:62", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/pricing/page.tsx:62"}, "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-8c32cdb8a1f8a34b", "name": "Commented-code block (5 lines) in src/app/methodology/page.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/methodology/page.tsx: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-b58e1cf0fe5d7d45", "name": "Commented-code block (7 lines) in src/app/methodology/MethodologyClient.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/methodology/MethodologyClient.tsx: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-0324fabbfa24fd6f", "name": "Commented-code block (6 lines) in src/app/seo/indexnow/route.ts:41", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/seo/indexnow/route.ts:41"}, "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-a0465f2cd7a63410", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/seo/indexnow/route.ts:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/seo/indexnow/route.ts:84"}, "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-5c1d9b7fff1fe7fd", "name": "Commented-code block (9 lines) in src/app/zakat-calculator/Calculator.tsx:141", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/zakat-calculator/Calculator.tsx:141"}, "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-bd5ee31ac3a3a30e", "name": "Commented-code block (6 lines) in src/lib/api.ts:24", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/api.ts:24"}, "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-52c9b43c7785bcd9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/api.ts:754", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/api.ts:754"}, "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-a18ad71b3ac8ddaa", "name": "Commented-code block (7 lines) in src/lib/useDarkMode.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/useDarkMode.ts:5"}, "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-f4c5850d318aa52a", "name": "Commented-code block (6 lines) in src/lib/useLocalizedPrice.ts:112", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/useLocalizedPrice.ts:112"}, "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-82d2f83817e401ea", "name": "Commented-code block (5 lines) in src/lib/analytics.ts:163", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/analytics.ts:163"}, "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-25c140ac5f2bfcaf", "name": "Commented-code block (5 lines) in src/lib/schemas.ts:155", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/schemas.ts:155"}, "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-e7c8ff945bcdc828", "name": "Commented-code block (5 lines) in src/lib/trial.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/trial.ts:5"}, "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-abb2f60d849e9f1e", "name": "Commented-code block (5 lines) in src/lib/scrubUrlToken.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/scrubUrlToken.ts:47"}, "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-078b1d6e7a78ebbf", "name": "Commented-code block (6 lines) in src/lib/useCurrency.ts:61", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/useCurrency.ts:61"}, "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-f643b75d711e0ec8", "name": "Commented-code block (13 lines) in src/lib/pricing.ts:9", "shortDescription": {"text": "Commented-code block (13 lines) in src/lib/pricing.ts:9"}, "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-67f7ab02b27d8a2c", "name": "Legacy-named symbol `barakah_guided_setup_v1` in src/lib/setup.ts:1", "shortDescription": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in src/lib/setup.ts:1"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-daf82e9ddc371ef8", "name": "Commented-code block (9 lines) in src/lib/i18n/index.ts:133", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/i18n/index.ts:133"}, "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-5c587aba974777f0", "name": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/fr.ts:1761", "shortDescription": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/fr.ts:1761"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd9313ef97195e6c", "name": "Commented-code block (5 lines) in src/lib/i18n/dictionaries/fr.ts:4129", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/i18n/dictionaries/fr.ts:4129"}, "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-19d2b8d6f9d8f3c0", "name": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/ur.ts:1761", "shortDescription": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/ur.ts:1761"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cd43ba738265c6c4", "name": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/en.ts:1815", "shortDescription": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/en.ts:1815"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ced53a8a60c9322", "name": "Commented-code block (6 lines) in src/lib/i18n/dictionaries/en.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/i18n/dictionaries/en.ts:7"}, "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-def259186e5b6bdf", "name": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/ar.ts:1761", "shortDescription": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/ar.ts:1761"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6a87dc7ad5613e9", "name": "Commented-code block (5 lines) in src/legacy/homepage-pre-v20-2026-04-30.tsx:93", "shortDescription": {"text": "Commented-code block (5 lines) in src/legacy/homepage-pre-v20-2026-04-30.tsx:93"}, "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-ab4e13d9c26cfc19", "name": "Legacy-named symbol `paywall_v2` in src/context/FeatureFlagsContext.tsx:118", "shortDescription": {"text": "Legacy-named symbol `paywall_v2` in src/context/FeatureFlagsContext.tsx:118"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6cda862f1df1c14", "name": "Commented-code block (5 lines) in src/context/FeatureFlagsContext.tsx:92", "shortDescription": {"text": "Commented-code block (5 lines) in src/context/FeatureFlagsContext.tsx:92"}, "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-ca24365faf302553", "name": "Commented-code block (5 lines) in src/context/AuthContext.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/context/AuthContext.tsx: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-a73204f1252c1aa4", "name": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/browser-authenticated.spec.ts:31", "shortDescription": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/browser-authenticated.spec.ts:31"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92b3e1e4361f27b2", "name": "Commented-code block (10 lines) in e2e/browser-authenticated.spec.ts:27", "shortDescription": {"text": "Commented-code block (10 lines) in e2e/browser-authenticated.spec.ts:27"}, "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-084fc639cf8aa0d1", "name": "Commented-code block (9 lines) in e2e/authenticated.spec.ts:20", "shortDescription": {"text": "Commented-code block (9 lines) in e2e/authenticated.spec.ts:20"}, "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-7f416f1d7488fc9d", "name": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/persona-walk.spec.ts:127", "shortDescription": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/persona-walk.spec.ts:127"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b96dd045771f3707", "name": "Commented-code block (11 lines) in e2e/persona-walk.spec.ts:55", "shortDescription": {"text": "Commented-code block (11 lines) in e2e/persona-walk.spec.ts:55"}, "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-b726967f28cfaacf", "name": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/trust-critical.spec.ts:65", "shortDescription": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/trust-critical.spec.ts:65"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a040c0071c08dcf", "name": "Commented-code block (5 lines) in e2e/trust-critical.spec.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/trust-critical.spec.ts:50"}, "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-a9067e8972b8aa4d", "name": "Dangling fetch: POST https://sandbox.plaid.com/sandbox/public_token/create (scripts/link-sandbox-bank.mjs:107)", "shortDescription": {"text": "Dangling fetch: POST https://sandbox.plaid.com/sandbox/public_token/create (scripts/link-sandbox-bank.mjs:107)"}, "fullDescription": {"text": "`scripts/link-sandbox-bank.mjs:107` calls `POST https://sandbox.plaid.com/sandbox/public_token/create` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/sandbox.plaid.com/sandbox/public_token/create`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e3e28aa98e9af44", "name": "Dangling fetch: POST /email-capture (src/components/RamadanEmailCapture.tsx:43)", "shortDescription": {"text": "Dangling fetch: POST /email-capture (src/components/RamadanEmailCapture.tsx:43)"}, "fullDescription": {"text": "`src/components/RamadanEmailCapture.tsx:43` calls `POST /email-capture` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/email-capture`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc5ada8bb57467eb", "name": "Dangling fetch: POST https://api.resend.com/audiences/${encodeURIComponent(audienceId)}/contacts (src/app/email-capture/", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/audiences/${encodeURIComponent(audienceId)}/contacts (src/app/email-capture/route.ts:260)"}, "fullDescription": {"text": "`src/app/email-capture/route.ts:260` calls `POST https://api.resend.com/audiences/${encodeURIComponent(audienceId)}/contacts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.resend.com/audiences/<p>/contacts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c89c1d30ad1f65e3", "name": "Dangling fetch: GET /api/zakat/info (src/app/zakat-calculator/Calculator.tsx:112)", "shortDescription": {"text": "Dangling fetch: GET /api/zakat/info (src/app/zakat-calculator/Calculator.tsx:112)"}, "fullDescription": {"text": "`src/app/zakat-calculator/Calculator.tsx:112` calls `GET /api/zakat/info` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/zakat/info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fef2fdc94165f30d", "name": "Dangling fetch: POST /api/careers/apply (src/lib/careers.ts:73)", "shortDescription": {"text": "Dangling fetch: POST /api/careers/apply (src/lib/careers.ts:73)"}, "fullDescription": {"text": "`src/lib/careers.ts:73` calls `POST /api/careers/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/careers/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8fdbacfe9430a6ed", "name": "Unused endpoint: POST /auth/login", "shortDescription": {"text": "Unused endpoint: POST /auth/login"}, "fullDescription": {"text": "`e2e/global-setup.ts` declares `POST /auth/login` 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/17928"}, "properties": {"repository": "realbasirujallow/barakah-web", "repoUrl": "https://github.com/realbasirujallow/barakah-web", "branch": "main"}, "results": [{"ruleId": "scanner-2a2d3475acb0b0a0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/contract-check.ts:115"}, "properties": {"repobilityId": "1d052ff6b1817476", "scanner": "scanner-primary", "fingerprint": "2a2d3475acb0b0a0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b486f25e5b24775c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/CityHalalMortgage.tsx:44"}, "properties": {"repobilityId": "05addbf426dcb487", "scanner": "scanner-primary", "fingerprint": "b486f25e5b24775c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3478cecb8c289814", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/HouseholdSection.tsx:240"}, "properties": {"repobilityId": "3336b856a4b2f219", "scanner": "scanner-primary", "fingerprint": "3478cecb8c289814", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dce893a5ab666dcd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/JsonLdScript.tsx:6"}, "properties": {"repobilityId": "5acd61d9b682a99c", "scanner": "scanner-primary", "fingerprint": "dce893a5ab666dcd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fffcb498abab7eae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/GettingStartedChecklist.tsx:129"}, "properties": {"repobilityId": "4f8f4c9a971f349b", "scanner": "scanner-primary", "fingerprint": "fffcb498abab7eae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b5d0f4775eb5ba3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/WeeklyRecap.tsx:149"}, "properties": {"repobilityId": "09f07057838141ce", "scanner": "scanner-primary", "fingerprint": "6b5d0f4775eb5ba3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4e5e933939eade2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/TopPriorities.tsx:123"}, "properties": {"repobilityId": "80e41b59191c0afb", "scanner": "scanner-primary", "fingerprint": "b4e5e933939eade2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2d70159fe1c5e2bf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/SpendingDrillDown.tsx:168"}, "properties": {"repobilityId": "49b434efce15164a", "scanner": "scanner-primary", "fingerprint": "2d70159fe1c5e2bf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-14f56a263dca8993", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/MonthDetailSheet.tsx:223"}, "properties": {"repobilityId": "0a82356a66c354be", "scanner": "scanner-primary", "fingerprint": "14f56a263dca8993", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39581c2a782d0e5b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/DailyRitual.tsx:102"}, "properties": {"repobilityId": "43b8bfcbbec51b3d", "scanner": "scanner-primary", "fingerprint": "39581c2a782d0e5b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2e11168c0d73f760", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminEmailLogTab.tsx:208"}, "properties": {"repobilityId": "02a4ed7c590d6f51", "scanner": "scanner-primary", "fingerprint": "2e11168c0d73f760", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-883fdd32c1582334", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUnverifiedTab.tsx:188"}, "properties": {"repobilityId": "45561bcb099c3049", "scanner": "scanner-primary", "fingerprint": "883fdd32c1582334", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0ac447aa1e32983b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUserDrilldownSheet.tsx:444"}, "properties": {"repobilityId": "791b0a636008566b", "scanner": "scanner-primary", "fingerprint": "0ac447aa1e32983b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fc58b54bb0f90fb6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/FunnelStageDrilldown.tsx:125"}, "properties": {"repobilityId": "d396a5c89bcb0dde", "scanner": "scanner-primary", "fingerprint": "fc58b54bb0f90fb6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dd941fd5bafe9ca2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminUserDetailModal.tsx:186"}, "properties": {"repobilityId": "8da8d2bfa431fd61", "scanner": "scanner-primary", "fingerprint": "dd941fd5bafe9ca2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-305891eb4a8f7a3d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:311"}, "properties": {"repobilityId": "0d72350965068f5b", "scanner": "scanner-primary", "fingerprint": "305891eb4a8f7a3d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1ab72732f49ac566", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/security/page.tsx:128"}, "properties": {"repobilityId": "34762d30689462fb", "scanner": "scanner-primary", "fingerprint": "1ab72732f49ac566", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4dd06cd393cf4083", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/email-capture/route.ts:384"}, "properties": {"repobilityId": "486c000361d77a01", "scanner": "scanner-primary", "fingerprint": "4dd06cd393cf4083", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f568faf225c429b1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/hawl/page.tsx:57"}, "properties": {"repobilityId": "d8a514e9943731d1", "scanner": "scanner-primary", "fingerprint": "f568faf225c429b1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c712acbdc845a30b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/what-is-sukuk/page.tsx:65"}, "properties": {"repobilityId": "6a6df3e2dfaefb0e", "scanner": "scanner-primary", "fingerprint": "c712acbdc845a30b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c7f7365a8007de8c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/riba-elimination/page.tsx:57"}, "properties": {"repobilityId": "320c35374d9233d4", "scanner": "scanner-primary", "fingerprint": "c7f7365a8007de8c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d82f419d635c6811", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/islamic-finance-app/page.tsx:64"}, "properties": {"repobilityId": "d6587d937232e1c2", "scanner": "scanner-primary", "fingerprint": "d82f419d635c6811", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c98193a1cccfa367", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/what-is-zakat/page.tsx:46"}, "properties": {"repobilityId": "8abf817d6445067f", "scanner": "scanner-primary", "fingerprint": "c98193a1cccfa367", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d29cb3dfc4567a69", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/halal-stocks/page.tsx:57"}, "properties": {"repobilityId": "bdf423a11e61efe9", "scanner": "scanner-primary", "fingerprint": "d29cb3dfc4567a69", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9eb9582cc9cf9c6e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/types-of-zakat/page.tsx:30"}, "properties": {"repobilityId": "20d625b2b58ee8c7", "scanner": "scanner-primary", "fingerprint": "9eb9582cc9cf9c6e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1d64771cd57f26c2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "properties": {"repobilityId": "86691ad91fb6723d", "scanner": "scanner-primary", "fingerprint": "1d64771cd57f26c2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1b24bd7df0c63c31", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/halal-budgeting/page.tsx:57"}, "properties": {"repobilityId": "554efcad57ef4a75", "scanner": "scanner-primary", "fingerprint": "1b24bd7df0c63c31", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1ce2b651197edc35", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/nisab/page.tsx:31"}, "properties": {"repobilityId": "76cd8e496d67a75c", "scanner": "scanner-primary", "fingerprint": "1ce2b651197edc35", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ccf59f99caadea1f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/learn/zakat-on-gold/page.tsx:57"}, "properties": {"repobilityId": "c8e37a37d6f0de00", "scanner": "scanner-primary", "fingerprint": "ccf59f99caadea1f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6c293a4cca3e7c61", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ur/zakat-calculator/page.tsx:81"}, "properties": {"repobilityId": "21a7dc64be32ae2b", "scanner": "scanner-primary", "fingerprint": "6c293a4cca3e7c61", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-11bc7bc8c0f9c182", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/page.tsx:362"}, "properties": {"repobilityId": "b39f2677a4c2eafb", "scanner": "scanner-primary", "fingerprint": "11bc7bc8c0f9c182", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f8900e88c9a56beb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/monarch-alternative-for-muslims/page.tsx:87"}, "properties": {"repobilityId": "d85a8cc51c55b2d2", "scanner": "scanner-primary", "fingerprint": "f8900e88c9a56beb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2df386dcf0df10f4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-real-estate-investing-2026/page.tsx:62"}, "properties": {"repobilityId": "0bd5f780b5d2746a", "scanner": "scanner-primary", "fingerprint": "2df386dcf0df10f4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0f9f6948efcf50a3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-pension-uk/page.tsx:67"}, "properties": {"repobilityId": "d75d77ae0011c077", "scanner": "scanner-primary", "fingerprint": "0f9f6948efcf50a3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6a52d479dfd7ad5e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-savings-account/page.tsx:73"}, "properties": {"repobilityId": "e0aba101aea5b9de", "scanner": "scanner-primary", "fingerprint": "6a52d479dfd7ad5e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-dd98d626b1367e0d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-vs-rent-2026/page.tsx:65"}, "properties": {"repobilityId": "9533173256c43c63", "scanner": "scanner-primary", "fingerprint": "dd98d626b1367e0d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1295797ef634cbce", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-investing-canada/page.tsx:67"}, "properties": {"repobilityId": "7836ccd8a54e543d", "scanner": "scanner-primary", "fingerprint": "1295797ef634cbce", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7a6d9980eef98a29", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-rental-property/page.tsx:19"}, "properties": {"repobilityId": "01686baf72f2c874", "scanner": "scanner-primary", "fingerprint": "7a6d9980eef98a29", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5f4142e3550270a8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/hawl/page.tsx:87"}, "properties": {"repobilityId": "0c7142712d62a65f", "scanner": "scanner-primary", "fingerprint": "5f4142e3550270a8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a516aca0f2cb2ee3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-al-fitr-calculator/page.tsx:143"}, "properties": {"repobilityId": "2965b4e941f9a10e", "scanner": "scanner-primary", "fingerprint": "a516aca0f2cb2ee3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b1b503008bc82306", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/mint-alternative-for-muslims/page.tsx:133"}, "properties": {"repobilityId": "2a56523f5e06a614", "scanner": "scanner-primary", "fingerprint": "b1b503008bc82306", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-28dfe685c8179e81", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stocks-and-etfs/page.tsx:73"}, "properties": {"repobilityId": "644f33b10ccf2762", "scanner": "scanner-primary", "fingerprint": "28dfe685c8179e81", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0ca1d1e73f4d30ec", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-credit-card-alternatives-2026/page.tsx:62"}, "properties": {"repobilityId": "1228f14bd32f6e9c", "scanner": "scanner-primary", "fingerprint": "0ca1d1e73f4d30ec", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a93abf6488ec0c39", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/aaoifi-halal-screening/page.tsx:67"}, "properties": {"repobilityId": "cca390dbaf73d383", "scanner": "scanner-primary", "fingerprint": "a93abf6488ec0c39", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8cb2d72aae15799d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/diminishing-musharaka-explained/page.tsx:68"}, "properties": {"repobilityId": "ed1214aeec38bcb8", "scanner": "scanner-primary", "fingerprint": "8cb2d72aae15799d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-89ae0336c526cb26", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-finance-basics/page.tsx:55"}, "properties": {"repobilityId": "bc45fce55a4f71f2", "scanner": "scanner-primary", "fingerprint": "89ae0336c526cb26", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c2996f25253bde6f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-estate-planning-tools/page.tsx:85"}, "properties": {"repobilityId": "079dc852f41a13f6", "scanner": "scanner-primary", "fingerprint": "c2996f25253bde6f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-672510843886f3f7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-cryptocurrency/page.tsx:66"}, "properties": {"repobilityId": "5a6e2c30bab04cf3", "scanner": "scanner-primary", "fingerprint": "672510843886f3f7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5f0df0eba381876e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-my-mortgage-halal/page.tsx:72"}, "properties": {"repobilityId": "9f6459604b1026e2", "scanner": "scanner-primary", "fingerprint": "5f0df0eba381876e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1b7eaed2cb7d1161", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/la-wasiyyata-li-warith/page.tsx:57"}, "properties": {"repobilityId": "c9ef3ccd1565315b", "scanner": "scanner-primary", "fingerprint": "1b7eaed2cb7d1161", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6638547fd9b14b58", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-receivables-and-business-debts/page.tsx:62"}, "properties": {"repobilityId": "637c0e8982d5841e", "scanner": "scanner-primary", "fingerprint": "6638547fd9b14b58", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fcf502e38ce9859b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/what-is-sukuk/page.tsx:67"}, "properties": {"repobilityId": "5ce949587f3a9a3b", "scanner": "scanner-primary", "fingerprint": "fcf502e38ce9859b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2a171f1c72e3739a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-recipients-2026/page.tsx:61"}, "properties": {"repobilityId": "385dd86736288a8f", "scanner": "scanner-primary", "fingerprint": "2a171f1c72e3739a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9c20844b5c54a1f4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-providers-usa/page.tsx:113"}, "properties": {"repobilityId": "67eb87db0a6984c9", "scanner": "scanner-primary", "fingerprint": "9c20844b5c54a1f4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-19e156bc6a380e2e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ynab-alternative-for-muslims/page.tsx:92"}, "properties": {"repobilityId": "695f8248adfe78ae", "scanner": "scanner-primary", "fingerprint": "19e156bc6a380e2e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9c8b59b71ef47095", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-money-market-funds/page.tsx:67"}, "properties": {"repobilityId": "9ac13b461868ec2c", "scanner": "scanner-primary", "fingerprint": "9c8b59b71ef47095", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3aabd192c5bfe890", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-nfts-and-digital-assets/page.tsx:62"}, "properties": {"repobilityId": "95d7e74ecbe3da89", "scanner": "scanner-primary", "fingerprint": "3aabd192c5bfe890", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d219ccc4e1e19fb4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-gold-hanafi/page.tsx:73"}, "properties": {"repobilityId": "6f14de9805d8b7ba", "scanner": "scanner-primary", "fingerprint": "d219ccc4e1e19fb4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-eeef2ed93c06f894", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ramadan-giving-tracker/page.tsx:87"}, "properties": {"repobilityId": "93a94f22be64be12", "scanner": "scanner-primary", "fingerprint": "eeef2ed93c06f894", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7cf48a94cab05bdb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-index-funds-2026/page.tsx:67"}, "properties": {"repobilityId": "ddb7c9d765c21f34", "scanner": "scanner-primary", "fingerprint": "7cf48a94cab05bdb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-86397e35adc4f257", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-stock-screener/page.tsx:115"}, "properties": {"repobilityId": "45e744ea0b5f0ecd", "scanner": "scanner-primary", "fingerprint": "86397e35adc4f257", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-861fb6c7a2a21508", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-loans-usa/page.tsx:50"}, "properties": {"repobilityId": "1ed73dd3ce036804", "scanner": "scanner-primary", "fingerprint": "861fb6c7a2a21508", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d9331e6ca74f1141", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/hajj-savings-plan/page.tsx:87"}, "properties": {"repobilityId": "5412ff10ebda6178", "scanner": "scanner-primary", "fingerprint": "d9331e6ca74f1141", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b28878b1156fb915", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-amazon-stock-halal-2026/page.tsx:62"}, "properties": {"repobilityId": "a98325dac6dea441", "scanner": "scanner-primary", "fingerprint": "b28878b1156fb915", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-dcb8f40685d5fcd5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-life-insurance-vs-takaful/page.tsx:65"}, "properties": {"repobilityId": "1408303980c44c16", "scanner": "scanner-primary", "fingerprint": "dcb8f40685d5fcd5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-73df7075f2e37293", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stocks/page.tsx:72"}, "properties": {"repobilityId": "84fe95376ea1ef4c", "scanner": "scanner-primary", "fingerprint": "73df7075f2e37293", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c18f7fd5049323e3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-etfs/page.tsx:126"}, "properties": {"repobilityId": "d860d92e2f665f40", "scanner": "scanner-primary", "fingerprint": "c18f7fd5049323e3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-56f975e6aab52ef7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-robo-advisor-comparison/page.tsx:66"}, "properties": {"repobilityId": "3499182930e0cf53", "scanner": "scanner-primary", "fingerprint": "56f975e6aab52ef7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2e5ad91841df72d8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-bitcoin-halal-2026/page.tsx:67"}, "properties": {"repobilityId": "67e080ba8e8525f5", "scanner": "scanner-primary", "fingerprint": "2e5ad91841df72d8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-34dc05d02a28e066", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab-gbp/page.tsx:73"}, "properties": {"repobilityId": "476f6e1aa75722ff", "scanner": "scanner-primary", "fingerprint": "34dc05d02a28e066", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6397bda522732c47", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/riba-elimination/page.tsx:109"}, "properties": {"repobilityId": "500e85aedaf320b5", "scanner": "scanner-primary", "fingerprint": "6397bda522732c47", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d0e8881a373ed7ee", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-near-me/page.tsx:72"}, "properties": {"repobilityId": "1cc4def26885477c", "scanner": "scanner-primary", "fingerprint": "d0e8881a373ed7ee", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ba152ca85741f082", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ijara-vs-murabaha-vs-musharaka-explained/page.tsx:62"}, "properties": {"repobilityId": "37d6e0cb9f9211c2", "scanner": "scanner-primary", "fingerprint": "ba152ca85741f082", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-80a09de8ddfa4546", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-mortgage-uk/page.tsx:101"}, "properties": {"repobilityId": "dc39a99b0e88a393", "scanner": "scanner-primary", "fingerprint": "80a09de8ddfa4546", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-882e4b82315adee3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-finance-app/page.tsx:229"}, "properties": {"repobilityId": "b9c0777da64369a1", "scanner": "scanner-primary", "fingerprint": "882e4b82315adee3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1759992e7a122234", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-401k/page.tsx:94"}, "properties": {"repobilityId": "b4fb94c5a5bce312", "scanner": "scanner-primary", "fingerprint": "1759992e7a122234", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9fa53bda451248e5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-a-529-plan-halal/page.tsx:62"}, "properties": {"repobilityId": "f4bf0b0df6c45153", "scanner": "scanner-primary", "fingerprint": "9fa53bda451248e5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-cebf66564ae0d846", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-business-assets/page.tsx:73"}, "properties": {"repobilityId": "5413112dbce2336a", "scanner": "scanner-primary", "fingerprint": "cebf66564ae0d846", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-486ccbcf7e1b21ed", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-estate-planning/page.tsx:88"}, "properties": {"repobilityId": "26a788f270549ae9", "scanner": "scanner-primary", "fingerprint": "486ccbcf7e1b21ed", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-80ba3e26e792b27a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-will-template/page.tsx:97"}, "properties": {"repobilityId": "0ba531c27b4ecaae", "scanner": "scanner-primary", "fingerprint": "80ba3e26e792b27a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5a526a89101c5e31", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-savings-account-usa/page.tsx:67"}, "properties": {"repobilityId": "b8a9a032562b2f11", "scanner": "scanner-primary", "fingerprint": "5a526a89101c5e31", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-041a0f2860f89f9d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-banking-vs-conventional/page.tsx:67"}, "properties": {"repobilityId": "eb55dc85885ac829", "scanner": "scanner-primary", "fingerprint": "041a0f2860f89f9d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-56752eb3a356fcb8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/what-is-zakat/page.tsx:141"}, "properties": {"repobilityId": "130404b2fbe1be77", "scanner": "scanner-primary", "fingerprint": "56752eb3a356fcb8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-45ba2f06cd9cfc6b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-savings/page.tsx:56"}, "properties": {"repobilityId": "cf3009cc216e426b", "scanner": "scanner-primary", "fingerprint": "45ba2f06cd9cfc6b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6c6976dd4bb66107", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-stocks/page.tsx:84"}, "properties": {"repobilityId": "0b8ba7a9f77b9051", "scanner": "scanner-primary", "fingerprint": "6c6976dd4bb66107", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3e7675708e32c74e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-will/page.tsx:72"}, "properties": {"repobilityId": "7f825bf2e4787507", "scanner": "scanner-primary", "fingerprint": "3e7675708e32c74e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-37262f8d6e7fcc58", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/is-my-401k-halal/page.tsx:66"}, "properties": {"repobilityId": "33e6f6df78d4b4bf", "scanner": "scanner-primary", "fingerprint": "37262f8d6e7fcc58", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d14e4de65cc80178", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/riba-free-mortgage/page.tsx:130"}, "properties": {"repobilityId": "064e77515474322a", "scanner": "scanner-primary", "fingerprint": "d14e4de65cc80178", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-aa5f258573356f9d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/islamic-budgeting-app/page.tsx:337"}, "properties": {"repobilityId": "c106ada275ce5f2a", "scanner": "scanner-primary", "fingerprint": "aa5f258573356f9d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0921390e135908a6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-retirement-accounts/page.tsx:55"}, "properties": {"repobilityId": "5d36eb77f5c6696b", "scanner": "scanner-primary", "fingerprint": "0921390e135908a6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-eb99ef30c8f0e7cd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/madhab-finance/page.tsx:110"}, "properties": {"repobilityId": "8359208e3012934e", "scanner": "scanner-primary", "fingerprint": "eb99ef30c8f0e7cd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2b763bb338a07126", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-investing-guide/page.tsx:125"}, "properties": {"repobilityId": "e0456b4f0e88ef9d", "scanner": "scanner-primary", "fingerprint": "2b763bb338a07126", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-473854ff878851cb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/sadaqah-jariyah-ideas/page.tsx:90"}, "properties": {"repobilityId": "26cfea67b83b5cc2", "scanner": "scanner-primary", "fingerprint": "473854ff878851cb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d4d5370378e0838b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-401k/page.tsx:20"}, "properties": {"repobilityId": "d08b1a6b973bab1a", "scanner": "scanner-primary", "fingerprint": "d4d5370378e0838b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-075ca2346f5a47ca", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-al-fitr/page.tsx:55"}, "properties": {"repobilityId": "969e1f69a8c2d89b", "scanner": "scanner-primary", "fingerprint": "075ca2346f5a47ca", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ff69ab0ff35e24ca", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/how-much-zakat-do-i-owe/page.tsx:136"}, "properties": {"repobilityId": "748daad8496a4777", "scanner": "scanner-primary", "fingerprint": "ff69ab0ff35e24ca", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-904cbb165a6e0acc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/learn/halal-budgeting/page.tsx:240"}, "properties": {"repobilityId": "34f8a2b549775cb4", "scanner": "scanner-primary", "fingerprint": "904cbb165a6e0acc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-232c5f03d3c2bca2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-budgeting/page.tsx:169"}, "properties": {"repobilityId": "31cbe58db962eb28", "scanner": "scanner-primary", "fingerprint": "232c5f03d3c2bca2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-60a3c112d1357c23", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-401k-methodology/page.tsx:59"}, "properties": {"repobilityId": "11d372f8c915edb4", "scanner": "scanner-primary", "fingerprint": "60a3c112d1357c23", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6ac35dec0c13bb66", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-crypto/page.tsx:19"}, "properties": {"repobilityId": "ebb77234edca507b", "scanner": "scanner-primary", "fingerprint": "6ac35dec0c13bb66", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-554b2d035c9f476d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/ramadan-giving-tracker-setup/page.tsx:67"}, "properties": {"repobilityId": "54262b527de2b408", "scanner": "scanner-primary", "fingerprint": "554b2d035c9f476d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b47e637537ae6f1e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/muslim-household-budget/page.tsx:159"}, "properties": {"repobilityId": "d1fff54a27e429e6", "scanner": "scanner-primary", "fingerprint": "b47e637537ae6f1e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0504fe142e008a7a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab/page.tsx:90"}, "properties": {"repobilityId": "7ea922b88903076a", "scanner": "scanner-primary", "fingerprint": "0504fe142e008a7a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d9b1718b59ad7306", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-stock-options-rsus/page.tsx:66"}, "properties": {"repobilityId": "cfe4e7045c7b9c56", "scanner": "scanner-primary", "fingerprint": "d9b1718b59ad7306", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-078de3bd8dc20e6a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/nisab-gold-vs-silver/page.tsx:69"}, "properties": {"repobilityId": "65fe0a04bae5e16d", "scanner": "scanner-primary", "fingerprint": "078de3bd8dc20e6a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-435bcf87c7549e71", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/zakat-on-gold/page.tsx:63"}, "properties": {"repobilityId": "c1af4731cb49eff1", "scanner": "scanner-primary", "fingerprint": "435bcf87c7549e71", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1eaf081b93518186", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/sadaqah-vs-zakat/page.tsx:104"}, "properties": {"repobilityId": "40ee9fb7a40502f9", "scanner": "scanner-primary", "fingerprint": "1eaf081b93518186", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3fd898950219789e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/learn/halal-emergency-fund-methodology/page.tsx:62"}, "properties": {"repobilityId": "8fa84c1a3a737361", "scanner": "scanner-primary", "fingerprint": "3fd898950219789e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bd046d4422ee00af", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/hawl/page.tsx:57"}, "properties": {"repobilityId": "df729358d0786897", "scanner": "scanner-primary", "fingerprint": "bd046d4422ee00af", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7b7d972f2652efad", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/what-is-sukuk/page.tsx:65"}, "properties": {"repobilityId": "9f1ae659518888a4", "scanner": "scanner-primary", "fingerprint": "7b7d972f2652efad", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ca31232443cdafca", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/riba-elimination/page.tsx:57"}, "properties": {"repobilityId": "4d2682e3faa1fb9c", "scanner": "scanner-primary", "fingerprint": "ca31232443cdafca", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-632c071bf7f69292", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/islamic-finance-app/page.tsx:64"}, "properties": {"repobilityId": "9b79496e64a04145", "scanner": "scanner-primary", "fingerprint": "632c071bf7f69292", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f6fe7727b6aaf3a2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/what-is-zakat/page.tsx:46"}, "properties": {"repobilityId": "cfb354d5b1e9703a", "scanner": "scanner-primary", "fingerprint": "f6fe7727b6aaf3a2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-70e3f75de5e27d15", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/halal-stocks/page.tsx:57"}, "properties": {"repobilityId": "188b7f2eb312cd7f", "scanner": "scanner-primary", "fingerprint": "70e3f75de5e27d15", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-952fda9a9bfc8b1c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/types-of-zakat/page.tsx:30"}, "properties": {"repobilityId": "375a66df115f68f5", "scanner": "scanner-primary", "fingerprint": "952fda9a9bfc8b1c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-96b8b0a664bef844", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "properties": {"repobilityId": "1c9e9798063234f1", "scanner": "scanner-primary", "fingerprint": "96b8b0a664bef844", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5c32731ae1b0bbaa", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/halal-budgeting/page.tsx:57"}, "properties": {"repobilityId": "70eada24a96a9646", "scanner": "scanner-primary", "fingerprint": "5c32731ae1b0bbaa", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-53222468eb7ba627", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/nisab/page.tsx:31"}, "properties": {"repobilityId": "0e3a8f05896ed8e6", "scanner": "scanner-primary", "fingerprint": "53222468eb7ba627", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8e60ac826d58c2f4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/learn/zakat-on-gold/page.tsx:57"}, "properties": {"repobilityId": "3c4870e93d15e8c4", "scanner": "scanner-primary", "fingerprint": "8e60ac826d58c2f4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e50d36249154ed84", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ar/zakat-calculator/page.tsx:81"}, "properties": {"repobilityId": "9972f2211301c705", "scanner": "scanner-primary", "fingerprint": "e50d36249154ed84", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d936f4619ff23a64", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/page.tsx:1328"}, "properties": {"repobilityId": "4ba209c1bd3eacfd", "scanner": "scanner-primary", "fingerprint": "d936f4619ff23a64", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c702a4950e3b2c3e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/layout.tsx:430"}, "properties": {"repobilityId": "31d0fb9294dbd41a", "scanner": "scanner-primary", "fingerprint": "c702a4950e3b2c3e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5a77bc2a42303ed8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/transactions/page.tsx:1279"}, "properties": {"repobilityId": "79924dc8581716de", "scanner": "scanner-primary", "fingerprint": "5a77bc2a42303ed8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eca93aa934823b48", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/riba/page.tsx:1034"}, "properties": {"repobilityId": "8ec59ea2b0347433", "scanner": "scanner-primary", "fingerprint": "eca93aa934823b48", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f3565a954c6ae3b1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/analytics/page.tsx:853"}, "properties": {"repobilityId": "72db6d026f03c721", "scanner": "scanner-primary", "fingerprint": "f3565a954c6ae3b1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-343e94dc24478f6d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/import/page.tsx:918"}, "properties": {"repobilityId": "8c8d0bc3c2e86370", "scanner": "scanner-primary", "fingerprint": "343e94dc24478f6d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-06d458e227c2cf07", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/import/GenericCsvImport.tsx:383"}, "properties": {"repobilityId": "beae36f84d86af05", "scanner": "scanner-primary", "fingerprint": "06d458e227c2cf07", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b2b9ce9acd576eed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/sadaqah/page.tsx:546"}, "properties": {"repobilityId": "5b9dc638de351d7c", "scanner": "scanner-primary", "fingerprint": "b2b9ce9acd576eed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7099277b2755a85e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/recurring/page.tsx:468"}, "properties": {"repobilityId": "b915036d6d86cff2", "scanner": "scanner-primary", "fingerprint": "7099277b2755a85e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2bfbd7f5dc6e87bd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/net-worth/page.tsx:573"}, "properties": {"repobilityId": "e4a72756c012ebf0", "scanner": "scanner-primary", "fingerprint": "2bfbd7f5dc6e87bd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-77e7317ded46ff37", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/assets/[id]/page.tsx:243"}, "properties": {"repobilityId": "c16a74f05267d632", "scanner": "scanner-primary", "fingerprint": "77e7317ded46ff37", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-599371f1c7652d31", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/billing/page.tsx:774"}, "properties": {"repobilityId": "2c602360b011a9ba", "scanner": "scanner-primary", "fingerprint": "599371f1c7652d31", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57af42ba9ecc6c01", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/admin/activity/page.tsx:170"}, "properties": {"repobilityId": "e4e85c4850bed731", "scanner": "scanner-primary", "fingerprint": "57af42ba9ecc6c01", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-46ed2138cffc8ff6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/admin/scorecard/page.tsx:381"}, "properties": {"repobilityId": "47b5db20cae4b028", "scanner": "scanner-primary", "fingerprint": "46ed2138cffc8ff6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c20a3a92e2b1d9d3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/wasiyyah/page.tsx:599"}, "properties": {"repobilityId": "f7a9295b2e6ae190", "scanner": "scanner-primary", "fingerprint": "c20a3a92e2b1d9d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-31181a89a4fe6a2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/investments/page.tsx:843"}, "properties": {"repobilityId": "2594ae4d3e3441d0", "scanner": "scanner-primary", "fingerprint": "31181a89a4fe6a2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-369571f2df142f08", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/ledger/page.tsx:264"}, "properties": {"repobilityId": "9485e5410d9d3e4e", "scanner": "scanner-primary", "fingerprint": "369571f2df142f08", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ccdc76ce62c4aab", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/family/page.tsx:319"}, "properties": {"repobilityId": "cf8725f7aa5fc93c", "scanner": "scanner-primary", "fingerprint": "9ccdc76ce62c4aab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-234c80efb1d9f29b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/reports/page.tsx:410"}, "properties": {"repobilityId": "a604b88b30b49f8e", "scanner": "scanner-primary", "fingerprint": "234c80efb1d9f29b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c77d1b86052d915f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/zakat/page.tsx:932"}, "properties": {"repobilityId": "b2c82ff0a7fe2f7f", "scanner": "scanner-primary", "fingerprint": "c77d1b86052d915f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-94035582e04bf568", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/summary/page.tsx:228"}, "properties": {"repobilityId": "e4e0ba42afd27cb5", "scanner": "scanner-primary", "fingerprint": "94035582e04bf568", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c7ca26b2c708b671", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/halal/page.tsx:370"}, "properties": {"repobilityId": "42d063ce5da6e786", "scanner": "scanner-primary", "fingerprint": "c7ca26b2c708b671", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-63c56c7d225b9619", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/cash-flow/page.tsx:979"}, "properties": {"repobilityId": "94a37972ea262399", "scanner": "scanner-primary", "fingerprint": "63c56c7d225b9619", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-604dfcb7f4a87963", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/dashboard/debts/page.tsx:938"}, "properties": {"repobilityId": "fa1f1071ae7d2f86", "scanner": "scanner-primary", "fingerprint": "604dfcb7f4a87963", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-383b93bd65be784c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/ramadan/page.tsx:105"}, "properties": {"repobilityId": "7df31a186e9d2183", "scanner": "scanner-primary", "fingerprint": "383b93bd65be784c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-05198e1858aa2144", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/zakat-uk/page.tsx:96"}, "properties": {"repobilityId": "5c5e9744fb1d9ab9", "scanner": "scanner-primary", "fingerprint": "05198e1858aa2144", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1778f4081b4f83a9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/hawl/page.tsx:58"}, "properties": {"repobilityId": "561595730ada5123", "scanner": "scanner-primary", "fingerprint": "1778f4081b4f83a9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9d5d3af60520387d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/what-is-sukuk/page.tsx:66"}, "properties": {"repobilityId": "5cc9562f18cf1442", "scanner": "scanner-primary", "fingerprint": "9d5d3af60520387d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c8e84149617c99ab", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/riba-elimination/page.tsx:57"}, "properties": {"repobilityId": "bc9edfcd2504f9d4", "scanner": "scanner-primary", "fingerprint": "c8e84149617c99ab", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-aa0b18cfca0338b5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/what-is-zakat/page.tsx:49"}, "properties": {"repobilityId": "3cb603a4e836edd7", "scanner": "scanner-primary", "fingerprint": "aa0b18cfca0338b5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a6ab70cb3befb4be", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/halal-stocks/page.tsx:58"}, "properties": {"repobilityId": "c00882073a5b86c1", "scanner": "scanner-primary", "fingerprint": "a6ab70cb3befb4be", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5d102bdbd629641a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/application-finance-islamique/page.tsx:65"}, "properties": {"repobilityId": "9c3dd4ec610d7921", "scanner": "scanner-primary", "fingerprint": "5d102bdbd629641a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-061d272e50b28a78", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/types-of-zakat/page.tsx:31"}, "properties": {"repobilityId": "99b97ae7c0dc24e5", "scanner": "scanner-primary", "fingerprint": "061d272e50b28a78", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8cf66a3cbac00f74", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/how-much-zakat-do-i-owe/page.tsx:32"}, "properties": {"repobilityId": "9d8e68b4fa945687", "scanner": "scanner-primary", "fingerprint": "8cf66a3cbac00f74", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e3cc05e90968d7a6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/halal-budgeting/page.tsx:57"}, "properties": {"repobilityId": "43451a2c4168a642", "scanner": "scanner-primary", "fingerprint": "e3cc05e90968d7a6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e64667f732093a60", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/nisab/page.tsx:32"}, "properties": {"repobilityId": "2867380d6cb1c120", "scanner": "scanner-primary", "fingerprint": "e64667f732093a60", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b6572c556c448316", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/learn/zakat-on-gold/page.tsx:57"}, "properties": {"repobilityId": "a0afe5184090e73f", "scanner": "scanner-primary", "fingerprint": "b6572c556c448316", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-318850205866ac97", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fr/zakat-calculator/page.tsx:82"}, "properties": {"repobilityId": "64ced47b259145d1", "scanner": "scanner-primary", "fingerprint": "318850205866ac97", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b580eedc6ea019d3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/try/page.tsx:48"}, "properties": {"repobilityId": "f1e0943efd0c092c", "scanner": "scanner-primary", "fingerprint": "b580eedc6ea019d3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-03b178efecfe8c4b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/refer/page.tsx:147"}, "properties": {"repobilityId": "46b90e2cbe878f29", "scanner": "scanner-primary", "fingerprint": "03b178efecfe8c4b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-550f401c2e7bf285", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/page.tsx:96"}, "properties": {"repobilityId": "ca6915d0390adf0e", "scanner": "scanner-primary", "fingerprint": "550f401c2e7bf285", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-504db3551c27a24a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/waqf/page.tsx:40"}, "properties": {"repobilityId": "71b9bb1117a57abf", "scanner": "scanner-primary", "fingerprint": "504db3551c27a24a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b69bce8c0f2e7f15", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/riba/page.tsx:40"}, "properties": {"repobilityId": "c214e14b6a28ebbc", "scanner": "scanner-primary", "fingerprint": "b69bce8c0f2e7f15", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-139677b437dfbb18", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/hawl/page.tsx:40"}, "properties": {"repobilityId": "e3dd50be95ffe3e7", "scanner": "scanner-primary", "fingerprint": "139677b437dfbb18", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f7f2142086957ee7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/ijara/page.tsx:40"}, "properties": {"repobilityId": "586abbe56ba22b0b", "scanner": "scanner-primary", "fingerprint": "f7f2142086957ee7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-328609312dd97388", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/sadaqah/page.tsx:40"}, "properties": {"repobilityId": "995d99106d4e90ef", "scanner": "scanner-primary", "fingerprint": "328609312dd97388", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e824d20caf73dba5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/sukuk/page.tsx:40"}, "properties": {"repobilityId": "e7c2e45eece0025d", "scanner": "scanner-primary", "fingerprint": "e824d20caf73dba5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-95825996b7f6897f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/faraid/page.tsx:40"}, "properties": {"repobilityId": "2f6de339c4b44cae", "scanner": "scanner-primary", "fingerprint": "95825996b7f6897f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-59f4e78fcc46d19f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/takaful/page.tsx:40"}, "properties": {"repobilityId": "f8ca5ca319b49a39", "scanner": "scanner-primary", "fingerprint": "59f4e78fcc46d19f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-203aef678b09877c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/murabaha/page.tsx:40"}, "properties": {"repobilityId": "95e167b57110acef", "scanner": "scanner-primary", "fingerprint": "203aef678b09877c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-09ddcab81b696c38", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/musharaka/page.tsx:40"}, "properties": {"repobilityId": "1e0937ecd619bd2a", "scanner": "scanner-primary", "fingerprint": "09ddcab81b696c38", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5a18f042b05ac3bf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/zakat/page.tsx:40"}, "properties": {"repobilityId": "94407b696d5164cb", "scanner": "scanner-primary", "fingerprint": "5a18f042b05ac3bf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-54639d5410d9ed34", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/hibah/page.tsx:40"}, "properties": {"repobilityId": "9c5c07d889412fa1", "scanner": "scanner-primary", "fingerprint": "54639d5410d9ed34", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-82060f0074a28146", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/nisab/page.tsx:40"}, "properties": {"repobilityId": "529a784c9c4c5ebe", "scanner": "scanner-primary", "fingerprint": "82060f0074a28146", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2b1de3f1b4c6646d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/fiqh-terms/wassiyah/page.tsx:40"}, "properties": {"repobilityId": "ca064fd57d53630b", "scanner": "scanner-primary", "fingerprint": "2b1de3f1b4c6646d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f5674aa636324e63", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/trust/TrustPageClient.tsx:85"}, "properties": {"repobilityId": "d471d5f77f22d9bd", "scanner": "scanner-primary", "fingerprint": "f5674aa636324e63", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b0b6b098661a6ed6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/page.tsx:106"}, "properties": {"repobilityId": "791cf9b23f807051", "scanner": "scanner-primary", "fingerprint": "b0b6b098661a6ed6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-550e4fb86d4d9510", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/msft/page.tsx:36"}, "properties": {"repobilityId": "e2aec377baf36232", "scanner": "scanner-primary", "fingerprint": "550e4fb86d4d9510", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-623034da73ddff4c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/adbe/page.tsx:44"}, "properties": {"repobilityId": "b36d4c025281db90", "scanner": "scanner-primary", "fingerprint": "623034da73ddff4c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a2c9fa6c1786d462", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/ko/page.tsx:44"}, "properties": {"repobilityId": "3808364c40cef480", "scanner": "scanner-primary", "fingerprint": "a2c9fa6c1786d462", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-daa4767e117359cd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/list/page.tsx:104"}, "properties": {"repobilityId": "f9e0d0a0bd112255", "scanner": "scanner-primary", "fingerprint": "daa4767e117359cd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6a6e1ced69abdf4a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nvda/page.tsx:36"}, "properties": {"repobilityId": "3965fd2dd6e4825c", "scanner": "scanner-primary", "fingerprint": "6a6e1ced69abdf4a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-415434207c9c1556", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/tsla/page.tsx:36"}, "properties": {"repobilityId": "8bbdb34fb0f48d07", "scanner": "scanner-primary", "fingerprint": "415434207c9c1556", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-43bec70894162922", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nflx/page.tsx:52"}, "properties": {"repobilityId": "b566668d87877727", "scanner": "scanner-primary", "fingerprint": "43bec70894162922", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4c9d73a6ecee781b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/meta/page.tsx:52"}, "properties": {"repobilityId": "0c228b8011517be2", "scanner": "scanner-primary", "fingerprint": "4c9d73a6ecee781b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e0f926347b932183", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/orcl/page.tsx:44"}, "properties": {"repobilityId": "5cb9baa0a05996e6", "scanner": "scanner-primary", "fingerprint": "e0f926347b932183", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6c503713619f55c8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/amzn/page.tsx:36"}, "properties": {"repobilityId": "e2a346ec4735632d", "scanner": "scanner-primary", "fingerprint": "6c503713619f55c8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-654dbb4095b4aa8e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/ul/page.tsx:44"}, "properties": {"repobilityId": "53de4fb0d73cad60", "scanner": "scanner-primary", "fingerprint": "654dbb4095b4aa8e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a695eb7eb2c4a968", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/pg/page.tsx:44"}, "properties": {"repobilityId": "6f7ccf25bb12d135", "scanner": "scanner-primary", "fingerprint": "a695eb7eb2c4a968", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5861e27e000d8318", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/aapl/page.tsx:44"}, "properties": {"repobilityId": "59b79098a667cf78", "scanner": "scanner-primary", "fingerprint": "5861e27e000d8318", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3a04c83970defbaa", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/crm/page.tsx:44"}, "properties": {"repobilityId": "71e6950ee89721d3", "scanner": "scanner-primary", "fingerprint": "3a04c83970defbaa", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bdd7090834ab5cbf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/nsrgy/page.tsx:52"}, "properties": {"repobilityId": "1307c42f091cadab", "scanner": "scanner-primary", "fingerprint": "bdd7090834ab5cbf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-abe6ce2a006ba88a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/amd/page.tsx:44"}, "properties": {"repobilityId": "7fe358022aa6f7da", "scanner": "scanner-primary", "fingerprint": "abe6ce2a006ba88a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1db0701a193f0b41", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/halal-stocks/googl/page.tsx:52"}, "properties": {"repobilityId": "6ec12ba445aafabd", "scanner": "scanner-primary", "fingerprint": "1db0701a193f0b41", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fcbff812efed0e41", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/family/page.tsx:117"}, "properties": {"repobilityId": "5fea53e43a26d89a", "scanner": "scanner-primary", "fingerprint": "fcbff812efed0e41", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d2a7d101e43eaeb2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/faraid-calculator/page.tsx:79"}, "properties": {"repobilityId": "36dc0098525a54c7", "scanner": "scanner-primary", "fingerprint": "d2a7d101e43eaeb2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5276f69172e5aab1", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/app/setup/page.tsx:465"}, "properties": {"repobilityId": "91fd8c82a632368b", "scanner": "scanner-primary", "fingerprint": "5276f69172e5aab1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-205c4092ac2b6efb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/page.tsx:242"}, "properties": {"repobilityId": "b643c5c90bf2a1c6", "scanner": "scanner-primary", "fingerprint": "205c4092ac2b6efb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7dc56826541dd570", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-zeta/page.tsx:70"}, "properties": {"repobilityId": "b2468ce30f7fa701", "scanner": "scanner-primary", "fingerprint": "7dc56826541dd570", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bf49ccced29b876e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/islamic-finance-apps/page.tsx:54"}, "properties": {"repobilityId": "f618b751885529a4", "scanner": "scanner-primary", "fingerprint": "bf49ccced29b876e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6712bf6c8820e3d8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-rocketmoney/page.tsx:70"}, "properties": {"repobilityId": "a441ddcb2ba72ce5", "scanner": "scanner-primary", "fingerprint": "6712bf6c8820e3d8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4c52f69c7b269d5a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-zoya/page.tsx:83"}, "properties": {"repobilityId": "e8cffb295ef8e03b", "scanner": "scanner-primary", "fingerprint": "4c52f69c7b269d5a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-02eefb5cf0679213", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-pocketguard/page.tsx:70"}, "properties": {"repobilityId": "f24ffd4ab540ef94", "scanner": "scanner-primary", "fingerprint": "02eefb5cf0679213", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-90d486c56401a61c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-fudget/page.tsx:71"}, "properties": {"repobilityId": "edc30cfde6636333", "scanner": "scanner-primary", "fingerprint": "90d486c56401a61c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7ebeb11a07b6fafd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-stash/page.tsx:71"}, "properties": {"repobilityId": "e4dd10dc767e1bd7", "scanner": "scanner-primary", "fingerprint": "7ebeb11a07b6fafd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7104a0b5f70db20e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-robinhood/page.tsx:71"}, "properties": {"repobilityId": "27a0385752d35db4", "scanner": "scanner-primary", "fingerprint": "7104a0b5f70db20e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bef395d2adbfa832", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-quicken/page.tsx:70"}, "properties": {"repobilityId": "20ebfabad07822c2", "scanner": "scanner-primary", "fingerprint": "bef395d2adbfa832", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-560e794cd25ad918", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-musaffa/page.tsx:70"}, "properties": {"repobilityId": "61220dea533b583c", "scanner": "scanner-primary", "fingerprint": "560e794cd25ad918", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c788cfb2d21bf760", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-wahed/page.tsx:73"}, "properties": {"repobilityId": "963d34c260b0e084", "scanner": "scanner-primary", "fingerprint": "c788cfb2d21bf760", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ec6a7d455dcb25ea", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-yaqeen-money/page.tsx:71"}, "properties": {"repobilityId": "17a16cb2e0d8cc25", "scanner": "scanner-primary", "fingerprint": "ec6a7d455dcb25ea", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2b614d01cd15b362", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-tiller/page.tsx:70"}, "properties": {"repobilityId": "1208d857588c2442", "scanner": "scanner-primary", "fingerprint": "2b614d01cd15b362", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0aae1965db2479a9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-acorns/page.tsx:71"}, "properties": {"repobilityId": "15164a84c9aee3a5", "scanner": "scanner-primary", "fingerprint": "0aae1965db2479a9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0fc2e68ebe348340", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-saturna/page.tsx:71"}, "properties": {"repobilityId": "f13a1a2d87fc542c", "scanner": "scanner-primary", "fingerprint": "0fc2e68ebe348340", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-85adb2d14059b025", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-mvelopes/page.tsx:71"}, "properties": {"repobilityId": "63f24deb11032d30", "scanner": "scanner-primary", "fingerprint": "85adb2d14059b025", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c5205e79f926e8bf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-ynab/page.tsx:74"}, "properties": {"repobilityId": "6710a1a6810e1d49", "scanner": "scanner-primary", "fingerprint": "c5205e79f926e8bf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e0d88e32aecdcaef", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-spendee/page.tsx:71"}, "properties": {"repobilityId": "7dc1c8bd167bdff4", "scanner": "scanner-primary", "fingerprint": "e0d88e32aecdcaef", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-faf1b68f093f6dc6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-empower/page.tsx:70"}, "properties": {"repobilityId": "2db9261976feaed9", "scanner": "scanner-primary", "fingerprint": "faf1b68f093f6dc6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-13818e4ffa00c1df", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-personal-capital/page.tsx:70"}, "properties": {"repobilityId": "a8d7efc8f7c057bf", "scanner": "scanner-primary", "fingerprint": "13818e4ffa00c1df", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-345bb0183bb080ee", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-monarch/page.tsx:71"}, "properties": {"repobilityId": "d8014d4fda40abef", "scanner": "scanner-primary", "fingerprint": "345bb0183bb080ee", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-13165c6c7e128321", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-copilot/page.tsx:70"}, "properties": {"repobilityId": "638b935520fd6dfd", "scanner": "scanner-primary", "fingerprint": "13165c6c7e128321", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d52f0fe0ccbb2d8d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/compare/barakah-vs-wealthfront/page.tsx:70"}, "properties": {"repobilityId": "8ef9a9667b3cb582", "scanner": "scanner-primary", "fingerprint": "d52f0fe0ccbb2d8d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-407deb4d924fa481", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/features/page.tsx:47"}, "properties": {"repobilityId": "a5ec3c754a6a3608", "scanner": "scanner-primary", "fingerprint": "407deb4d924fa481", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e479f9781c557063", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/methodology/MethodologyClient.tsx:34"}, "properties": {"repobilityId": "cbc7b8f7c9df8cc5", "scanner": "scanner-primary", "fingerprint": "e479f9781c557063", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-748ae53adc9f068f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/zakat-calculator/page.tsx:112"}, "properties": {"repobilityId": "c1f4abf04008631d", "scanner": "scanner-primary", "fingerprint": "748ae53adc9f068f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-0eadf94dd675c6bf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/legacy/homepage-pre-v20-2026-04-30.tsx:182"}, "properties": {"repobilityId": "dc7d4a06b900cd62", "scanner": "scanner-primary", "fingerprint": "0eadf94dd675c6bf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fe3a142877767e37", "level": "error", "message": {"text": "Possible secret in scripts/link-sandbox-bank.mjs"}, "properties": {"repobilityId": "a826fff2bcc605d1", "scanner": "scanner-primary", "fingerprint": "fe3a142877767e37", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/link-sandbox-bank.mjs"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-fe3a142877767e37", "level": "error", "message": {"text": "Possible secret in scripts/link-sandbox-bank.mjs"}, "properties": {"repobilityId": "a826fff2bcc605d1", "scanner": "scanner-primary", "fingerprint": "fe3a142877767e37", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/link-sandbox-bank.mjs"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-07abe91ba072253b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/__tests__/signupAcquisitionHeaders.test.ts:12"}, "properties": {"repobilityId": "38c8486953d4df17", "scanner": "scanner-primary", "fingerprint": "07abe91ba072253b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/__tests__/signupAcquisitionHeaders.test.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-0ee9df0cd077abbd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/CityHalalMortgage.tsx:44"}, "properties": {"repobilityId": "c6635ba0bc82ffb6", "scanner": "scanner-primary", "fingerprint": "0ee9df0cd077abbd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/CityHalalMortgage.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-ac8de1ad8cc659c2", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/SessionTimeoutModal.tsx:177"}, "properties": {"repobilityId": "e0f87be2e708c64b", "scanner": "scanner-primary", "fingerprint": "ac8de1ad8cc659c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/SessionTimeoutModal.tsx"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-66757122a2f2a4a6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:311"}, "properties": {"repobilityId": "0bca654fa2052eb0", "scanner": "scanner-primary", "fingerprint": "66757122a2f2a4a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/layout.tsx"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-8122361e9b7d9bc1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/security/page.tsx:128"}, "properties": {"repobilityId": "3c99cad596ece4fe", "scanner": "scanner-primary", "fingerprint": "8122361e9b7d9bc1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/security/page.tsx"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-7146ae402879cecb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/hawl/page.tsx:57"}, "properties": {"repobilityId": "2587eb35aad1cb4d", "scanner": "scanner-primary", "fingerprint": "7146ae402879cecb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/hawl/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-e8b714cfb65f1f3d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/what-is-sukuk/page.tsx:65"}, "properties": {"repobilityId": "688936a34469dff3", "scanner": "scanner-primary", "fingerprint": "e8b714cfb65f1f3d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/what-is-sukuk/page.tsx"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-86da3864abd3065c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/riba-elimination/page.tsx:57"}, "properties": {"repobilityId": "2aa211b38e6f87a1", "scanner": "scanner-primary", "fingerprint": "86da3864abd3065c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/riba-elimination/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-18c6c5a05134ca3d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/islamic-finance-app/page.tsx:64"}, "properties": {"repobilityId": "ef6e9ad82ed16943", "scanner": "scanner-primary", "fingerprint": "18c6c5a05134ca3d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/islamic-finance-app/page.tsx"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-6ff068122051861a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/what-is-zakat/page.tsx:46"}, "properties": {"repobilityId": "acf011b618ab6ce4", "scanner": "scanner-primary", "fingerprint": "6ff068122051861a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/what-is-zakat/page.tsx"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-faafdfb9b7e1477e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/halal-stocks/page.tsx:57"}, "properties": {"repobilityId": "f23a560665b22e45", "scanner": "scanner-primary", "fingerprint": "faafdfb9b7e1477e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/halal-stocks/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-9a2e404e6dda69db", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/types-of-zakat/page.tsx:30"}, "properties": {"repobilityId": "a82e298ab8b38715", "scanner": "scanner-primary", "fingerprint": "9a2e404e6dda69db", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/types-of-zakat/page.tsx"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-97fb44fdb6079aaf", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "properties": {"repobilityId": "6e5e258044db2b9b", "scanner": "scanner-primary", "fingerprint": "97fb44fdb6079aaf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/how-much-zakat-do-i-owe/page.tsx"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-5b3430d78989ef25", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/halal-budgeting/page.tsx:57"}, "properties": {"repobilityId": "f7e1e2efb51ab0d6", "scanner": "scanner-primary", "fingerprint": "5b3430d78989ef25", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/halal-budgeting/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-f09e2e4f8b423359", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/nisab/page.tsx:31"}, "properties": {"repobilityId": "ef564b10f0c44fe5", "scanner": "scanner-primary", "fingerprint": "f09e2e4f8b423359", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/nisab/page.tsx"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-bb65ab12ddf9ede1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/learn/zakat-on-gold/page.tsx:57"}, "properties": {"repobilityId": "60d36ce50ccf008f", "scanner": "scanner-primary", "fingerprint": "bb65ab12ddf9ede1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/learn/zakat-on-gold/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-c219db8eb1c2cb3b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ur/zakat-calculator/page.tsx:81"}, "properties": {"repobilityId": "0cfaeb74d822052b", "scanner": "scanner-primary", "fingerprint": "c219db8eb1c2cb3b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ur/zakat-calculator/page.tsx"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-316305cf7dc76a8c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/page.tsx:362"}, "properties": {"repobilityId": "6124f98c23449d94", "scanner": "scanner-primary", "fingerprint": "316305cf7dc76a8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/page.tsx"}, "region": {"startLine": 362}}}]}, {"ruleId": "scanner-904c3a71a63f930d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/monarch-alternative-for-muslims/page.tsx:87"}, "properties": {"repobilityId": "6e98956e705129ae", "scanner": "scanner-primary", "fingerprint": "904c3a71a63f930d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/monarch-alternative-for-muslims/page.tsx"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-b7df66303a3000c6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-real-estate-investing-2026/page.tsx:62"}, "properties": {"repobilityId": "3aa85059d913638b", "scanner": "scanner-primary", "fingerprint": "b7df66303a3000c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-real-estate-investing-2026/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-8ba3288bc07a91ec", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-pension-uk/page.tsx:67"}, "properties": {"repobilityId": "7ef71176ce78f6a2", "scanner": "scanner-primary", "fingerprint": "8ba3288bc07a91ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-pension-uk/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-5bd9f9a324039acd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-savings-account/page.tsx:73"}, "properties": {"repobilityId": "86933a25605afc70", "scanner": "scanner-primary", "fingerprint": "5bd9f9a324039acd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-savings-account/page.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-f7e9fb56b2f5ab99", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-vs-rent-2026/page.tsx:65"}, "properties": {"repobilityId": "83f2647761ef6761", "scanner": "scanner-primary", "fingerprint": "f7e9fb56b2f5ab99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-mortgage-vs-rent-2026/page.tsx"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-5a9762d1d3bf2523", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-investing-canada/page.tsx:67"}, "properties": {"repobilityId": "bfa97c3225ca22dd", "scanner": "scanner-primary", "fingerprint": "5a9762d1d3bf2523", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-investing-canada/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-1b3995e0230acdc5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-rental-property/page.tsx:19"}, "properties": {"repobilityId": "295f7183d674031d", "scanner": "scanner-primary", "fingerprint": "1b3995e0230acdc5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-rental-property/page.tsx"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-58487967ad384cfe", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/hawl/page.tsx:87"}, "properties": {"repobilityId": "c059f20073fb8fe8", "scanner": "scanner-primary", "fingerprint": "58487967ad384cfe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/hawl/page.tsx"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-d7d505c35fe2a8e0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-al-fitr-calculator/page.tsx:143"}, "properties": {"repobilityId": "b00895103904b204", "scanner": "scanner-primary", "fingerprint": "d7d505c35fe2a8e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-al-fitr-calculator/page.tsx"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-5322be57141c46a2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/mint-alternative-for-muslims/page.tsx:133"}, "properties": {"repobilityId": "7affb118f907c956", "scanner": "scanner-primary", "fingerprint": "5322be57141c46a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/mint-alternative-for-muslims/page.tsx"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-00f9151104fc56fb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stocks-and-etfs/page.tsx:73"}, "properties": {"repobilityId": "41e02b6e3bad463d", "scanner": "scanner-primary", "fingerprint": "00f9151104fc56fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-stocks-and-etfs/page.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-8003554abf41b820", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-credit-card-alternatives-2026/page.tsx:62"}, "properties": {"repobilityId": "5a86cda3a7dc3dd9", "scanner": "scanner-primary", "fingerprint": "8003554abf41b820", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-credit-card-alternatives-2026/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-003d052eb485afa6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/aaoifi-halal-screening/page.tsx:67"}, "properties": {"repobilityId": "9586d8e19075310d", "scanner": "scanner-primary", "fingerprint": "003d052eb485afa6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/aaoifi-halal-screening/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-83626237f25e172a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/diminishing-musharaka-explained/page.tsx:68"}, "properties": {"repobilityId": "02e8b74441df9988", "scanner": "scanner-primary", "fingerprint": "83626237f25e172a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/diminishing-musharaka-explained/page.tsx"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-7b845d8e81484505", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-finance-basics/page.tsx:55"}, "properties": {"repobilityId": "274a9f1a2f87e89b", "scanner": "scanner-primary", "fingerprint": "7b845d8e81484505", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-finance-basics/page.tsx"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-214d04c54656480c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-estate-planning-tools/page.tsx:85"}, "properties": {"repobilityId": "48f6e7f8c81c2597", "scanner": "scanner-primary", "fingerprint": "214d04c54656480c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-estate-planning-tools/page.tsx"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-bfa1336a7d74bb46", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-cryptocurrency/page.tsx:66"}, "properties": {"repobilityId": "c793b444faa0ebdb", "scanner": "scanner-primary", "fingerprint": "bfa1336a7d74bb46", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-cryptocurrency/page.tsx"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-416fc72a71237697", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-my-mortgage-halal/page.tsx:72"}, "properties": {"repobilityId": "d7df868350ac93dc", "scanner": "scanner-primary", "fingerprint": "416fc72a71237697", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/is-my-mortgage-halal/page.tsx"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-ebee20702c12ef0d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/la-wasiyyata-li-warith/page.tsx:57"}, "properties": {"repobilityId": "ad8f3f4d66022d3b", "scanner": "scanner-primary", "fingerprint": "ebee20702c12ef0d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/la-wasiyyata-li-warith/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-14d974a07d8cc897", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-receivables-and-business-debts/page.tsx:62"}, "properties": {"repobilityId": "352275e6b3a125f0", "scanner": "scanner-primary", "fingerprint": "14d974a07d8cc897", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-receivables-and-business-debts/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-f6dca45bea3270df", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/what-is-sukuk/page.tsx:67"}, "properties": {"repobilityId": "4763c13a4e9c27db", "scanner": "scanner-primary", "fingerprint": "f6dca45bea3270df", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/what-is-sukuk/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-41238171d71dde8e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-recipients-2026/page.tsx:61"}, "properties": {"repobilityId": "efd4867dc7cdef32", "scanner": "scanner-primary", "fingerprint": "41238171d71dde8e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-recipients-2026/page.tsx"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-d559f5f6dcf7ee2d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-providers-usa/page.tsx:113"}, "properties": {"repobilityId": "235dc3658779cc12", "scanner": "scanner-primary", "fingerprint": "d559f5f6dcf7ee2d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-mortgage-providers-usa/page.tsx"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-7df1ed155f553421", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ynab-alternative-for-muslims/page.tsx:92"}, "properties": {"repobilityId": "cd108c351673c9c2", "scanner": "scanner-primary", "fingerprint": "7df1ed155f553421", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/ynab-alternative-for-muslims/page.tsx"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-0297c9a14d921430", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-money-market-funds/page.tsx:67"}, "properties": {"repobilityId": "c680d1c7f3288ce8", "scanner": "scanner-primary", "fingerprint": "0297c9a14d921430", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-money-market-funds/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-0a393b1bcafc4909", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-nfts-and-digital-assets/page.tsx:62"}, "properties": {"repobilityId": "e6a3cf69198e34d3", "scanner": "scanner-primary", "fingerprint": "0a393b1bcafc4909", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-nfts-and-digital-assets/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-d7597f319943af3a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-gold-hanafi/page.tsx:73"}, "properties": {"repobilityId": "092689e6f0dbf381", "scanner": "scanner-primary", "fingerprint": "d7597f319943af3a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-gold-hanafi/page.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-cc16f4202874a666", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ramadan-giving-tracker/page.tsx:87"}, "properties": {"repobilityId": "d974749a41e6ba1b", "scanner": "scanner-primary", "fingerprint": "cc16f4202874a666", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/ramadan-giving-tracker/page.tsx"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-990f8d50261ed994", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-index-funds-2026/page.tsx:67"}, "properties": {"repobilityId": "c8d16e560ad1aea6", "scanner": "scanner-primary", "fingerprint": "990f8d50261ed994", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-index-funds-2026/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-f272d2bf651b301d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-stock-screener/page.tsx:115"}, "properties": {"repobilityId": "923684abf85f4bb6", "scanner": "scanner-primary", "fingerprint": "f272d2bf651b301d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-stock-screener/page.tsx"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-8cab0fd7108251a6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-loans-usa/page.tsx:50"}, "properties": {"repobilityId": "fb0e1103f770da8c", "scanner": "scanner-primary", "fingerprint": "8cab0fd7108251a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-loans-usa/page.tsx"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-02f94a9d7b329fbd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/hajj-savings-plan/page.tsx:87"}, "properties": {"repobilityId": "fc2804dbceefa729", "scanner": "scanner-primary", "fingerprint": "02f94a9d7b329fbd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/hajj-savings-plan/page.tsx"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-c88373cfa4ac6f9a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-amazon-stock-halal-2026/page.tsx:62"}, "properties": {"repobilityId": "c1e446906cd624bc", "scanner": "scanner-primary", "fingerprint": "c88373cfa4ac6f9a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/is-amazon-stock-halal-2026/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-a53852ed5e2277d9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-life-insurance-vs-takaful/page.tsx:65"}, "properties": {"repobilityId": "12f6e16962f2d291", "scanner": "scanner-primary", "fingerprint": "a53852ed5e2277d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-life-insurance-vs-takaful/page.tsx"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-95ff674d6665ecd4", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stocks/page.tsx:72"}, "properties": {"repobilityId": "df3d4d986417084c", "scanner": "scanner-primary", "fingerprint": "95ff674d6665ecd4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-stocks/page.tsx"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-bc1a5cec26bfd9e0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-etfs/page.tsx:126"}, "properties": {"repobilityId": "1bb7ed49734bd75e", "scanner": "scanner-primary", "fingerprint": "bc1a5cec26bfd9e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-etfs/page.tsx"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-68bb3c69ac270266", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-robo-advisor-comparison/page.tsx:66"}, "properties": {"repobilityId": "33b9411992afc282", "scanner": "scanner-primary", "fingerprint": "68bb3c69ac270266", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-robo-advisor-comparison/page.tsx"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-5f771bb80b3ddf16", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-bitcoin-halal-2026/page.tsx:67"}, "properties": {"repobilityId": "5692d63f847caae3", "scanner": "scanner-primary", "fingerprint": "5f771bb80b3ddf16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/is-bitcoin-halal-2026/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-a428698532bd9a97", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab-gbp/page.tsx:73"}, "properties": {"repobilityId": "e8f44e1ecb19bad4", "scanner": "scanner-primary", "fingerprint": "a428698532bd9a97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/nisab-gbp/page.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-6d2068008c4af293", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/riba-elimination/page.tsx:109"}, "properties": {"repobilityId": "0a4e9eda585259f4", "scanner": "scanner-primary", "fingerprint": "6d2068008c4af293", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/riba-elimination/page.tsx"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-a54b8d2e2b8a10b9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-near-me/page.tsx:72"}, "properties": {"repobilityId": "581f4955fdc84a9e", "scanner": "scanner-primary", "fingerprint": "a54b8d2e2b8a10b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-mortgage-near-me/page.tsx"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-b6560f95aca17b13", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ijara-vs-murabaha-vs-musharaka-explained/page.tsx:62"}, "properties": {"repobilityId": "2348b9650bc6404a", "scanner": "scanner-primary", "fingerprint": "b6560f95aca17b13", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/ijara-vs-murabaha-vs-musharaka-explained/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-74dc4097421274c0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-mortgage-uk/page.tsx:101"}, "properties": {"repobilityId": "f634cfb6151a53dd", "scanner": "scanner-primary", "fingerprint": "74dc4097421274c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-mortgage-uk/page.tsx"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-0432bd5d91de90de", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-finance-app/page.tsx:229"}, "properties": {"repobilityId": "136209dacd5a7dc9", "scanner": "scanner-primary", "fingerprint": "0432bd5d91de90de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-finance-app/page.tsx"}, "region": {"startLine": 229}}}]}, {"ruleId": "scanner-7f338da91493c1e5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-401k/page.tsx:94"}, "properties": {"repobilityId": "70952fe4a9256db4", "scanner": "scanner-primary", "fingerprint": "7f338da91493c1e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-401k/page.tsx"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-ab74124c427b6292", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-a-529-plan-halal/page.tsx:62"}, "properties": {"repobilityId": "e22230de912d0072", "scanner": "scanner-primary", "fingerprint": "ab74124c427b6292", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/is-a-529-plan-halal/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-1aa836b627127f22", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-business-assets/page.tsx:73"}, "properties": {"repobilityId": "0e14620211e2e684", "scanner": "scanner-primary", "fingerprint": "1aa836b627127f22", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-business-assets/page.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-922cc8a6fb5780e8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-estate-planning/page.tsx:88"}, "properties": {"repobilityId": "bedaa1abb90b7bcf", "scanner": "scanner-primary", "fingerprint": "922cc8a6fb5780e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-estate-planning/page.tsx"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-51ff2c3b295fa864", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-savings-account-usa/page.tsx:67"}, "properties": {"repobilityId": "07a23c3393c616a0", "scanner": "scanner-primary", "fingerprint": "51ff2c3b295fa864", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-savings-account-usa/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-fd8d9adeb511a27f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-banking-vs-conventional/page.tsx:67"}, "properties": {"repobilityId": "be31c6fece45f920", "scanner": "scanner-primary", "fingerprint": "fd8d9adeb511a27f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-banking-vs-conventional/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-b6d8d7b35585c83c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/what-is-zakat/page.tsx:141"}, "properties": {"repobilityId": "0b216dc92535cfda", "scanner": "scanner-primary", "fingerprint": "b6d8d7b35585c83c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/what-is-zakat/page.tsx"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-dd527818a60d3b5c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-savings/page.tsx:56"}, "properties": {"repobilityId": "5bbfdcc91730f845", "scanner": "scanner-primary", "fingerprint": "dd527818a60d3b5c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-savings/page.tsx"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-d6f03e35645cf979", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-stocks/page.tsx:84"}, "properties": {"repobilityId": "2d9050a1652a4f2b", "scanner": "scanner-primary", "fingerprint": "d6f03e35645cf979", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-stocks/page.tsx"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-04897df4531d94d1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-will/page.tsx:72"}, "properties": {"repobilityId": "f46d65af4890c9f6", "scanner": "scanner-primary", "fingerprint": "04897df4531d94d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-will/page.tsx"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-fed9758b0b2383c2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/is-my-401k-halal/page.tsx:66"}, "properties": {"repobilityId": "2bf4c50f94d11a51", "scanner": "scanner-primary", "fingerprint": "fed9758b0b2383c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/is-my-401k-halal/page.tsx"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-5b4af2e8937ca126", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/riba-free-mortgage/page.tsx:130"}, "properties": {"repobilityId": "c3bd336fd551eef1", "scanner": "scanner-primary", "fingerprint": "5b4af2e8937ca126", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/riba-free-mortgage/page.tsx"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-254a01e3d33c432c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/islamic-budgeting-app/page.tsx:337"}, "properties": {"repobilityId": "d9a9337a953ecdd5", "scanner": "scanner-primary", "fingerprint": "254a01e3d33c432c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/islamic-budgeting-app/page.tsx"}, "region": {"startLine": 337}}}]}, {"ruleId": "scanner-e6a2b2ec1c15b72b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-retirement-accounts/page.tsx:55"}, "properties": {"repobilityId": "48fee05de334c0ed", "scanner": "scanner-primary", "fingerprint": "e6a2b2ec1c15b72b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-retirement-accounts/page.tsx"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-95dbcf2bbbe7944f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/madhab-finance/page.tsx:110"}, "properties": {"repobilityId": "d84ccafd9c83b268", "scanner": "scanner-primary", "fingerprint": "95dbcf2bbbe7944f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/madhab-finance/page.tsx"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-0a461dc14011c0fb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-investing-guide/page.tsx:125"}, "properties": {"repobilityId": "b2b1c961786a17ca", "scanner": "scanner-primary", "fingerprint": "0a461dc14011c0fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-investing-guide/page.tsx"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-d476111eeeb122d9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/sadaqah-jariyah-ideas/page.tsx:90"}, "properties": {"repobilityId": "58a5aed8e619cbe3", "scanner": "scanner-primary", "fingerprint": "d476111eeeb122d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/sadaqah-jariyah-ideas/page.tsx"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-91da1dfe28c122e5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-401k/page.tsx:20"}, "properties": {"repobilityId": "95d4d2f269e2e248", "scanner": "scanner-primary", "fingerprint": "91da1dfe28c122e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-401k/page.tsx"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-28a86718b8486f18", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-al-fitr/page.tsx:55"}, "properties": {"repobilityId": "c650cc185a3f2275", "scanner": "scanner-primary", "fingerprint": "28a86718b8486f18", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-al-fitr/page.tsx"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-ab13dea49b3d7e00", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/how-much-zakat-do-i-owe/page.tsx:136"}, "properties": {"repobilityId": "5565b28037ab0590", "scanner": "scanner-primary", "fingerprint": "ab13dea49b3d7e00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/how-much-zakat-do-i-owe/page.tsx"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-ae49bc99f6d4b83e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-budgeting/page.tsx:169"}, "properties": {"repobilityId": "b6739752a75f34c5", "scanner": "scanner-primary", "fingerprint": "ae49bc99f6d4b83e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-budgeting/page.tsx"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-4f438c007584766d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-401k-methodology/page.tsx:59"}, "properties": {"repobilityId": "de2e5ca54bd7b808", "scanner": "scanner-primary", "fingerprint": "4f438c007584766d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-401k-methodology/page.tsx"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-f84437951daae1f8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-crypto/page.tsx:19"}, "properties": {"repobilityId": "09b817ce91a04f17", "scanner": "scanner-primary", "fingerprint": "f84437951daae1f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-crypto/page.tsx"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-911c9701ec0d3a68", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/ramadan-giving-tracker-setup/page.tsx:67"}, "properties": {"repobilityId": "d90a7984fd7969aa", "scanner": "scanner-primary", "fingerprint": "911c9701ec0d3a68", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/ramadan-giving-tracker-setup/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-d42a609b1e820dc0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/muslim-household-budget/page.tsx:159"}, "properties": {"repobilityId": "7b85ed41584f0802", "scanner": "scanner-primary", "fingerprint": "d42a609b1e820dc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/muslim-household-budget/page.tsx"}, "region": {"startLine": 159}}}]}, {"ruleId": "scanner-d4f3b4a9034a019b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab/page.tsx:90"}, "properties": {"repobilityId": "09df01ff73f01ced", "scanner": "scanner-primary", "fingerprint": "d4f3b4a9034a019b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/nisab/page.tsx"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-a62b0b5e5ece0449", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-stock-options-rsus/page.tsx:66"}, "properties": {"repobilityId": "70192224e111f136", "scanner": "scanner-primary", "fingerprint": "a62b0b5e5ece0449", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-stock-options-rsus/page.tsx"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-68c8eb3ffa91c968", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/nisab-gold-vs-silver/page.tsx:69"}, "properties": {"repobilityId": "8ac7e82d2f4c11d3", "scanner": "scanner-primary", "fingerprint": "68c8eb3ffa91c968", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/nisab-gold-vs-silver/page.tsx"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-4db2dc669b21e8d4", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/zakat-on-gold/page.tsx:63"}, "properties": {"repobilityId": "f80132f0490404fb", "scanner": "scanner-primary", "fingerprint": "4db2dc669b21e8d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/zakat-on-gold/page.tsx"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-2cc697fce2ee04a9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/sadaqah-vs-zakat/page.tsx:104"}, "properties": {"repobilityId": "b9f819ae8370c74d", "scanner": "scanner-primary", "fingerprint": "2cc697fce2ee04a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/sadaqah-vs-zakat/page.tsx"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-66bf4ef1cc648248", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/learn/halal-emergency-fund-methodology/page.tsx:62"}, "properties": {"repobilityId": "aaca8fe0dea5bffa", "scanner": "scanner-primary", "fingerprint": "66bf4ef1cc648248", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/learn/halal-emergency-fund-methodology/page.tsx"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-d9dab172061f382a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/hawl/page.tsx:57"}, "properties": {"repobilityId": "57945296194a44a0", "scanner": "scanner-primary", "fingerprint": "d9dab172061f382a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/hawl/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-41eb0d4324eab326", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/what-is-sukuk/page.tsx:65"}, "properties": {"repobilityId": "38ada0a1abd68133", "scanner": "scanner-primary", "fingerprint": "41eb0d4324eab326", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/what-is-sukuk/page.tsx"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-38ac03857a5dbeea", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/riba-elimination/page.tsx:57"}, "properties": {"repobilityId": "fa302c952526121e", "scanner": "scanner-primary", "fingerprint": "38ac03857a5dbeea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/riba-elimination/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-1a3aabf2b31b5f74", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/islamic-finance-app/page.tsx:64"}, "properties": {"repobilityId": "d269cba59e90b9e5", "scanner": "scanner-primary", "fingerprint": "1a3aabf2b31b5f74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/islamic-finance-app/page.tsx"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-108d54a08950102b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/what-is-zakat/page.tsx:46"}, "properties": {"repobilityId": "10bfb1be1d419ec2", "scanner": "scanner-primary", "fingerprint": "108d54a08950102b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/what-is-zakat/page.tsx"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-17048db623cfcee7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/halal-stocks/page.tsx:57"}, "properties": {"repobilityId": "f1aba717cd9da661", "scanner": "scanner-primary", "fingerprint": "17048db623cfcee7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/halal-stocks/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-d8992b42e440311f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/types-of-zakat/page.tsx:30"}, "properties": {"repobilityId": "41222446ac880565", "scanner": "scanner-primary", "fingerprint": "d8992b42e440311f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/types-of-zakat/page.tsx"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-0d12ac94b6c87b45", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/how-much-zakat-do-i-owe/page.tsx:31"}, "properties": {"repobilityId": "bb9dfbb13753194b", "scanner": "scanner-primary", "fingerprint": "0d12ac94b6c87b45", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/how-much-zakat-do-i-owe/page.tsx"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-5d66b517998b8b7f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/halal-budgeting/page.tsx:57"}, "properties": {"repobilityId": "9c095c40a1b23607", "scanner": "scanner-primary", "fingerprint": "5d66b517998b8b7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/halal-budgeting/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-86e058cb368a946e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/nisab/page.tsx:31"}, "properties": {"repobilityId": "418612ebd7749ab8", "scanner": "scanner-primary", "fingerprint": "86e058cb368a946e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/nisab/page.tsx"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-ac789903d5143447", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/learn/zakat-on-gold/page.tsx:57"}, "properties": {"repobilityId": "3ddbf1ec59d9ff6b", "scanner": "scanner-primary", "fingerprint": "ac789903d5143447", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/learn/zakat-on-gold/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-8701ec90c297dcac", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ar/zakat-calculator/page.tsx:81"}, "properties": {"repobilityId": "9bb98c37a1d7101e", "scanner": "scanner-primary", "fingerprint": "8701ec90c297dcac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ar/zakat-calculator/page.tsx"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-54a2a624bf9f944c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/ramadan/page.tsx:105"}, "properties": {"repobilityId": "8f51b42b1637ee7c", "scanner": "scanner-primary", "fingerprint": "54a2a624bf9f944c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/ramadan/page.tsx"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-af062c368bb4f4d9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/zakat-uk/page.tsx:96"}, "properties": {"repobilityId": "8ffffd7ec906f6b8", "scanner": "scanner-primary", "fingerprint": "af062c368bb4f4d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/zakat-uk/page.tsx"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-934b5960210b6bcc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/hawl/page.tsx:58"}, "properties": {"repobilityId": "f1a0eb248912e451", "scanner": "scanner-primary", "fingerprint": "934b5960210b6bcc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/hawl/page.tsx"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-660a8229b4b9f33e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/what-is-sukuk/page.tsx:66"}, "properties": {"repobilityId": "902afcaa77f35160", "scanner": "scanner-primary", "fingerprint": "660a8229b4b9f33e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/what-is-sukuk/page.tsx"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-6c83057696d33991", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/riba-elimination/page.tsx:57"}, "properties": {"repobilityId": "9a00bef04c2a4dc7", "scanner": "scanner-primary", "fingerprint": "6c83057696d33991", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/riba-elimination/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-e9441a13bdaeeb0c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/what-is-zakat/page.tsx:49"}, "properties": {"repobilityId": "3faf284718a34f97", "scanner": "scanner-primary", "fingerprint": "e9441a13bdaeeb0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/what-is-zakat/page.tsx"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-b9043d06030cd375", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/halal-stocks/page.tsx:58"}, "properties": {"repobilityId": "f281c6bc9dc5fd3e", "scanner": "scanner-primary", "fingerprint": "b9043d06030cd375", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/halal-stocks/page.tsx"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-9076898c1c97c841", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/application-finance-islamique/page.tsx:65"}, "properties": {"repobilityId": "6b07e252d255fdf3", "scanner": "scanner-primary", "fingerprint": "9076898c1c97c841", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/application-finance-islamique/page.tsx"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-051cece311ab9054", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/types-of-zakat/page.tsx:31"}, "properties": {"repobilityId": "54ece24f6b3b3c94", "scanner": "scanner-primary", "fingerprint": "051cece311ab9054", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/types-of-zakat/page.tsx"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-98877b3ae2352afc", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/how-much-zakat-do-i-owe/page.tsx:32"}, "properties": {"repobilityId": "e50cda71aaf1cd16", "scanner": "scanner-primary", "fingerprint": "98877b3ae2352afc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/how-much-zakat-do-i-owe/page.tsx"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-e7c9214f85281904", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/halal-budgeting/page.tsx:57"}, "properties": {"repobilityId": "8d6fb2366ed1e83a", "scanner": "scanner-primary", "fingerprint": "e7c9214f85281904", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/halal-budgeting/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-d858819f24cc6d89", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/nisab/page.tsx:32"}, "properties": {"repobilityId": "1cca07dd60685e95", "scanner": "scanner-primary", "fingerprint": "d858819f24cc6d89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/nisab/page.tsx"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-6ab2bf05de70d358", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/learn/zakat-on-gold/page.tsx:57"}, "properties": {"repobilityId": "708ef5a2a874a343", "scanner": "scanner-primary", "fingerprint": "6ab2bf05de70d358", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/learn/zakat-on-gold/page.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-33d1d929b0908395", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fr/zakat-calculator/page.tsx:82"}, "properties": {"repobilityId": "2e562f1708fd02df", "scanner": "scanner-primary", "fingerprint": "33d1d929b0908395", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fr/zakat-calculator/page.tsx"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-5c0b9d47ea0d26cb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/try/page.tsx:48"}, "properties": {"repobilityId": "f553f88a160145a6", "scanner": "scanner-primary", "fingerprint": "5c0b9d47ea0d26cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/try/page.tsx"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-89ad3267ef780737", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/refer/page.tsx:147"}, "properties": {"repobilityId": "ccab70c6d1cfd9b8", "scanner": "scanner-primary", "fingerprint": "89ad3267ef780737", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/refer/page.tsx"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-cbc04dc2c6025acd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/page.tsx:96"}, "properties": {"repobilityId": "13b3da4b46105f4d", "scanner": "scanner-primary", "fingerprint": "cbc04dc2c6025acd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/page.tsx"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-7aaef682feeba5b0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/waqf/page.tsx:40"}, "properties": {"repobilityId": "dc2dc2966ffd0b38", "scanner": "scanner-primary", "fingerprint": "7aaef682feeba5b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/waqf/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-8a821d54e58c1642", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/riba/page.tsx:40"}, "properties": {"repobilityId": "a0962c82f4260136", "scanner": "scanner-primary", "fingerprint": "8a821d54e58c1642", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/riba/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-7710b5e03535e605", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/hawl/page.tsx:40"}, "properties": {"repobilityId": "e07b95a93b20c982", "scanner": "scanner-primary", "fingerprint": "7710b5e03535e605", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/hawl/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-4426d06e0724bce7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/ijara/page.tsx:40"}, "properties": {"repobilityId": "dbbc6d7493d2ae56", "scanner": "scanner-primary", "fingerprint": "4426d06e0724bce7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/ijara/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-e2b97f8c86451ae0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/sadaqah/page.tsx:40"}, "properties": {"repobilityId": "22398b4643620e3e", "scanner": "scanner-primary", "fingerprint": "e2b97f8c86451ae0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/sadaqah/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-64f4cb37f8ae150d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/sukuk/page.tsx:40"}, "properties": {"repobilityId": "39e7957473842668", "scanner": "scanner-primary", "fingerprint": "64f4cb37f8ae150d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/sukuk/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-f596bd446353369c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/faraid/page.tsx:40"}, "properties": {"repobilityId": "17ea23ac8470287c", "scanner": "scanner-primary", "fingerprint": "f596bd446353369c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/faraid/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-9e05f68ce6ba8ff6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/takaful/page.tsx:40"}, "properties": {"repobilityId": "19e5ca6eee5f67c3", "scanner": "scanner-primary", "fingerprint": "9e05f68ce6ba8ff6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/takaful/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-b6b011414dfff1ab", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/murabaha/page.tsx:40"}, "properties": {"repobilityId": "be1473d47b59f799", "scanner": "scanner-primary", "fingerprint": "b6b011414dfff1ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/murabaha/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-c9816bea1a2d1731", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/musharaka/page.tsx:40"}, "properties": {"repobilityId": "6bb4a03739a2bd62", "scanner": "scanner-primary", "fingerprint": "c9816bea1a2d1731", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/musharaka/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-edd7cee287c4a777", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/zakat/page.tsx:40"}, "properties": {"repobilityId": "e5d7a2b7d047137a", "scanner": "scanner-primary", "fingerprint": "edd7cee287c4a777", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/zakat/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-a4f41f7590076e82", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/hibah/page.tsx:40"}, "properties": {"repobilityId": "fb1d9fe8f6381336", "scanner": "scanner-primary", "fingerprint": "a4f41f7590076e82", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/hibah/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-bd6906aceb2e827c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/nisab/page.tsx:40"}, "properties": {"repobilityId": "8180ecff47e8230a", "scanner": "scanner-primary", "fingerprint": "bd6906aceb2e827c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/nisab/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-bf07862e9365fd08", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/fiqh-terms/wassiyah/page.tsx:40"}, "properties": {"repobilityId": "15ec6a6bbadaf77f", "scanner": "scanner-primary", "fingerprint": "bf07862e9365fd08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/fiqh-terms/wassiyah/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-cc4f046ed1c26c69", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/trust/TrustPageClient.tsx:85"}, "properties": {"repobilityId": "94fd8efb48d1f40a", "scanner": "scanner-primary", "fingerprint": "cc4f046ed1c26c69", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/trust/TrustPageClient.tsx"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-ce1dcb29ae678b0b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/page.tsx:106"}, "properties": {"repobilityId": "6a98b20849bdfef6", "scanner": "scanner-primary", "fingerprint": "ce1dcb29ae678b0b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/page.tsx"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-fe9aa9b1049f0011", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/msft/page.tsx:36"}, "properties": {"repobilityId": "13d0bb75ead13b39", "scanner": "scanner-primary", "fingerprint": "fe9aa9b1049f0011", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/msft/page.tsx"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-8b84cf71b1e6b964", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/adbe/page.tsx:44"}, "properties": {"repobilityId": "dc16bdf14d076874", "scanner": "scanner-primary", "fingerprint": "8b84cf71b1e6b964", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/adbe/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-1d2b63734bfd6e6b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/ko/page.tsx:44"}, "properties": {"repobilityId": "151ca14c8b643e4a", "scanner": "scanner-primary", "fingerprint": "1d2b63734bfd6e6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/ko/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-17ecef5aecef2de4", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/list/page.tsx:104"}, "properties": {"repobilityId": "caeda82f8b4e3f77", "scanner": "scanner-primary", "fingerprint": "17ecef5aecef2de4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/list/page.tsx"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-e6067ca528900257", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nvda/page.tsx:36"}, "properties": {"repobilityId": "4de2ed4ba2e29b5d", "scanner": "scanner-primary", "fingerprint": "e6067ca528900257", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/nvda/page.tsx"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-46bcb294edd72f2e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/tsla/page.tsx:36"}, "properties": {"repobilityId": "d02a485011e9e23c", "scanner": "scanner-primary", "fingerprint": "46bcb294edd72f2e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/tsla/page.tsx"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-8f632a2c3469b3c6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nflx/page.tsx:52"}, "properties": {"repobilityId": "dc9ba4bc9d1ff200", "scanner": "scanner-primary", "fingerprint": "8f632a2c3469b3c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/nflx/page.tsx"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-4495744e14bd0a96", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/meta/page.tsx:52"}, "properties": {"repobilityId": "ad8036da35bf6449", "scanner": "scanner-primary", "fingerprint": "4495744e14bd0a96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/meta/page.tsx"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-f3d10fe14fa26872", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/orcl/page.tsx:44"}, "properties": {"repobilityId": "bad3f042ddd77f81", "scanner": "scanner-primary", "fingerprint": "f3d10fe14fa26872", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/orcl/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-7f61ce16f48fecbb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/amzn/page.tsx:36"}, "properties": {"repobilityId": "c533261f63adb403", "scanner": "scanner-primary", "fingerprint": "7f61ce16f48fecbb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/amzn/page.tsx"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-7483481e5b83c4ce", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/ul/page.tsx:44"}, "properties": {"repobilityId": "a26b26a61d5f7843", "scanner": "scanner-primary", "fingerprint": "7483481e5b83c4ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/ul/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-731a6885de22430c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/pg/page.tsx:44"}, "properties": {"repobilityId": "bbb72af0905ef65a", "scanner": "scanner-primary", "fingerprint": "731a6885de22430c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/pg/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-1f26b2a0cd80e976", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/aapl/page.tsx:44"}, "properties": {"repobilityId": "45ea4302f20e0c91", "scanner": "scanner-primary", "fingerprint": "1f26b2a0cd80e976", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/aapl/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-e4a34cb17acab6f9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/crm/page.tsx:44"}, "properties": {"repobilityId": "9c8b998f7a1a8403", "scanner": "scanner-primary", "fingerprint": "e4a34cb17acab6f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/crm/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-306c49e9cbf7a694", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/nsrgy/page.tsx:52"}, "properties": {"repobilityId": "e2e279ffe0173bd8", "scanner": "scanner-primary", "fingerprint": "306c49e9cbf7a694", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/nsrgy/page.tsx"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-a19a58d3f29c3717", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/amd/page.tsx:44"}, "properties": {"repobilityId": "568334fbcf3d984f", "scanner": "scanner-primary", "fingerprint": "a19a58d3f29c3717", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/amd/page.tsx"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-a64de147aa918ef1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/halal-stocks/googl/page.tsx:52"}, "properties": {"repobilityId": "baad5bdc8cf133d2", "scanner": "scanner-primary", "fingerprint": "a64de147aa918ef1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/halal-stocks/googl/page.tsx"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-825803cec421b95f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/family/page.tsx:117"}, "properties": {"repobilityId": "dc2cf199e833238c", "scanner": "scanner-primary", "fingerprint": "825803cec421b95f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/family/page.tsx"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-b25d6147e984a5fe", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/faraid-calculator/page.tsx:79"}, "properties": {"repobilityId": "2f01b70c896039a4", "scanner": "scanner-primary", "fingerprint": "b25d6147e984a5fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/faraid-calculator/page.tsx"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-5df26b07fbf9a88d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/page.tsx:242"}, "properties": {"repobilityId": "a3c36a3e5347d8fe", "scanner": "scanner-primary", "fingerprint": "5df26b07fbf9a88d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/page.tsx"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-fbcdfcd52d0b30dd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-zeta/page.tsx:70"}, "properties": {"repobilityId": "f40749e24491cd05", "scanner": "scanner-primary", "fingerprint": "fbcdfcd52d0b30dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-zeta/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-3f6727805b362069", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/islamic-finance-apps/page.tsx:54"}, "properties": {"repobilityId": "9566182a13a0f86d", "scanner": "scanner-primary", "fingerprint": "3f6727805b362069", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/islamic-finance-apps/page.tsx"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-3cfc17e5e9bc5391", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-rocketmoney/page.tsx:70"}, "properties": {"repobilityId": "d672fc74fb65e351", "scanner": "scanner-primary", "fingerprint": "3cfc17e5e9bc5391", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-rocketmoney/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-1ba03ee3dc899ec9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-zoya/page.tsx:83"}, "properties": {"repobilityId": "47d133b1767f73fd", "scanner": "scanner-primary", "fingerprint": "1ba03ee3dc899ec9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-zoya/page.tsx"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-c7b19ff9351fc4fd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-pocketguard/page.tsx:70"}, "properties": {"repobilityId": "5ec69576390b0311", "scanner": "scanner-primary", "fingerprint": "c7b19ff9351fc4fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-pocketguard/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-7cb3dc15f56acc99", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-fudget/page.tsx:71"}, "properties": {"repobilityId": "17109af0cecfc4d1", "scanner": "scanner-primary", "fingerprint": "7cb3dc15f56acc99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-fudget/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-26d92f04df3c3a54", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-stash/page.tsx:71"}, "properties": {"repobilityId": "12bf282c9c8c35a1", "scanner": "scanner-primary", "fingerprint": "26d92f04df3c3a54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-stash/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-da3f957dd41edd44", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-robinhood/page.tsx:71"}, "properties": {"repobilityId": "d0147e12979e7171", "scanner": "scanner-primary", "fingerprint": "da3f957dd41edd44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-robinhood/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-29d6da7d20254164", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-quicken/page.tsx:70"}, "properties": {"repobilityId": "0968108005d1ec50", "scanner": "scanner-primary", "fingerprint": "29d6da7d20254164", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-quicken/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-cdcdb2e0974ee4b7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-musaffa/page.tsx:70"}, "properties": {"repobilityId": "8b05c8114af99c2f", "scanner": "scanner-primary", "fingerprint": "cdcdb2e0974ee4b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-musaffa/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-db8ae37f62fb132f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-wahed/page.tsx:73"}, "properties": {"repobilityId": "54a97de4c0818310", "scanner": "scanner-primary", "fingerprint": "db8ae37f62fb132f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-wahed/page.tsx"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-7c2b010ebb89ddd6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-yaqeen-money/page.tsx:71"}, "properties": {"repobilityId": "92edbcf5d5695ca7", "scanner": "scanner-primary", "fingerprint": "7c2b010ebb89ddd6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-yaqeen-money/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-901209ea3c819097", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-tiller/page.tsx:70"}, "properties": {"repobilityId": "9aed4a0d237018aa", "scanner": "scanner-primary", "fingerprint": "901209ea3c819097", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-tiller/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-d119833cfbf41c50", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-acorns/page.tsx:71"}, "properties": {"repobilityId": "322513df50ec237e", "scanner": "scanner-primary", "fingerprint": "d119833cfbf41c50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-acorns/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-1b46f0b05d601195", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-saturna/page.tsx:71"}, "properties": {"repobilityId": "f6a668ae7b0e709d", "scanner": "scanner-primary", "fingerprint": "1b46f0b05d601195", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-saturna/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-14033224804d2913", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-mvelopes/page.tsx:71"}, "properties": {"repobilityId": "f8e8f366773fb124", "scanner": "scanner-primary", "fingerprint": "14033224804d2913", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-mvelopes/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-fa1ae7ddf1deb446", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-ynab/page.tsx:74"}, "properties": {"repobilityId": "f3ed1891b0acc99f", "scanner": "scanner-primary", "fingerprint": "fa1ae7ddf1deb446", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-ynab/page.tsx"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-531e14b615f6d6fe", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-spendee/page.tsx:71"}, "properties": {"repobilityId": "90d07628aff40deb", "scanner": "scanner-primary", "fingerprint": "531e14b615f6d6fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-spendee/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-92c566e352e01bfd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-empower/page.tsx:70"}, "properties": {"repobilityId": "f7900a3d577c4944", "scanner": "scanner-primary", "fingerprint": "92c566e352e01bfd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-empower/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-4d4154bd3bdd894b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-personal-capital/page.tsx:70"}, "properties": {"repobilityId": "6590419e18cc2476", "scanner": "scanner-primary", "fingerprint": "4d4154bd3bdd894b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-personal-capital/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-ea876c09d5cdc780", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-monarch/page.tsx:71"}, "properties": {"repobilityId": "a6a27f90673a7643", "scanner": "scanner-primary", "fingerprint": "ea876c09d5cdc780", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-monarch/page.tsx"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-8563d0163e11239e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-copilot/page.tsx:70"}, "properties": {"repobilityId": "a551af8d8e848d25", "scanner": "scanner-primary", "fingerprint": "8563d0163e11239e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-copilot/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-f800c41c93514b51", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/compare/barakah-vs-wealthfront/page.tsx:70"}, "properties": {"repobilityId": "fec7888bc03e4482", "scanner": "scanner-primary", "fingerprint": "f800c41c93514b51", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/compare/barakah-vs-wealthfront/page.tsx"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-ee666cf64f657c4b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/features/page.tsx:47"}, "properties": {"repobilityId": "29f503e7232a3e11", "scanner": "scanner-primary", "fingerprint": "ee666cf64f657c4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/features/page.tsx"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-bd5b56113f347fd9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/methodology/MethodologyClient.tsx:34"}, "properties": {"repobilityId": "332dd89dbd73f2fa", "scanner": "scanner-primary", "fingerprint": "bd5b56113f347fd9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/methodology/MethodologyClient.tsx"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-4b499c14a8da090e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/zakat-calculator/page.tsx:112"}, "properties": {"repobilityId": "532f0a04c7df2ac2", "scanner": "scanner-primary", "fingerprint": "4b499c14a8da090e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/zakat-calculator/page.tsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-6139cc09ca12f53a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/lib/api.ts:525"}, "properties": {"repobilityId": "dcf6ccb07ce6ec2d", "scanner": "scanner-primary", "fingerprint": "6139cc09ca12f53a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/api.ts"}, "region": {"startLine": 525}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 304}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 1749}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 1750}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 1752}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 1754}}}]}, {"ruleId": "scanner-06b46ff12293525d", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/fr.ts"}, "properties": {"repobilityId": "aa2938fc14110cc6", "scanner": "scanner-primary", "fingerprint": "06b46ff12293525d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/fr.ts"}, "region": {"startLine": 1766}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 304}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 1749}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 1750}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 1752}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 1754}}}]}, {"ruleId": "scanner-f705b43ebdfdaf65", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ur.ts"}, "properties": {"repobilityId": "61dbfe6450890934", "scanner": "scanner-primary", "fingerprint": "f705b43ebdfdaf65", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ur.ts"}, "region": {"startLine": 1766}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 324}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 332}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 1803}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 1804}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 1806}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 1808}}}]}, {"ruleId": "scanner-a86bb0a96ba9e871", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/en.ts"}, "properties": {"repobilityId": "349479d5fa083e3f", "scanner": "scanner-primary", "fingerprint": "a86bb0a96ba9e871", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/en.ts"}, "region": {"startLine": 1820}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 304}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 1749}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 1750}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 1752}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 1754}}}]}, {"ruleId": "scanner-4effdf74a92da461", "level": "error", "message": {"text": "Possible secret in src/lib/i18n/dictionaries/ar.ts"}, "properties": {"repobilityId": "7f2000b2e42a2d24", "scanner": "scanner-primary", "fingerprint": "4effdf74a92da461", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/i18n/dictionaries/ar.ts"}, "region": {"startLine": 1766}}}]}, {"ruleId": "scanner-328eb7b3e9ef8a20", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/legacy/homepage-pre-v20-2026-04-30.tsx:182"}, "properties": {"repobilityId": "02e271032aba182c", "scanner": "scanner-primary", "fingerprint": "328eb7b3e9ef8a20", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/legacy/homepage-pre-v20-2026-04-30.tsx"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-9a32b96c4befc421", "level": "error", "message": {"text": "Possible secret in e2e/api-health.spec.ts"}, "properties": {"repobilityId": "05b8026b6ffa1918", "scanner": "scanner-primary", "fingerprint": "9a32b96c4befc421", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/api-health.spec.ts"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-9a32b96c4befc421", "level": "error", "message": {"text": "Possible secret in e2e/api-health.spec.ts"}, "properties": {"repobilityId": "05b8026b6ffa1918", "scanner": "scanner-primary", "fingerprint": "9a32b96c4befc421", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/api-health.spec.ts"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-9b154b857c6d89b5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d4947f0d26ec16f6", "scanner": "scanner-primary", "fingerprint": "9b154b857c6d89b5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/api-parity.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-9b154b857c6d89b5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d4947f0d26ec16f6", "scanner": "scanner-primary", "fingerprint": "9b154b857c6d89b5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/api-parity.yml"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-9b154b857c6d89b5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "68243ded8b28b93b", "scanner": "scanner-primary", "fingerprint": "9b154b857c6d89b5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/api-parity.yml"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd7f3c1c34d83159", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-65c9bd56493a81d3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c9c8d455a9d830b0", "scanner": "scanner-primary", "fingerprint": "65c9bd56493a81d3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-65c9bd56493a81d3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8e879d8d5d310b9f", "scanner": "scanner-primary", "fingerprint": "65c9bd56493a81d3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e.yml"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3d3edcf8c74ee64", "level": "note", "message": {"text": "Very large file: src/components/admin/LifecycleCampaignCenter.tsx (1538 lines)"}, "properties": {"repobilityId": "6435000552ead08e", "scanner": "scanner-primary", "fingerprint": "d3d3edcf8c74ee64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0fabf1f69b66b094", "level": "note", "message": {"text": "Very large file: src/components/admin/AdminUserDetailModal.tsx (1237 lines)"}, "properties": {"repobilityId": "9d3edaf9d87244ec", "scanner": "scanner-primary", "fingerprint": "0fabf1f69b66b094", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f3c3393f4581e508", "level": "note", "message": {"text": "Very large file: src/app/dashboard/page.tsx (1850 lines)"}, "properties": {"repobilityId": "d1018ecc2e88ff7e", "scanner": "scanner-primary", "fingerprint": "f3c3393f4581e508", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-62d41939dda30e50", "level": "note", "message": {"text": "Very large file: src/app/dashboard/transactions/page.tsx (2080 lines)"}, "properties": {"repobilityId": "37daa7f055a51445", "scanner": "scanner-primary", "fingerprint": "62d41939dda30e50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f35b305e4180cab1", "level": "note", "message": {"text": "Very large file: src/app/dashboard/riba/page.tsx (1194 lines)"}, "properties": {"repobilityId": "2343d3c016ea327c", "scanner": "scanner-primary", "fingerprint": "f35b305e4180cab1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-969c62fd3a047c04", "level": "note", "message": {"text": "Very large file: src/app/dashboard/analytics/page.tsx (1089 lines)"}, "properties": {"repobilityId": "d66723c8ddcfd156", "scanner": "scanner-primary", "fingerprint": "969c62fd3a047c04", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7b87cfcaf5bb07b8", "level": "note", "message": {"text": "Very large file: src/app/dashboard/shared/page.tsx (1179 lines)"}, "properties": {"repobilityId": "d87f71a6faeb2027", "scanner": "scanner-primary", "fingerprint": "7b87cfcaf5bb07b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4b00c5d605eb903a", "level": "note", "message": {"text": "Very large file: src/app/dashboard/investments/page.tsx (1058 lines)"}, "properties": {"repobilityId": "1af3306c316a0b88", "scanner": "scanner-primary", "fingerprint": "4b00c5d605eb903a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-81c50f1b964b2be3", "level": "note", "message": {"text": "Very large file: src/app/dashboard/profile/page.tsx (1057 lines)"}, "properties": {"repobilityId": "28dbf87450f01614", "scanner": "scanner-primary", "fingerprint": "81c50f1b964b2be3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ca8c179b695eb519", "level": "note", "message": {"text": "Very large file: src/app/dashboard/zakat/page.tsx (1840 lines)"}, "properties": {"repobilityId": "acbae2e2db85a98d", "scanner": "scanner-primary", "fingerprint": "ca8c179b695eb519", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e89751f372fb1f3a", "level": "note", "message": {"text": "Very large file: src/app/dashboard/cash-flow/page.tsx (1214 lines)"}, "properties": {"repobilityId": "4ae5d3a9bff2b2b1", "scanner": "scanner-primary", "fingerprint": "e89751f372fb1f3a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e9ea4bfea097881f", "level": "note", "message": {"text": "Very large file: src/app/dashboard/debts/page.tsx (1193 lines)"}, "properties": {"repobilityId": "d9af7b73dc36595f", "scanner": "scanner-primary", "fingerprint": "e9ea4bfea097881f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-287d612dc77b96fb", "level": "note", "message": {"text": "Very large file: src/lib/api.ts (2511 lines)"}, "properties": {"repobilityId": "eee6a14a4b8617b1", "scanner": "scanner-primary", "fingerprint": "287d612dc77b96fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0d66759063ff5115", "level": "note", "message": {"text": "Very large file: src/lib/i18n/dictionaries/fr.ts (4327 lines)"}, "properties": {"repobilityId": "fccc5666574b1bf9", "scanner": "scanner-primary", "fingerprint": "0d66759063ff5115", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-510020677872f78c", "level": "note", "message": {"text": "Very large file: src/lib/i18n/dictionaries/ur.ts (4321 lines)"}, "properties": {"repobilityId": "610b5ad4704a7107", "scanner": "scanner-primary", "fingerprint": "510020677872f78c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b22615494893568e", "level": "note", "message": {"text": "Very large file: src/lib/i18n/dictionaries/en.ts (4386 lines)"}, "properties": {"repobilityId": "897cc28fd9cc56f4", "scanner": "scanner-primary", "fingerprint": "b22615494893568e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-90c2f90add55321a", "level": "note", "message": {"text": "Very large file: src/lib/i18n/dictionaries/ar.ts (4321 lines)"}, "properties": {"repobilityId": "7236345ddcddb57a", "scanner": "scanner-primary", "fingerprint": "90c2f90add55321a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"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": "e7a120d11f7384d5", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b89de2c19d41e7c7", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "84d66b8f3d312c86", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "5aa8b8f0d2b9e35e", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "1e3e9acadbd159aa", "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": "268dc767c96f86cf", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-1769100d559bed9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in playwright.config.ts:4"}, "properties": {"repobilityId": "eaff23626a58803c", "scanner": "scanner-primary", "fingerprint": "1769100d559bed9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0e35bb27acd0aee", "level": "none", "message": {"text": "Commented-code block (8 lines) in eslint.config.mjs:8"}, "properties": {"repobilityId": "25ec7611555dca56", "scanner": "scanner-primary", "fingerprint": "f0e35bb27acd0aee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7139a03582805ed0", "level": "none", "message": {"text": "Commented-code block (6 lines) in next.config.ts:12"}, "properties": {"repobilityId": "d7c409dbd8bf2a54", "scanner": "scanner-primary", "fingerprint": "7139a03582805ed0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9daaddfbf919f0ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/contract-check.ts:93"}, "properties": {"repobilityId": "20c335ff779a6ee3", "scanner": "scanner-primary", "fingerprint": "9daaddfbf919f0ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf0cff8ded0a6aed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/link-sandbox-bank.mjs:88"}, "properties": {"repobilityId": "8d60ba597622ef71", "scanner": "scanner-primary", "fingerprint": "bf0cff8ded0a6aed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f2342ac79fe8abb2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/instrumentation-client.ts:9"}, "properties": {"repobilityId": "ca7230be994b8a15", "scanner": "scanner-primary", "fingerprint": "f2342ac79fe8abb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4ecee01b0d48b16", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/proxy.ts:102"}, "properties": {"repobilityId": "a62e3f73e8b6021d", "scanner": "scanner-primary", "fingerprint": "d4ecee01b0d48b16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3850fd2a91a4893", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/__tests__/backgroundPollsDoNotLogout.test.ts:115"}, "properties": {"repobilityId": "c49fdbb0888475f1", "scanner": "scanner-primary", "fingerprint": "d3850fd2a91a4893", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba83bc78fc1612c1", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/__tests__/adminSurfaces.test.tsx:148"}, "properties": {"repobilityId": "b119809ba03ee191", "scanner": "scanner-primary", "fingerprint": "ba83bc78fc1612c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d610a6617c009c37", "level": "note", "message": {"text": "Legacy-named symbol `rt_old` in src/__tests__/refreshTokenFallback.test.ts:24"}, "properties": {"repobilityId": "7373eb4c54cdef3f", "scanner": "scanner-primary", "fingerprint": "d610a6617c009c37", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1c16152654404e64", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/NisabLivePrices.tsx:3"}, "properties": {"repobilityId": "abe04781dd3c4bbc", "scanner": "scanner-primary", "fingerprint": "1c16152654404e64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5d7a616a63c7f8c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/GoogleSignInButton.tsx:86"}, "properties": {"repobilityId": "88a16364168d1ec9", "scanner": "scanner-primary", "fingerprint": "b5d7a616a63c7f8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8dd41878f217978e", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/components/TransactionUsageMeter.tsx:27"}, "properties": {"repobilityId": "cd2cdfa037e239c3", "scanner": "scanner-primary", "fingerprint": "8dd41878f217978e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1835c70ec323575c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/OnboardingWizard.tsx:22"}, "properties": {"repobilityId": "5729129b4ace6fe3", "scanner": "scanner-primary", "fingerprint": "1835c70ec323575c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d4c56668a72bcd3", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/ReferralPromptModal.tsx:38"}, "properties": {"repobilityId": "323023a77eb9e7b6", "scanner": "scanner-primary", "fingerprint": "8d4c56668a72bcd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fd45740b41cf58b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ErrorBoundary.tsx:31"}, "properties": {"repobilityId": "11c79e86e105b8f2", "scanner": "scanner-primary", "fingerprint": "8fd45740b41cf58b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc32ce4d0d5fc110", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/ShareReceiptButton.tsx:74"}, "properties": {"repobilityId": "6b5c40abc8dd100e", "scanner": "scanner-primary", "fingerprint": "fc32ce4d0d5fc110", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b54f05f58cbfcc1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/PlanGate.tsx:47"}, "properties": {"repobilityId": "45596113b0a17b08", "scanner": "scanner-primary", "fingerprint": "b54f05f58cbfcc1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf6341788dd16113", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/SupportModeBanner.tsx:37"}, "properties": {"repobilityId": "1a0a58163e37c02d", "scanner": "scanner-primary", "fingerprint": "bf6341788dd16113", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0197bde3b87cf83", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/components/TrialBanner.tsx:11"}, "properties": {"repobilityId": "49c229d64a89dfa9", "scanner": "scanner-primary", "fingerprint": "b0197bde3b87cf83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2200794b987736d0", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/BankLogo.tsx:97"}, "properties": {"repobilityId": "9fad8640c6d99f70", "scanner": "scanner-primary", "fingerprint": "2200794b987736d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fcf38742144f3c8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/HeroLink.tsx:122"}, "properties": {"repobilityId": "8da00a335f690240", "scanner": "scanner-primary", "fingerprint": "fcf38742144f3c8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87cd9c3c97941e90", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/SessionTimeoutModal.tsx:10"}, "properties": {"repobilityId": "d5d6b067f0f691a3", "scanner": "scanner-primary", "fingerprint": "87cd9c3c97941e90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57e1fc01fe8005ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/MerchantLogo.tsx:3"}, "properties": {"repobilityId": "42bd46271478aeeb", "scanner": "scanner-primary", "fingerprint": "57e1fc01fe8005ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ffa692644efa6c7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/SyncBanksButton.tsx:65"}, "properties": {"repobilityId": "ac0d249651a02384", "scanner": "scanner-primary", "fingerprint": "5ffa692644efa6c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a85348bac98a97f", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/components/ui/ModalShell.tsx:46"}, "properties": {"repobilityId": "401fcd1591b60d10", "scanner": "scanner-primary", "fingerprint": "3a85348bac98a97f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-494858d456f4646a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/dashboard/InlineMonthBreakdown.tsx:3"}, "properties": {"repobilityId": "4abdae6fbf88fe93", "scanner": "scanner-primary", "fingerprint": "494858d456f4646a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7c4626cc435798c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/dashboard/NetWorthDrilldown.tsx:10"}, "properties": {"repobilityId": "f94a40f6c4ead45d", "scanner": "scanner-primary", "fingerprint": "b7c4626cc435798c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e323d4850630a192", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/dashboard/KpiCard.tsx:253"}, "properties": {"repobilityId": "9297f13fdd609915", "scanner": "scanner-primary", "fingerprint": "e323d4850630a192", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adff74378215c708", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/dashboard/WeeklyRecap.tsx:29"}, "properties": {"repobilityId": "c779a067d3a5036e", "scanner": "scanner-primary", "fingerprint": "adff74378215c708", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2674ac535e88c53e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/dashboard/MonthDetailSheet.tsx:100"}, "properties": {"repobilityId": "b3fe28bd9f7127b2", "scanner": "scanner-primary", "fingerprint": "2674ac535e88c53e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d9d7e39398311b8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/admin/adminFormatting.ts:73"}, "properties": {"repobilityId": "642940695589c25b", "scanner": "scanner-primary", "fingerprint": "2d9d7e39398311b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66b46bd9ca05854e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/admin/DataFreshness.tsx:66"}, "properties": {"repobilityId": "7f4f72a42bee1119", "scanner": "scanner-primary", "fingerprint": "66b46bd9ca05854e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c93ba67f6c82062", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/admin/AdminGrantTrialModal.tsx:46"}, "properties": {"repobilityId": "ab1e7a7d81cccd1e", "scanner": "scanner-primary", "fingerprint": "2c93ba67f6c82062", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b43e58f25c7ee1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/admin/AdminUserDetailModal.tsx:284"}, "properties": {"repobilityId": "83512fcdfea4a168", "scanner": "scanner-primary", "fingerprint": "8b43e58f25c7ee1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c8974f626ad7cd6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/not-found.tsx:3"}, "properties": {"repobilityId": "9378cac93640ab62", "scanner": "scanner-primary", "fingerprint": "8c8974f626ad7cd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-387f0e6af3a0f6b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/sitemap.ts:245"}, "properties": {"repobilityId": "d370b4234d2ab30f", "scanner": "scanner-primary", "fingerprint": "387f0e6af3a0f6b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bd45099fdf47063", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/app/page.tsx:26"}, "properties": {"repobilityId": "12728982c1f6b161", "scanner": "scanner-primary", "fingerprint": "9bd45099fdf47063", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9c6b0afbb7c2544", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/layout.tsx:19"}, "properties": {"repobilityId": "c016702a9f574c0f", "scanner": "scanner-primary", "fingerprint": "b9c6b0afbb7c2544", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29fb017492bb13e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/providers.tsx:85"}, "properties": {"repobilityId": "d3617f08dea9e73b", "scanner": "scanner-primary", "fingerprint": "29fb017492bb13e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32c5a8b89e3cb718", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/email-capture/route.ts:46"}, "properties": {"repobilityId": "ff0b569fb90f1b39", "scanner": "scanner-primary", "fingerprint": "32c5a8b89e3cb718", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76cb11b1b9f5165c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/open/page.tsx:54"}, "properties": {"repobilityId": "f99b9262c07de088", "scanner": "scanner-primary", "fingerprint": "76cb11b1b9f5165c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47b5e3fdc2b56063", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/learn/halal-stocks/page.tsx:6"}, "properties": {"repobilityId": "2b470b1183ceffa3", "scanner": "scanner-primary", "fingerprint": "47b5e3fdc2b56063", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f14fff389ed96cb8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/learn/halal-investing-guide/page.tsx:199"}, "properties": {"repobilityId": "2577be1fca89629e", "scanner": "scanner-primary", "fingerprint": "f14fff389ed96cb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3301c566688aa92a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/auth/[...path]/route.ts:18"}, "properties": {"repobilityId": "ac523e8ac2d88246", "scanner": "scanner-primary", "fingerprint": "3301c566688aa92a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-231219875b9b8e1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/login/page.tsx:20"}, "properties": {"repobilityId": "a55d4408e71efccd", "scanner": "scanner-primary", "fingerprint": "231219875b9b8e1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28c3ec05ad651ec0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/AskBarakah.tsx:185"}, "properties": {"repobilityId": "cc9f645f604f74f3", "scanner": "scanner-primary", "fingerprint": "28c3ec05ad651ec0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf6df69ed55bf70d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/page.tsx:138"}, "properties": {"repobilityId": "ca9358ed19ad3f23", "scanner": "scanner-primary", "fingerprint": "cf6df69ed55bf70d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bec7f14dca59fdc9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/NotificationBell.tsx:62"}, "properties": {"repobilityId": "8e71c6c171bf08a6", "scanner": "scanner-primary", "fingerprint": "bec7f14dca59fdc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aee4b6cc3480728", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/dashboard/layout.tsx:35"}, "properties": {"repobilityId": "e9cbe9aa31299ec7", "scanner": "scanner-primary", "fingerprint": "5aee4b6cc3480728", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-287c5ffc17bcb51d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/categorize/page.tsx:142"}, "properties": {"repobilityId": "48223a3826ff4423", "scanner": "scanner-primary", "fingerprint": "287c5ffc17bcb51d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7eb388ca635e77a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/settings/page.tsx:1"}, "properties": {"repobilityId": "9c3ea4d7db479cda", "scanner": "scanner-primary", "fingerprint": "7eb388ca635e77a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9caaccf9fe25f2eb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/transactions/page.tsx:82"}, "properties": {"repobilityId": "71b1a65007e5492d", "scanner": "scanner-primary", "fingerprint": "9caaccf9fe25f2eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b72739d239c3d4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/forecasting/page.tsx:52"}, "properties": {"repobilityId": "6a71148f7e76f393", "scanner": "scanner-primary", "fingerprint": "2b72739d239c3d4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf50cf631f9bf196", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/notifications/page.tsx:30"}, "properties": {"repobilityId": "b189f825741b18b9", "scanner": "scanner-primary", "fingerprint": "bf50cf631f9bf196", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-850e519bedcfa2d1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/riba/page.tsx:32"}, "properties": {"repobilityId": "dacac8c38e9d5e4b", "scanner": "scanner-primary", "fingerprint": "850e519bedcfa2d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7bc69dc17f025ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/analytics/page.tsx:11"}, "properties": {"repobilityId": "6101142be3118ccf", "scanner": "scanner-primary", "fingerprint": "e7bc69dc17f025ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef4323f2d96e95a7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/shared/page.tsx:61"}, "properties": {"repobilityId": "5dd430bbe21da296", "scanner": "scanner-primary", "fingerprint": "ef4323f2d96e95a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42c420459bea2752", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/budget/page.tsx:14"}, "properties": {"repobilityId": "9282a8a8dbef4ccb", "scanner": "scanner-primary", "fingerprint": "42c420459bea2752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b07b1b53b9e6fb92", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/referral/page.tsx:34"}, "properties": {"repobilityId": "2415e7dabfea287f", "scanner": "scanner-primary", "fingerprint": "b07b1b53b9e6fb92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b7d491f89c51cb7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/dashboard/recurring/page.tsx:413"}, "properties": {"repobilityId": "8b34843ddd8c8683", "scanner": "scanner-primary", "fingerprint": "0b7d491f89c51cb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bc0d33833656cc6", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/dashboard/net-worth/page.tsx:107"}, "properties": {"repobilityId": "7a1196c880b2a57a", "scanner": "scanner-primary", "fingerprint": "2bc0d33833656cc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd2d95ee04eff329", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/dashboard/assets/page.tsx:64"}, "properties": {"repobilityId": "0abc856ddb67fb09", "scanner": "scanner-primary", "fingerprint": "cd2d95ee04eff329", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67a1bad988b5bc85", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/fiqh/page.tsx:126"}, "properties": {"repobilityId": "76b4279e47ab2cc9", "scanner": "scanner-primary", "fingerprint": "67a1bad988b5bc85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c4d1373b1da7779", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/bills/page.tsx:18"}, "properties": {"repobilityId": "e9b3d48159d68be9", "scanner": "scanner-primary", "fingerprint": "1c4d1373b1da7779", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f93f2b90f59dfc8c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/savings/page.tsx:330"}, "properties": {"repobilityId": "c0f416f0ea0ce478", "scanner": "scanner-primary", "fingerprint": "f93f2b90f59dfc8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c23020bb15e2c46", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/billing/page.tsx:27"}, "properties": {"repobilityId": "8b5b7b93b496d443", "scanner": "scanner-primary", "fingerprint": "9c23020bb15e2c46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c121111c870875e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/dashboard/faraid/page.tsx:186"}, "properties": {"repobilityId": "b8c0e952766f87a9", "scanner": "scanner-primary", "fingerprint": "0c121111c870875e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1b5405f043f5029", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/dashboard/admin/page.tsx:442"}, "properties": {"repobilityId": "8fc53e9468c2714a", "scanner": "scanner-primary", "fingerprint": "c1b5405f043f5029", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91a340370f8e38ff", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/dashboard/admin/email-preview/page.tsx:294"}, "properties": {"repobilityId": "72120971904dd703", "scanner": "scanner-primary", "fingerprint": "91a340370f8e38ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eae7c133297e960d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/wasiyyah/page.tsx:295"}, "properties": {"repobilityId": "29de8a91bae1f911", "scanner": "scanner-primary", "fingerprint": "eae7c133297e960d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-228aa80bf2ffc2b8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/investments/page.tsx:126"}, "properties": {"repobilityId": "a1b670f185f01ef9", "scanner": "scanner-primary", "fingerprint": "228aa80bf2ffc2b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1091e307d5a75203", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/ledger/page.tsx:137"}, "properties": {"repobilityId": "4024ec3e27b0521a", "scanner": "scanner-primary", "fingerprint": "1091e307d5a75203", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c2aa05b16d70e18", "level": "note", "message": {"text": "Legacy-named symbol `profPwSameAsOld` in src/app/dashboard/profile/page.tsx:238"}, "properties": {"repobilityId": "c1c8ca547a0db5df", "scanner": "scanner-primary", "fingerprint": "2c2aa05b16d70e18", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dfdedc7a4da8649a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/reports/page.tsx:247"}, "properties": {"repobilityId": "1055d129c2b3f6f7", "scanner": "scanner-primary", "fingerprint": "dfdedc7a4da8649a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0546c425fb61bbf5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/dashboard/zakat/page.tsx:32"}, "properties": {"repobilityId": "8fe4643511104840", "scanner": "scanner-primary", "fingerprint": "0546c425fb61bbf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3e5d491636a178b", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/dashboard/summary/page.tsx:381"}, "properties": {"repobilityId": "719217f31868e69f", "scanner": "scanner-primary", "fingerprint": "b3e5d491636a178b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2815da6f17337981", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/subscriptions/page.tsx:91"}, "properties": {"repobilityId": "46160cfb39b60a59", "scanner": "scanner-primary", "fingerprint": "2815da6f17337981", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f864b4d957e9c88", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/dashboard/retirement-zakat/page.tsx:57"}, "properties": {"repobilityId": "3df4189bc954c242", "scanner": "scanner-primary", "fingerprint": "1f864b4d957e9c88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5234d8fa2f349960", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/dashboard/cash-flow/page.tsx:119"}, "properties": {"repobilityId": "f4b1f59c2d4b6328", "scanner": "scanner-primary", "fingerprint": "5234d8fa2f349960", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-721a5f9a60bd9582", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/dashboard/debts/page.tsx:657"}, "properties": {"repobilityId": "7d79002e51f9b2af", "scanner": "scanner-primary", "fingerprint": "721a5f9a60bd9582", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3d9ab537e89a7d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/signup/page.tsx:13"}, "properties": {"repobilityId": "df13cfcd7bfba565", "scanner": "scanner-primary", "fingerprint": "b3d9ab537e89a7d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9ad28e09e30f63a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/plaid/oauth/page.tsx:28"}, "properties": {"repobilityId": "15ca4117d897d663", "scanner": "scanner-primary", "fingerprint": "c9ad28e09e30f63a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a389d68158f21355", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/fiqh-terms/page.tsx:6"}, "properties": {"repobilityId": "2197aa1883e5868f", "scanner": "scanner-primary", "fingerprint": "a389d68158f21355", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87288d26fb692a5d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/onboarding/locale-confirm/page.tsx:2"}, "properties": {"repobilityId": "34dd565de9e29062", "scanner": "scanner-primary", "fingerprint": "87288d26fb692a5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bdc5e32c9f61d70", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/trust/page.tsx:13"}, "properties": {"repobilityId": "e895f37982fb0b86", "scanner": "scanner-primary", "fingerprint": "6bdc5e32c9f61d70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da019dae15faf1c4", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/trust/TrustPageClient.tsx:6"}, "properties": {"repobilityId": "0f081bb9af62048f", "scanner": "scanner-primary", "fingerprint": "da019dae15faf1c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9069ed76e5547492", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/halal-stocks/page.tsx:6"}, "properties": {"repobilityId": "361cfea9d9282a3f", "scanner": "scanner-primary", "fingerprint": "9069ed76e5547492", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-675d4d851ed5839f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/family/join/page.tsx:40"}, "properties": {"repobilityId": "d2d6e012a18af370", "scanner": "scanner-primary", "fingerprint": "675d4d851ed5839f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-227df4589515feeb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/setup/page.tsx:95"}, "properties": {"repobilityId": "36ae24d2512f7e41", "scanner": "scanner-primary", "fingerprint": "227df4589515feeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3244d80f33fb53ad", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/app/sso/confirm-link/page.tsx:32"}, "properties": {"repobilityId": "a79ba4122221330c", "scanner": "scanner-primary", "fingerprint": "3244d80f33fb53ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46e72b8c0ed92c92", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/pricing/PricingToggle.tsx:8"}, "properties": {"repobilityId": "8aa6e3a946141700", "scanner": "scanner-primary", "fingerprint": "46e72b8c0ed92c92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ae847b64706fef3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/pricing/page.tsx:62"}, "properties": {"repobilityId": "6189680b9ec6f96f", "scanner": "scanner-primary", "fingerprint": "2ae847b64706fef3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c32cdb8a1f8a34b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/methodology/page.tsx:4"}, "properties": {"repobilityId": "5d184b1bfca38cb5", "scanner": "scanner-primary", "fingerprint": "8c32cdb8a1f8a34b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b58e1cf0fe5d7d45", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/methodology/MethodologyClient.tsx:6"}, "properties": {"repobilityId": "97effab6f340b6fd", "scanner": "scanner-primary", "fingerprint": "b58e1cf0fe5d7d45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0324fabbfa24fd6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/seo/indexnow/route.ts:41"}, "properties": {"repobilityId": "64d46c51c35c5b41", "scanner": "scanner-primary", "fingerprint": "0324fabbfa24fd6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0465f2cd7a63410", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/seo/indexnow/route.ts:84"}, "properties": {"repobilityId": "9930834fc91d2f28", "scanner": "scanner-primary", "fingerprint": "a0465f2cd7a63410", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5c1d9b7fff1fe7fd", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/zakat-calculator/Calculator.tsx:141"}, "properties": {"repobilityId": "ee2c7261799ae294", "scanner": "scanner-primary", "fingerprint": "5c1d9b7fff1fe7fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd5ee31ac3a3a30e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/api.ts:24"}, "properties": {"repobilityId": "420eb1beef879886", "scanner": "scanner-primary", "fingerprint": "bd5ee31ac3a3a30e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52c9b43c7785bcd9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/api.ts:754"}, "properties": {"repobilityId": "2c4f271f9914068c", "scanner": "scanner-primary", "fingerprint": "52c9b43c7785bcd9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a18ad71b3ac8ddaa", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/useDarkMode.ts:5"}, "properties": {"repobilityId": "aea2065bbf04bc1c", "scanner": "scanner-primary", "fingerprint": "a18ad71b3ac8ddaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4c5850d318aa52a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/useLocalizedPrice.ts:112"}, "properties": {"repobilityId": "ff039d0bfd445199", "scanner": "scanner-primary", "fingerprint": "f4c5850d318aa52a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82d2f83817e401ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/analytics.ts:163"}, "properties": {"repobilityId": "30611391c85cbd94", "scanner": "scanner-primary", "fingerprint": "82d2f83817e401ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25c140ac5f2bfcaf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/schemas.ts:155"}, "properties": {"repobilityId": "a9996e0891ae24d7", "scanner": "scanner-primary", "fingerprint": "25c140ac5f2bfcaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7c8ff945bcdc828", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/trial.ts:5"}, "properties": {"repobilityId": "aca6ba7eb91c5b9c", "scanner": "scanner-primary", "fingerprint": "e7c8ff945bcdc828", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abb2f60d849e9f1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/scrubUrlToken.ts:47"}, "properties": {"repobilityId": "6684dfe1003933be", "scanner": "scanner-primary", "fingerprint": "abb2f60d849e9f1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-078b1d6e7a78ebbf", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/useCurrency.ts:61"}, "properties": {"repobilityId": "3dc12128763ed383", "scanner": "scanner-primary", "fingerprint": "078b1d6e7a78ebbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f643b75d711e0ec8", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/lib/pricing.ts:9"}, "properties": {"repobilityId": "13cdd22f94ce69e9", "scanner": "scanner-primary", "fingerprint": "f643b75d711e0ec8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67f7ab02b27d8a2c", "level": "note", "message": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in src/lib/setup.ts:1"}, "properties": {"repobilityId": "5b07a60516b2983c", "scanner": "scanner-primary", "fingerprint": "67f7ab02b27d8a2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-daf82e9ddc371ef8", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/i18n/index.ts:133"}, "properties": {"repobilityId": "d1cc9d8637f6c0ae", "scanner": "scanner-primary", "fingerprint": "daf82e9ddc371ef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c587aba974777f0", "level": "note", "message": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/fr.ts:1761"}, "properties": {"repobilityId": "a3236a13d695129a", "scanner": "scanner-primary", "fingerprint": "5c587aba974777f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fd9313ef97195e6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/i18n/dictionaries/fr.ts:4129"}, "properties": {"repobilityId": "c8dd7d161cb60d14", "scanner": "scanner-primary", "fingerprint": "fd9313ef97195e6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19d2b8d6f9d8f3c0", "level": "note", "message": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/ur.ts:1761"}, "properties": {"repobilityId": "fbe3e526e91578a9", "scanner": "scanner-primary", "fingerprint": "19d2b8d6f9d8f3c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cd43ba738265c6c4", "level": "note", "message": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/en.ts:1815"}, "properties": {"repobilityId": "8005699b2f0ac0e0", "scanner": "scanner-primary", "fingerprint": "cd43ba738265c6c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1ced53a8a60c9322", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/i18n/dictionaries/en.ts:7"}, "properties": {"repobilityId": "3eeb86d4dd06c74d", "scanner": "scanner-primary", "fingerprint": "1ced53a8a60c9322", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-def259186e5b6bdf", "level": "note", "message": {"text": "Legacy-named symbol `profPwSameAsOld` in src/lib/i18n/dictionaries/ar.ts:1761"}, "properties": {"repobilityId": "9e2e865b1ec94997", "scanner": "scanner-primary", "fingerprint": "def259186e5b6bdf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a6a87dc7ad5613e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/legacy/homepage-pre-v20-2026-04-30.tsx:93"}, "properties": {"repobilityId": "704645baca2cb885", "scanner": "scanner-primary", "fingerprint": "a6a87dc7ad5613e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab4e13d9c26cfc19", "level": "note", "message": {"text": "Legacy-named symbol `paywall_v2` in src/context/FeatureFlagsContext.tsx:118"}, "properties": {"repobilityId": "f1c5fc0b9b76449f", "scanner": "scanner-primary", "fingerprint": "ab4e13d9c26cfc19", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c6cda862f1df1c14", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/context/FeatureFlagsContext.tsx:92"}, "properties": {"repobilityId": "3c2bf8281aae1b8e", "scanner": "scanner-primary", "fingerprint": "c6cda862f1df1c14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca24365faf302553", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/context/AuthContext.tsx:11"}, "properties": {"repobilityId": "75b9e0dcb7b396ff", "scanner": "scanner-primary", "fingerprint": "ca24365faf302553", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a73204f1252c1aa4", "level": "note", "message": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/browser-authenticated.spec.ts:31"}, "properties": {"repobilityId": "82a78256c0a8425a", "scanner": "scanner-primary", "fingerprint": "a73204f1252c1aa4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-92b3e1e4361f27b2", "level": "none", "message": {"text": "Commented-code block (10 lines) in e2e/browser-authenticated.spec.ts:27"}, "properties": {"repobilityId": "a737d55973b4f336", "scanner": "scanner-primary", "fingerprint": "92b3e1e4361f27b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-084fc639cf8aa0d1", "level": "none", "message": {"text": "Commented-code block (9 lines) in e2e/authenticated.spec.ts:20"}, "properties": {"repobilityId": "2d4eef1e9da07b44", "scanner": "scanner-primary", "fingerprint": "084fc639cf8aa0d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f416f1d7488fc9d", "level": "note", "message": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/persona-walk.spec.ts:127"}, "properties": {"repobilityId": "52aaa75985985840", "scanner": "scanner-primary", "fingerprint": "7f416f1d7488fc9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b96dd045771f3707", "level": "none", "message": {"text": "Commented-code block (11 lines) in e2e/persona-walk.spec.ts:55"}, "properties": {"repobilityId": "ef2a8c878a2757d8", "scanner": "scanner-primary", "fingerprint": "b96dd045771f3707", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b726967f28cfaacf", "level": "note", "message": {"text": "Legacy-named symbol `barakah_guided_setup_v1` in e2e/trust-critical.spec.ts:65"}, "properties": {"repobilityId": "d0a5f51a6fe36cf4", "scanner": "scanner-primary", "fingerprint": "b726967f28cfaacf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5a040c0071c08dcf", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/trust-critical.spec.ts:50"}, "properties": {"repobilityId": "11a52a172d47890a", "scanner": "scanner-primary", "fingerprint": "5a040c0071c08dcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9067e8972b8aa4d", "level": "error", "message": {"text": "Dangling fetch: POST https://sandbox.plaid.com/sandbox/public_token/create (scripts/link-sandbox-bank.mjs:107)"}, "properties": {"repobilityId": "d11f3478659c13e8", "scanner": "scanner-primary", "fingerprint": "a9067e8972b8aa4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e3e28aa98e9af44", "level": "error", "message": {"text": "Dangling fetch: POST /email-capture (src/components/RamadanEmailCapture.tsx:43)"}, "properties": {"repobilityId": "9f468933c4db0c95", "scanner": "scanner-primary", "fingerprint": "5e3e28aa98e9af44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc5ada8bb57467eb", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/audiences/${encodeURIComponent(audienceId)}/contacts (src/app/email-capture/route.ts:260)"}, "properties": {"repobilityId": "2c870fd0aca697ec", "scanner": "scanner-primary", "fingerprint": "cc5ada8bb57467eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c89c1d30ad1f65e3", "level": "error", "message": {"text": "Dangling fetch: GET /api/zakat/info (src/app/zakat-calculator/Calculator.tsx:112)"}, "properties": {"repobilityId": "014573217f62cbfb", "scanner": "scanner-primary", "fingerprint": "c89c1d30ad1f65e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fef2fdc94165f30d", "level": "error", "message": {"text": "Dangling fetch: POST /api/careers/apply (src/lib/careers.ts:73)"}, "properties": {"repobilityId": "87d28b5fc18ca5ac", "scanner": "scanner-primary", "fingerprint": "fef2fdc94165f30d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8fdbacfe9430a6ed", "level": "note", "message": {"text": "Unused endpoint: POST /auth/login"}, "properties": {"repobilityId": "0c3ddf48ab04cf1e", "scanner": "scanner-primary", "fingerprint": "8fdbacfe9430a6ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}