{"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-9c969d835fe8b8fa", "name": "Stray `console.log` in TS/JS \u2014 api/is/liste.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/is/liste.js:22"}, "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-aa86229fd82ddf23", "name": "Icon-only button without accessible name \u2014 src/ServisCaldir.jsx:85", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/ServisCaldir.jsx:85"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd0069422565c470", "name": "Icon-only button without accessible name \u2014 src/ServisEkrani.jsx:118", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/ServisEkrani.jsx:118"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-444a819a0e531be7", "name": "Icon-only button without accessible name \u2014 src/DPPEkrani.jsx:693", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/DPPEkrani.jsx:693"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54e4254bd7f675b4", "name": "TODO/FIXME marker in shipping code \u2014 src/DPPEkrani.jsx:7", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/DPPEkrani.jsx:7"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e2d3be4bfc96537", "name": "Insecure pattern 'cors_wildcard' in api/_verimor.js:54", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/_verimor.js:54"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a19ff1c92da2ffc", "name": "Insecure pattern 'cors_wildcard' in api/_twilio.js:34", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/_twilio.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3d325276b63c029", "name": "Insecure pattern 'cors_wildcard' in api/servis/basvuru.js:8", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/servis/basvuru.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95b955f897803936", "name": "Insecure pattern 'cors_wildcard' in api/servis/liste.js:8", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/servis/liste.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc018f711ca0c2e4", "name": "Insecure pattern 'cors_wildcard' in api/odeme/form.js:27", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/odeme/form.js:27"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6d4a3d505dade13", "name": "Insecure pattern 'cors_wildcard' in api/admin/servis-basvurulari.js:13", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/admin/servis-basvurulari.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-576594869e650bd8", "name": "Insecure pattern 'cors_wildcard' in api/admin/odemeler.js:26", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/admin/odemeler.js:26"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ab5428b91cde913", "name": "Insecure pattern 'cors_wildcard' in api/dpp/og.js:57", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/dpp/og.js:57"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55df44cd2f64ed48", "name": "Insecure pattern 'cors_wildcard' in api/dpp/cihaz.js:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/dpp/cihaz.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6208cf4a17eac969", "name": "Insecure pattern 'cors_wildcard' in api/dpp/tamir.js:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/dpp/tamir.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-43adba2f4b78e9cc", "name": "Insecure pattern 'cors_wildcard' in api/talep/yeni.js:19", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/talep/yeni.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9965824e7231296", "name": "Insecure pattern 'cors_wildcard' in api/talep/alici/[token].js:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/talep/alici/[token].js:18"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58ad442b559f2856", "name": "Insecure pattern 'cors_wildcard' in api/talep/satici/[token].js:19", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/talep/satici/[token].js:19"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17cfb3e0659d996a", "name": "Insecure pattern 'cors_wildcard' in api/ilan/og.js:12", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/og.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3df34a49da71821a", "name": "Insecure pattern 'cors_wildcard' in api/ilan/yeni.js:19", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/yeni.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b05ffcb7a46055d", "name": "Insecure pattern 'cors_wildcard' in api/ilan/liste.js:7", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/liste.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-438a00f0ea09b12a", "name": "Insecure pattern 'cors_wildcard' in api/ilan/[id].js:7", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/[id].js:7"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1860d47752c3b380", "name": "Very large file: src/ServisPanel.jsx (1083 lines)", "shortDescription": {"text": "Very large file: src/ServisPanel.jsx (1083 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": "1 test file(s) for 63 source file(s) (ratio 0.02). 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 10 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 54 placeholder/mock markers across 13 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "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-429831b7dfd497eb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/_verimor.js:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/_verimor.js:36"}, "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-8f3ff62862bef18f", "name": "Commented-code block (7 lines) in api/siparis.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in api/siparis.js: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-b086dccbcb33d684", "name": "Commented-code block (5 lines) in api/admin/panel-kurulum.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in api/admin/panel-kurulum.js: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-7c27fba6997f35e4", "name": "Commented-code block (5 lines) in api/dpp/og.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in api/dpp/og.js: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-7187ac0d4a9e6fbe", "name": "Commented-code block (5 lines) in api/talep/satici/[token].js:1", "shortDescription": {"text": "Commented-code block (5 lines) in api/talep/satici/[token].js: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-1a198180b3c0b9c8", "name": "Commented-code block (5 lines) in api/is/yeni.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in api/is/yeni.js: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-5f14892784da5a63", "name": "Commented-code block (5 lines) in api/is/havuz.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in api/is/havuz.js: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-4bdec3cca0e5ca39", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisPanel.jsx:716", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisPanel.jsx:716"}, "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-1fbca5020a30a532", "name": "Commented-code block (7 lines) in src/ServisCaldir.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/ServisCaldir.jsx: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-92cc9cb97f3dc6d6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisCaldir.jsx:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisCaldir.jsx:59"}, "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-7dca9ed842d99781", "name": "Commented-code block (5 lines) in src/LandingPage.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/LandingPage.jsx: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-a0636979fd6586e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisEkrani.jsx:269", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisEkrani.jsx:269"}, "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-4772c5a98fcae3a1", "name": "Commented-code block (5 lines) in src/Sepet.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/Sepet.jsx: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-76cc77b3f5be8d64", "name": "Commented-code block (7 lines) in src/IkinciElApp.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/IkinciElApp.jsx: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-cc831c68ca594618", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/DPPEkrani.jsx:236", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/DPPEkrani.jsx:236"}, "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-b1fde27826910670", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisMagaza.jsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisMagaza.jsx:128"}, "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-b635ad54499429d5", "name": "Commented-code block (5 lines) in src/BenservisRozet.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/BenservisRozet.jsx: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-e250db9151fb1e31", "name": "Commented-code block (5 lines) in src/tr-iller.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/tr-iller.js: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}}]}}, "automationDetails": {"id": "repobility/21439"}, "properties": {"repository": "tolgaildaser-cloud/benservis", "repoUrl": "https://github.com/tolgaildaser-cloud/benservis", "branch": "main"}, "results": [{"ruleId": "scanner-9c969d835fe8b8fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/is/liste.js:22"}, "properties": {"repobilityId": "b9225b91ada682f7", "scanner": "scanner-primary", "fingerprint": "9c969d835fe8b8fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa86229fd82ddf23", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/ServisCaldir.jsx:85"}, "properties": {"repobilityId": "80219bf88272ced3", "scanner": "scanner-primary", "fingerprint": "aa86229fd82ddf23", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-bd0069422565c470", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/ServisEkrani.jsx:118"}, "properties": {"repobilityId": "33db16d2a0cc1082", "scanner": "scanner-primary", "fingerprint": "bd0069422565c470", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-444a819a0e531be7", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/DPPEkrani.jsx:693"}, "properties": {"repobilityId": "7c2c9806ca112518", "scanner": "scanner-primary", "fingerprint": "444a819a0e531be7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-54e4254bd7f675b4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/DPPEkrani.jsx:7"}, "properties": {"repobilityId": "8c041a5f9cd40a5e", "scanner": "scanner-primary", "fingerprint": "54e4254bd7f675b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0e2d3be4bfc96537", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/_verimor.js:54"}, "properties": {"repobilityId": "cfadb5aa2dd637a5", "scanner": "scanner-primary", "fingerprint": "0e2d3be4bfc96537", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/_verimor.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-7a19ff1c92da2ffc", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/_twilio.js:34"}, "properties": {"repobilityId": "b078533e207ad001", "scanner": "scanner-primary", "fingerprint": "7a19ff1c92da2ffc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/_twilio.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-e3d325276b63c029", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/servis/basvuru.js:8"}, "properties": {"repobilityId": "6241e93a0b47770e", "scanner": "scanner-primary", "fingerprint": "e3d325276b63c029", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/servis/basvuru.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-95b955f897803936", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/servis/liste.js:8"}, "properties": {"repobilityId": "becf15ac2047e1cc", "scanner": "scanner-primary", "fingerprint": "95b955f897803936", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/servis/liste.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-dc018f711ca0c2e4", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/odeme/form.js:27"}, "properties": {"repobilityId": "9b81a0dfe842fcec", "scanner": "scanner-primary", "fingerprint": "dc018f711ca0c2e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/odeme/form.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-c6d4a3d505dade13", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/admin/servis-basvurulari.js:13"}, "properties": {"repobilityId": "f72ed97348d3f537", "scanner": "scanner-primary", "fingerprint": "c6d4a3d505dade13", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/admin/servis-basvurulari.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-576594869e650bd8", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/admin/odemeler.js:26"}, "properties": {"repobilityId": "e9bb464a64d53bf1", "scanner": "scanner-primary", "fingerprint": "576594869e650bd8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/admin/odemeler.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-3ab5428b91cde913", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/dpp/og.js:57"}, "properties": {"repobilityId": "77305d8bd75a883d", "scanner": "scanner-primary", "fingerprint": "3ab5428b91cde913", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/dpp/og.js"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-55df44cd2f64ed48", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/dpp/cihaz.js:5"}, "properties": {"repobilityId": "a0353b929ee74ee6", "scanner": "scanner-primary", "fingerprint": "55df44cd2f64ed48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/dpp/cihaz.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-6208cf4a17eac969", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/dpp/tamir.js:5"}, "properties": {"repobilityId": "d57d31a2899b50bc", "scanner": "scanner-primary", "fingerprint": "6208cf4a17eac969", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/dpp/tamir.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-43adba2f4b78e9cc", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/talep/yeni.js:19"}, "properties": {"repobilityId": "19ec07e8c0fa477e", "scanner": "scanner-primary", "fingerprint": "43adba2f4b78e9cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/talep/yeni.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-b9965824e7231296", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/talep/alici/[token].js:18"}, "properties": {"repobilityId": "d089633beb160c33", "scanner": "scanner-primary", "fingerprint": "b9965824e7231296", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/talep/alici/[token].js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-58ad442b559f2856", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/talep/satici/[token].js:19"}, "properties": {"repobilityId": "bc09dc8a3fc5b71e", "scanner": "scanner-primary", "fingerprint": "58ad442b559f2856", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/talep/satici/[token].js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-17cfb3e0659d996a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/og.js:12"}, "properties": {"repobilityId": "9651642bd61603d8", "scanner": "scanner-primary", "fingerprint": "17cfb3e0659d996a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/ilan/og.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-3df34a49da71821a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/yeni.js:19"}, "properties": {"repobilityId": "ff3129e5cb893308", "scanner": "scanner-primary", "fingerprint": "3df34a49da71821a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/ilan/yeni.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-1b05ffcb7a46055d", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/liste.js:7"}, "properties": {"repobilityId": "e167a032008ed2d0", "scanner": "scanner-primary", "fingerprint": "1b05ffcb7a46055d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/ilan/liste.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-438a00f0ea09b12a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/ilan/[id].js:7"}, "properties": {"repobilityId": "4732a296998a4404", "scanner": "scanner-primary", "fingerprint": "438a00f0ea09b12a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/ilan/[id].js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-1860d47752c3b380", "level": "note", "message": {"text": "Very large file: src/ServisPanel.jsx (1083 lines)"}, "properties": {"repobilityId": "f9771acf802a3c4a", "scanner": "scanner-primary", "fingerprint": "1860d47752c3b380", "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": "ebfb6c607df2b0c7", "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": "6685ba40d843d83c", "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": "ad24d6e1106a5bea", "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": "188245f418c9860d", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "e74ca96383fd40bc", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "0746a79be191c615", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "4c590ec0d38455f5", "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": "8903b3ea62286d6a", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-429831b7dfd497eb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/_verimor.js:36"}, "properties": {"repobilityId": "f5a002eec3cc5572", "scanner": "scanner-primary", "fingerprint": "429831b7dfd497eb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8f3ff62862bef18f", "level": "none", "message": {"text": "Commented-code block (7 lines) in api/siparis.js:1"}, "properties": {"repobilityId": "c016bdc651d63f5c", "scanner": "scanner-primary", "fingerprint": "8f3ff62862bef18f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b086dccbcb33d684", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/admin/panel-kurulum.js:1"}, "properties": {"repobilityId": "8ed0ae73768e731d", "scanner": "scanner-primary", "fingerprint": "b086dccbcb33d684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c27fba6997f35e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/dpp/og.js:1"}, "properties": {"repobilityId": "eb18f3052fa9e545", "scanner": "scanner-primary", "fingerprint": "7c27fba6997f35e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7187ac0d4a9e6fbe", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/talep/satici/[token].js:1"}, "properties": {"repobilityId": "494bafaa553945a7", "scanner": "scanner-primary", "fingerprint": "7187ac0d4a9e6fbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a198180b3c0b9c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/is/yeni.js:1"}, "properties": {"repobilityId": "8c61a00e51b00edf", "scanner": "scanner-primary", "fingerprint": "1a198180b3c0b9c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f14892784da5a63", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/is/havuz.js:1"}, "properties": {"repobilityId": "73cb67d9785b3797", "scanner": "scanner-primary", "fingerprint": "5f14892784da5a63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bdec3cca0e5ca39", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisPanel.jsx:716"}, "properties": {"repobilityId": "c13c417ba16a48d0", "scanner": "scanner-primary", "fingerprint": "4bdec3cca0e5ca39", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1fbca5020a30a532", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/ServisCaldir.jsx:1"}, "properties": {"repobilityId": "4ce1b6ed91199cc6", "scanner": "scanner-primary", "fingerprint": "1fbca5020a30a532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92cc9cb97f3dc6d6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisCaldir.jsx:59"}, "properties": {"repobilityId": "da8e548187453f01", "scanner": "scanner-primary", "fingerprint": "92cc9cb97f3dc6d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7dca9ed842d99781", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/LandingPage.jsx:1"}, "properties": {"repobilityId": "84eff8e6ca76c433", "scanner": "scanner-primary", "fingerprint": "7dca9ed842d99781", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0636979fd6586e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisEkrani.jsx:269"}, "properties": {"repobilityId": "faa5cda0402e7b78", "scanner": "scanner-primary", "fingerprint": "a0636979fd6586e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4772c5a98fcae3a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Sepet.jsx:1"}, "properties": {"repobilityId": "9bfb6ff23c11096e", "scanner": "scanner-primary", "fingerprint": "4772c5a98fcae3a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76cc77b3f5be8d64", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/IkinciElApp.jsx:1"}, "properties": {"repobilityId": "6651d1a04e88bb19", "scanner": "scanner-primary", "fingerprint": "76cc77b3f5be8d64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc831c68ca594618", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/DPPEkrani.jsx:236"}, "properties": {"repobilityId": "6bfd5884b314eb6e", "scanner": "scanner-primary", "fingerprint": "cc831c68ca594618", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b1fde27826910670", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ServisMagaza.jsx:128"}, "properties": {"repobilityId": "583becddfb5126dd", "scanner": "scanner-primary", "fingerprint": "b1fde27826910670", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b635ad54499429d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/BenservisRozet.jsx:1"}, "properties": {"repobilityId": "67a259f3d8eca0a2", "scanner": "scanner-primary", "fingerprint": "b635ad54499429d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e250db9151fb1e31", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/tr-iller.js:1"}, "properties": {"repobilityId": "e9a3140db8cf9a81", "scanner": "scanner-primary", "fingerprint": "e250db9151fb1e31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}