{"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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9b6f52d5cb57608", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/loadmore.js:113", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/loadmore.js:113"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-395cf9fe327403da", "name": "Insecure pattern 'domparser_html_parse' in luwipress-amber/assets/js/loadmore.js:97", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-amber/assets/js/loadmore.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-128f0289ae996edc", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/hero-search.js:41", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/hero-search.js:41"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-69ff0b854d8fdba7", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/frontend.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/frontend.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fc75ad2aea005e3", "name": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-amber/assets/js/frontend.js:859", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-amber/assets/js/frontend.js:859"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-48350c49e19c6ad4", "name": "Insecure pattern 'domparser_html_parse' in luwipress-amber/assets/js/frontend.js:1474", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-amber/assets/js/frontend.js:1474"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87b25ee023e49b4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/ai-surface.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/ai-surface.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4f2e56bc3034bc84", "name": "Insecure pattern 'insert_adjacent_html' in luwipress-amber/assets/js/ai-surface.js:101", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-amber/assets/js/ai-surface.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ed6e79c9285b93e", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/booking.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/booking.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36e036aad9be08be", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/sapphire.js:243", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/sapphire.js:243"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1084531f3850b62d", "name": "Insecure pattern 'insert_adjacent_html' in luwipress-sapphire/assets/js/sapphire.js:374", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-sapphire/assets/js/sapphire.js:374"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3d82c358e9c2c38", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/loadmore.js:113", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/loadmore.js:113"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc22c148b24ae0ce", "name": "Insecure pattern 'domparser_html_parse' in luwipress-sapphire/assets/js/loadmore.js:97", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-sapphire/assets/js/loadmore.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ddf1f91754ebba39", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/frontend.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/frontend.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1870b5144df6d6ab", "name": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-sapphire/assets/js/frontend.js:859", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-sapphire/assets/js/frontend.js:859"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2ce4feb0bccdc29", "name": "Insecure pattern 'domparser_html_parse' in luwipress-sapphire/assets/js/frontend.js:1466", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-sapphire/assets/js/frontend.js:1466"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa023c738f59eed0", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/ai-surface.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/ai-surface.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb82fa44fd5a850c", "name": "Insecure pattern 'insert_adjacent_html' in luwipress-sapphire/assets/js/ai-surface.js:95", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-sapphire/assets/js/ai-surface.js:95"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a79221fd6332bae2", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/loadmore.js:113", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/loadmore.js:113"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c7783baddd67e09b", "name": "Insecure pattern 'domparser_html_parse' in luwipress-gold/assets/js/loadmore.js:97", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-gold/assets/js/loadmore.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd88cc6f8cc47bd4", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/frontend.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/frontend.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c01b712c5e50964", "name": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-gold/assets/js/frontend.js:859", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-gold/assets/js/frontend.js:859"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91efd4640ff625b5", "name": "Insecure pattern 'domparser_html_parse' in luwipress-gold/assets/js/frontend.js:1466", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-gold/assets/js/frontend.js:1466"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-319adb6fd55c3794", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/ai-surface.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/ai-surface.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-397788068e161eb9", "name": "Insecure pattern 'insert_adjacent_html' in luwipress-gold/assets/js/ai-surface.js:95", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-gold/assets/js/ai-surface.js:95"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d946da8e2aa22571", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/loadmore.js:113", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/loadmore.js:113"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72aa416c6c1c9119", "name": "Insecure pattern 'domparser_html_parse' in luwipress-onyx/assets/js/loadmore.js:97", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-onyx/assets/js/loadmore.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f30bc21c6079ec1", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/onyx.js:243", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/onyx.js:243"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b45b8627d879e5eb", "name": "Insecure pattern 'insert_adjacent_html' in luwipress-onyx/assets/js/onyx.js:374", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-onyx/assets/js/onyx.js:374"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d6efdc04321f0335", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/ai-surface.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/ai-surface.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4492052b996ad060", "name": "Insecure pattern 'insert_adjacent_html' in luwipress-onyx/assets/js/ai-surface.js:95", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-onyx/assets/js/ai-surface.js:95"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2069cd7cfd8eecc", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-emerald/assets/js/loadmore.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-emerald/assets/js/loadmore.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09da8bf9cc0cdece", "name": "Insecure pattern 'domparser_html_parse' in luwipress-emerald/assets/js/loadmore.js:98", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-emerald/assets/js/loadmore.js:98"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-767874273e6c2e6a", "name": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-emerald/assets/js/ai-surface.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-emerald/assets/js/ai-surface.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-264054c63af7baad", "name": "Insecure pattern 'insert_adjacent_html' in luwipress-emerald/assets/js/ai-surface.js:95", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-emerald/assets/js/ai-surface.js:95"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "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-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abed16fc4e3a0679", "name": "Very large file: luwipress-amber/assets/js/frontend.js (1532 lines)", "shortDescription": {"text": "Very large file: luwipress-amber/assets/js/frontend.js (1532 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-14c0639d20bb9d36", "name": "Very large file: luwipress-sapphire/assets/js/frontend.js (1524 lines)", "shortDescription": {"text": "Very large file: luwipress-sapphire/assets/js/frontend.js (1524 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-55e22fa3f9037bac", "name": "Very large file: luwipress-gold/assets/js/frontend.js (1524 lines)", "shortDescription": {"text": "Very large file: luwipress-gold/assets/js/frontend.js (1524 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": "0 test file(s) for 40 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 439 placeholder/mock markers across 176 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-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "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-6ac353f0bb89d97f", "name": "Commented-code block (9 lines) in luwipress-amber/assets/js/pdp-gallery.js:147", "shortDescription": {"text": "Commented-code block (9 lines) in luwipress-amber/assets/js/pdp-gallery.js:147"}, "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-18187d8f7f26fb4c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-amber/assets/js/loadmore.js:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-amber/assets/js/loadmore.js:91"}, "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-da12d20ebf28baaf", "name": "Commented-code block (5 lines) in luwipress-amber/assets/js/frontend.js:27", "shortDescription": {"text": "Commented-code block (5 lines) in luwipress-amber/assets/js/frontend.js: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-90a1f38221309b74", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-amber/assets/js/frontend.js:1159", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-amber/assets/js/frontend.js:1159"}, "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-33b36c89df3fa1bc", "name": "Commented-code block (6 lines) in luwipress-amber/assets/js/ai-surface.js:49", "shortDescription": {"text": "Commented-code block (6 lines) in luwipress-amber/assets/js/ai-surface.js:49"}, "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-dacaec628afcd8fd", "name": "Commented-code block (9 lines) in luwipress-sapphire/assets/js/pdp-gallery.js:147", "shortDescription": {"text": "Commented-code block (9 lines) in luwipress-sapphire/assets/js/pdp-gallery.js:147"}, "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-9ee9a0ce2e4c4f9e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-sapphire/assets/js/loadmore.js:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-sapphire/assets/js/loadmore.js:91"}, "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-15b9e82264c6787f", "name": "Commented-code block (5 lines) in luwipress-sapphire/assets/js/frontend.js:27", "shortDescription": {"text": "Commented-code block (5 lines) in luwipress-sapphire/assets/js/frontend.js: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-75c927859b74637a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-sapphire/assets/js/frontend.js:1151", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-sapphire/assets/js/frontend.js:1151"}, "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-4a0872611ec6d5e5", "name": "Commented-code block (9 lines) in luwipress-gold/assets/js/pdp-gallery.js:147", "shortDescription": {"text": "Commented-code block (9 lines) in luwipress-gold/assets/js/pdp-gallery.js:147"}, "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-31a7aca0a446a0aa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-gold/assets/js/loadmore.js:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-gold/assets/js/loadmore.js:91"}, "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-1c4f353b7203c661", "name": "Commented-code block (5 lines) in luwipress-gold/assets/js/frontend.js:27", "shortDescription": {"text": "Commented-code block (5 lines) in luwipress-gold/assets/js/frontend.js: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-48e9e59d1c1bdb62", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-gold/assets/js/frontend.js:1151", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-gold/assets/js/frontend.js:1151"}, "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-272532794e367fac", "name": "Commented-code block (9 lines) in luwipress-onyx/assets/js/pdp-gallery.js:147", "shortDescription": {"text": "Commented-code block (9 lines) in luwipress-onyx/assets/js/pdp-gallery.js:147"}, "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-6ce5dc416ebc74d1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-onyx/assets/js/loadmore.js:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-onyx/assets/js/loadmore.js:91"}, "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-ccc0184a7758362f", "name": "Commented-code block (9 lines) in luwipress-emerald/assets/js/pdp-gallery.js:147", "shortDescription": {"text": "Commented-code block (9 lines) in luwipress-emerald/assets/js/pdp-gallery.js:147"}, "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-990a1bcaa6909979", "name": "Commented-code block (7 lines) in luwipress-emerald/assets/js/loadmore.js:67", "shortDescription": {"text": "Commented-code block (7 lines) in luwipress-emerald/assets/js/loadmore.js:67"}, "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-8ea6bb99a3e1c88f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-emerald/assets/js/loadmore.js:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-emerald/assets/js/loadmore.js:92"}, "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-e0f84855e3d459a0", "name": "Commented-code block (5 lines) in luwipress-emerald/assets/js/frontend.js:120", "shortDescription": {"text": "Commented-code block (5 lines) in luwipress-emerald/assets/js/frontend.js:120"}, "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/21877"}, "properties": {"repository": "umutsun/luwi-themes", "repoUrl": "https://github.com/umutsun/luwi-themes", "branch": "main"}, "results": [{"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-d9b6f52d5cb57608", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/loadmore.js:113"}, "properties": {"repobilityId": "74f8fe2364f28646", "scanner": "scanner-primary", "fingerprint": "d9b6f52d5cb57608", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/loadmore.js"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-395cf9fe327403da", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-amber/assets/js/loadmore.js:97"}, "properties": {"repobilityId": "3e0a310236a6394e", "scanner": "scanner-primary", "fingerprint": "395cf9fe327403da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/loadmore.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-128f0289ae996edc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/hero-search.js:41"}, "properties": {"repobilityId": "06578fe71041c8c3", "scanner": "scanner-primary", "fingerprint": "128f0289ae996edc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/hero-search.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-69ff0b854d8fdba7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/frontend.js:42"}, "properties": {"repobilityId": "b4c33acf0266ed50", "scanner": "scanner-primary", "fingerprint": "69ff0b854d8fdba7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/frontend.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-3fc75ad2aea005e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-amber/assets/js/frontend.js:859"}, "properties": {"repobilityId": "02184c0a947df0ba", "scanner": "scanner-primary", "fingerprint": "3fc75ad2aea005e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/frontend.js"}, "region": {"startLine": 859}}}]}, {"ruleId": "scanner-48350c49e19c6ad4", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-amber/assets/js/frontend.js:1474"}, "properties": {"repobilityId": "4362fcdf14746d25", "scanner": "scanner-primary", "fingerprint": "48350c49e19c6ad4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/frontend.js"}, "region": {"startLine": 1474}}}]}, {"ruleId": "scanner-87b25ee023e49b4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/ai-surface.js:36"}, "properties": {"repobilityId": "39038a3b4981773a", "scanner": "scanner-primary", "fingerprint": "87b25ee023e49b4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/ai-surface.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-4f2e56bc3034bc84", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-amber/assets/js/ai-surface.js:101"}, "properties": {"repobilityId": "46688e5a1aa05a5b", "scanner": "scanner-primary", "fingerprint": "4f2e56bc3034bc84", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/ai-surface.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-0ed6e79c9285b93e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-amber/assets/js/booking.js:115"}, "properties": {"repobilityId": "65336b522d3bdb7c", "scanner": "scanner-primary", "fingerprint": "0ed6e79c9285b93e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-amber/assets/js/booking.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-36e036aad9be08be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/sapphire.js:243"}, "properties": {"repobilityId": "df86d08d3144b4f9", "scanner": "scanner-primary", "fingerprint": "36e036aad9be08be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/sapphire.js"}, "region": {"startLine": 243}}}]}, {"ruleId": "scanner-1084531f3850b62d", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-sapphire/assets/js/sapphire.js:374"}, "properties": {"repobilityId": "766a233aaaee11af", "scanner": "scanner-primary", "fingerprint": "1084531f3850b62d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/sapphire.js"}, "region": {"startLine": 374}}}]}, {"ruleId": "scanner-b3d82c358e9c2c38", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/loadmore.js:113"}, "properties": {"repobilityId": "c4fc9eed7cfac5c8", "scanner": "scanner-primary", "fingerprint": "b3d82c358e9c2c38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/loadmore.js"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-fc22c148b24ae0ce", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-sapphire/assets/js/loadmore.js:97"}, "properties": {"repobilityId": "643cbb3f20580b26", "scanner": "scanner-primary", "fingerprint": "fc22c148b24ae0ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/loadmore.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-ddf1f91754ebba39", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/frontend.js:42"}, "properties": {"repobilityId": "3f7998138e252605", "scanner": "scanner-primary", "fingerprint": "ddf1f91754ebba39", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/frontend.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-1870b5144df6d6ab", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-sapphire/assets/js/frontend.js:859"}, "properties": {"repobilityId": "6c5bcf482c4409c2", "scanner": "scanner-primary", "fingerprint": "1870b5144df6d6ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/frontend.js"}, "region": {"startLine": 859}}}]}, {"ruleId": "scanner-f2ce4feb0bccdc29", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-sapphire/assets/js/frontend.js:1466"}, "properties": {"repobilityId": "c5257cea7fbfd581", "scanner": "scanner-primary", "fingerprint": "f2ce4feb0bccdc29", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/frontend.js"}, "region": {"startLine": 1466}}}]}, {"ruleId": "scanner-fa023c738f59eed0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-sapphire/assets/js/ai-surface.js:36"}, "properties": {"repobilityId": "7a6c6f5238434c8a", "scanner": "scanner-primary", "fingerprint": "fa023c738f59eed0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/ai-surface.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-cb82fa44fd5a850c", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-sapphire/assets/js/ai-surface.js:95"}, "properties": {"repobilityId": "c5d9714aeeaa5e9b", "scanner": "scanner-primary", "fingerprint": "cb82fa44fd5a850c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-sapphire/assets/js/ai-surface.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-a79221fd6332bae2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/loadmore.js:113"}, "properties": {"repobilityId": "558a932667095d90", "scanner": "scanner-primary", "fingerprint": "a79221fd6332bae2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-gold/assets/js/loadmore.js"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-c7783baddd67e09b", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-gold/assets/js/loadmore.js:97"}, "properties": {"repobilityId": "fbd1993491561b55", "scanner": "scanner-primary", "fingerprint": "c7783baddd67e09b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-gold/assets/js/loadmore.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-bd88cc6f8cc47bd4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/frontend.js:42"}, "properties": {"repobilityId": "badf0102f3d987ba", "scanner": "scanner-primary", "fingerprint": "bd88cc6f8cc47bd4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-gold/assets/js/frontend.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-7c01b712c5e50964", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in luwipress-gold/assets/js/frontend.js:859"}, "properties": {"repobilityId": "f1248f97a10e8b96", "scanner": "scanner-primary", "fingerprint": "7c01b712c5e50964", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-gold/assets/js/frontend.js"}, "region": {"startLine": 859}}}]}, {"ruleId": "scanner-91efd4640ff625b5", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-gold/assets/js/frontend.js:1466"}, "properties": {"repobilityId": "e5dfa2bec43ca2b5", "scanner": "scanner-primary", "fingerprint": "91efd4640ff625b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-gold/assets/js/frontend.js"}, "region": {"startLine": 1466}}}]}, {"ruleId": "scanner-319adb6fd55c3794", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-gold/assets/js/ai-surface.js:36"}, "properties": {"repobilityId": "1fac255def515618", "scanner": "scanner-primary", "fingerprint": "319adb6fd55c3794", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-gold/assets/js/ai-surface.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-397788068e161eb9", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-gold/assets/js/ai-surface.js:95"}, "properties": {"repobilityId": "b4794e2b76b1baa7", "scanner": "scanner-primary", "fingerprint": "397788068e161eb9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-gold/assets/js/ai-surface.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-d946da8e2aa22571", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/loadmore.js:113"}, "properties": {"repobilityId": "dfcd26db455fe61b", "scanner": "scanner-primary", "fingerprint": "d946da8e2aa22571", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-onyx/assets/js/loadmore.js"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-72aa416c6c1c9119", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-onyx/assets/js/loadmore.js:97"}, "properties": {"repobilityId": "41d39d08c959e090", "scanner": "scanner-primary", "fingerprint": "72aa416c6c1c9119", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-onyx/assets/js/loadmore.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-9f30bc21c6079ec1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/onyx.js:243"}, "properties": {"repobilityId": "0e7ae65d30517e1c", "scanner": "scanner-primary", "fingerprint": "9f30bc21c6079ec1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-onyx/assets/js/onyx.js"}, "region": {"startLine": 243}}}]}, {"ruleId": "scanner-b45b8627d879e5eb", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-onyx/assets/js/onyx.js:374"}, "properties": {"repobilityId": "97eb0b6f0b554368", "scanner": "scanner-primary", "fingerprint": "b45b8627d879e5eb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-onyx/assets/js/onyx.js"}, "region": {"startLine": 374}}}]}, {"ruleId": "scanner-d6efdc04321f0335", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-onyx/assets/js/ai-surface.js:36"}, "properties": {"repobilityId": "4b9c1c3487f0d52b", "scanner": "scanner-primary", "fingerprint": "d6efdc04321f0335", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-onyx/assets/js/ai-surface.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-4492052b996ad060", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-onyx/assets/js/ai-surface.js:95"}, "properties": {"repobilityId": "7b2ef9ec62876dab", "scanner": "scanner-primary", "fingerprint": "4492052b996ad060", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-onyx/assets/js/ai-surface.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-a2069cd7cfd8eecc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-emerald/assets/js/loadmore.js:115"}, "properties": {"repobilityId": "1acc44362c60aaf4", "scanner": "scanner-primary", "fingerprint": "a2069cd7cfd8eecc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-emerald/assets/js/loadmore.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-09da8bf9cc0cdece", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in luwipress-emerald/assets/js/loadmore.js:98"}, "properties": {"repobilityId": "d6c2641e08ef203b", "scanner": "scanner-primary", "fingerprint": "09da8bf9cc0cdece", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-emerald/assets/js/loadmore.js"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-767874273e6c2e6a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in luwipress-emerald/assets/js/ai-surface.js:36"}, "properties": {"repobilityId": "b58b69dd719969fa", "scanner": "scanner-primary", "fingerprint": "767874273e6c2e6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-emerald/assets/js/ai-surface.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-264054c63af7baad", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in luwipress-emerald/assets/js/ai-surface.js:95"}, "properties": {"repobilityId": "87ee0e0c897d359c", "scanner": "scanner-primary", "fingerprint": "264054c63af7baad", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "luwipress-emerald/assets/js/ai-surface.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-abed16fc4e3a0679", "level": "note", "message": {"text": "Very large file: luwipress-amber/assets/js/frontend.js (1532 lines)"}, "properties": {"repobilityId": "43aed2797c2a89bb", "scanner": "scanner-primary", "fingerprint": "abed16fc4e3a0679", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-14c0639d20bb9d36", "level": "note", "message": {"text": "Very large file: luwipress-sapphire/assets/js/frontend.js (1524 lines)"}, "properties": {"repobilityId": "dabe28dfe9a1a7fb", "scanner": "scanner-primary", "fingerprint": "14c0639d20bb9d36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-55e22fa3f9037bac", "level": "note", "message": {"text": "Very large file: luwipress-gold/assets/js/frontend.js (1524 lines)"}, "properties": {"repobilityId": "ae32bbb0e0f744a2", "scanner": "scanner-primary", "fingerprint": "55e22fa3f9037bac", "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-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "86778dbc3e90ff82", "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": "eda5c19eb61ae851", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "efcf51e45eddc1f4", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "017edd85f9a21190", "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": "ff842ab1604a2550", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-6ac353f0bb89d97f", "level": "none", "message": {"text": "Commented-code block (9 lines) in luwipress-amber/assets/js/pdp-gallery.js:147"}, "properties": {"repobilityId": "87e0c8cd9ecbb3c3", "scanner": "scanner-primary", "fingerprint": "6ac353f0bb89d97f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18187d8f7f26fb4c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-amber/assets/js/loadmore.js:91"}, "properties": {"repobilityId": "d6ba7c975148a161", "scanner": "scanner-primary", "fingerprint": "18187d8f7f26fb4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-da12d20ebf28baaf", "level": "none", "message": {"text": "Commented-code block (5 lines) in luwipress-amber/assets/js/frontend.js:27"}, "properties": {"repobilityId": "48ccf61adc0c799f", "scanner": "scanner-primary", "fingerprint": "da12d20ebf28baaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90a1f38221309b74", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-amber/assets/js/frontend.js:1159"}, "properties": {"repobilityId": "33421fb1208d1fc4", "scanner": "scanner-primary", "fingerprint": "90a1f38221309b74", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-33b36c89df3fa1bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in luwipress-amber/assets/js/ai-surface.js:49"}, "properties": {"repobilityId": "e08cc858408155dc", "scanner": "scanner-primary", "fingerprint": "33b36c89df3fa1bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dacaec628afcd8fd", "level": "none", "message": {"text": "Commented-code block (9 lines) in luwipress-sapphire/assets/js/pdp-gallery.js:147"}, "properties": {"repobilityId": "12db4febd8d4483f", "scanner": "scanner-primary", "fingerprint": "dacaec628afcd8fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ee9a0ce2e4c4f9e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-sapphire/assets/js/loadmore.js:91"}, "properties": {"repobilityId": "671cbe26813c8074", "scanner": "scanner-primary", "fingerprint": "9ee9a0ce2e4c4f9e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-15b9e82264c6787f", "level": "none", "message": {"text": "Commented-code block (5 lines) in luwipress-sapphire/assets/js/frontend.js:27"}, "properties": {"repobilityId": "cde0a83dec107cd9", "scanner": "scanner-primary", "fingerprint": "15b9e82264c6787f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75c927859b74637a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-sapphire/assets/js/frontend.js:1151"}, "properties": {"repobilityId": "5ea32b2b3810c81a", "scanner": "scanner-primary", "fingerprint": "75c927859b74637a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a0872611ec6d5e5", "level": "none", "message": {"text": "Commented-code block (9 lines) in luwipress-gold/assets/js/pdp-gallery.js:147"}, "properties": {"repobilityId": "d87f407de1d58cef", "scanner": "scanner-primary", "fingerprint": "4a0872611ec6d5e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31a7aca0a446a0aa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-gold/assets/js/loadmore.js:91"}, "properties": {"repobilityId": "a56400fa2d106a9f", "scanner": "scanner-primary", "fingerprint": "31a7aca0a446a0aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1c4f353b7203c661", "level": "none", "message": {"text": "Commented-code block (5 lines) in luwipress-gold/assets/js/frontend.js:27"}, "properties": {"repobilityId": "d6e0a6d9362c59d9", "scanner": "scanner-primary", "fingerprint": "1c4f353b7203c661", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48e9e59d1c1bdb62", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-gold/assets/js/frontend.js:1151"}, "properties": {"repobilityId": "28feac80b36fee58", "scanner": "scanner-primary", "fingerprint": "48e9e59d1c1bdb62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-272532794e367fac", "level": "none", "message": {"text": "Commented-code block (9 lines) in luwipress-onyx/assets/js/pdp-gallery.js:147"}, "properties": {"repobilityId": "c61dbf9f404299fc", "scanner": "scanner-primary", "fingerprint": "272532794e367fac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ce5dc416ebc74d1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-onyx/assets/js/loadmore.js:91"}, "properties": {"repobilityId": "05faef59b3b270c0", "scanner": "scanner-primary", "fingerprint": "6ce5dc416ebc74d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ccc0184a7758362f", "level": "none", "message": {"text": "Commented-code block (9 lines) in luwipress-emerald/assets/js/pdp-gallery.js:147"}, "properties": {"repobilityId": "3555fa8fb659aa22", "scanner": "scanner-primary", "fingerprint": "ccc0184a7758362f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-990a1bcaa6909979", "level": "none", "message": {"text": "Commented-code block (7 lines) in luwipress-emerald/assets/js/loadmore.js:67"}, "properties": {"repobilityId": "0aa445f68f8bdd9d", "scanner": "scanner-primary", "fingerprint": "990a1bcaa6909979", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ea6bb99a3e1c88f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 luwipress-emerald/assets/js/loadmore.js:92"}, "properties": {"repobilityId": "ad7f40e4ffa8aada", "scanner": "scanner-primary", "fingerprint": "8ea6bb99a3e1c88f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e0f84855e3d459a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in luwipress-emerald/assets/js/frontend.js:120"}, "properties": {"repobilityId": "954a86c80627dacd", "scanner": "scanner-primary", "fingerprint": "e0f84855e3d459a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}