{"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-8f09aa93c37aad73", "name": "Stray `console.log` in TS/JS \u2014 tests/lighthouse/audit.js:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/lighthouse/audit.js:59"}, "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-83193be7824ab48c", "name": "Stray `console.log` in TS/JS \u2014 js/charts.js:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/charts.js:122"}, "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-aef60c2ebe0292d3", "name": "Stray `console.log` in TS/JS \u2014 js/utils.js:241", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/utils.js:241"}, "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-5fc01f2a17dc6e77", "name": "Stray `console.log` in TS/JS \u2014 js/adaptive-difficulty.js:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/adaptive-difficulty.js:90"}, "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-c51097846ca1e1e6", "name": "Stray `console.log` in TS/JS \u2014 Re-vamped/tests/lighthouse/audit.js:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/tests/lighthouse/audit.js:59"}, "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-5db9e803f7c0971e", "name": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/charts.js:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/charts.js:122"}, "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-41edd5f4f237862e", "name": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/utils.js:241", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/utils.js:241"}, "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-f2378131cbb90d85", "name": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/adaptive-difficulty.js:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/adaptive-difficulty.js:90"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07e7542cacf0644e", "name": "Insecure pattern 'local_storage_auth_token' in bubble-exercise.html:885", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in bubble-exercise.html:885"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b78fabc38e1a105", "name": "Insecure pattern 'direct_innerhtml_assignment' in dashboard.html:704", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard.html:704"}, "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-a6bf074741344661", "name": "Insecure pattern 'direct_innerhtml_assignment' in sequence-builder-exercise.html:1088", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in sequence-builder-exercise.html:1088"}, "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-dd107911c999d8af", "name": "Insecure pattern 'direct_innerhtml_assignment' in mirror-match-exercise.html:1050", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mirror-match-exercise.html:1050"}, "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-17be09cdf556def5", "name": "Insecure pattern 'direct_innerhtml_assignment' in sort-categorize-exercise.html:1000", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in sort-categorize-exercise.html:1000"}, "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-b3fbe12667d72075", "name": "Insecure pattern 'direct_innerhtml_assignment' in rhythm-exercise.html:908", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rhythm-exercise.html:908"}, "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-f11ff6415bd04e53", "name": "Insecure pattern 'direct_innerhtml_assignment' in terms-of-service.html:696", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in terms-of-service.html:696"}, "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-c8d53f3ee61f36fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in visual-scanner-exercise.html:674", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in visual-scanner-exercise.html:674"}, "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-9ede45cdad082f49", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/trace-reveal-exercise.html:1764", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/trace-reveal-exercise.html:1764"}, "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-4492f51c9056df63", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/bubble-exercise.html:1736", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/bubble-exercise.html:1736"}, "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-3546072495d16da8", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/sequence-builder-exercise.html:901", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/sequence-builder-exercise.html:901"}, "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-b016d914fe9b0724", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/precision-drop-exercise.html:1704", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/precision-drop-exercise.html:1704"}, "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-d2d707776f233363", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/letter_and_number_trace.html:537", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/letter_and_number_trace.html:537"}, "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-67da43d23fa97ab1", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/maze-exercise.html:1249", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/maze-exercise.html:1249"}, "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-06ff5e67b8de80b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/comet-exercise.html:1585", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/comet-exercise.html:1585"}, "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-29e71910dd086479", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/mirror-match-exercise.html:1378", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/mirror-match-exercise.html:1378"}, "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-f7e13f7331614d41", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/sort-categorize-exercise.html:1478", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/sort-categorize-exercise.html:1478"}, "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-c2ea8730a9e52133", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/rhythm-exercise.html:1689", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/rhythm-exercise.html:1689"}, "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-d878fa1fb5e408e7", "name": "Insecure pattern 'direct_innerhtml_assignment' in exercises/visual-scanner-exercise.html:1454", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/visual-scanner-exercise.html:1454"}, "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-aa8a3ad642c6a2c0", "name": "Insecure pattern 'direct_innerhtml_assignment' in re-vamped spare/bubble-exercise.html:578", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in re-vamped spare/bubble-exercise.html:578"}, "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-4bc88466e1a74115", "name": "Insecure pattern 'local_storage_auth_token' in re-vamped spare/comet-exercise.html:836", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in re-vamped spare/comet-exercise.html:836"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4fc2fc0b977c2748", "name": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/bubble-exercise.html:779", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/bubble-exercise.html:779"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f478b85ea79218a9", "name": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/maze-exercise.html:1498", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/maze-exercise.html:1498"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f76c3641fa66a2a", "name": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/comet-exercise.html:973", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/comet-exercise.html:973"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0eb5603e569ac81b", "name": "Insecure pattern 'direct_innerhtml_assignment' in temp-local-backup/rhythm-exercise.html:471", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in temp-local-backup/rhythm-exercise.html:471"}, "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-e3a52f4883a60d8f", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/session-enhancement.js:126", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/session-enhancement.js:126"}, "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-cea7e2e321032901", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/adaptive-difficulty.js:232", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/adaptive-difficulty.js:232"}, "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-d49a79802b431135", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/fpr-reminders.js:147", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/fpr-reminders.js:147"}, "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-618619536044d223", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/fpr-engagement.js:249", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/fpr-engagement.js:249"}, "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-19432881dd99fa23", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/achievement-notification.js:133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/achievement-notification.js:133"}, "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-d8c66e77bbbc5a08", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/gamification.js:283", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gamification.js:283"}, "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-ac9b7e92fafeba9e", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/enhanced-ux.js:172", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/enhanced-ux.js:172"}, "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-1df6a2909d842610", "name": "Insecure pattern 'insert_adjacent_html' in js/enhanced-ux.js:964", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in js/enhanced-ux.js:964"}, "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-b8a73a5ac32be4ca", "name": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/bubble-exercise.html:776", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/bubble-exercise.html:776"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3abbb9afd8304964", "name": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/maze-exercise.html:1502", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/maze-exercise.html:1502"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e46152d46f21cebb", "name": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/comet-exercise.html:980", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/comet-exercise.html:980"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95a01e5c181ed9ec", "name": "Insecure pattern 'direct_innerhtml_assignment' in SEO Optimised/rhythm-exercise.html:532", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in SEO Optimised/rhythm-exercise.html:532"}, "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-c657afc9411705b2", "name": "Insecure pattern 'local_storage_auth_token' in V1.0/bubble-exercise.html:776", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in V1.0/bubble-exercise.html:776"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b456c6906deaea7", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.0/rhythm-exercise.html:532", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.0/rhythm-exercise.html:532"}, "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-bf2a67981fd9c771", "name": "Insecure pattern 'local_storage_auth_token' in V1.2/bubble-exercise.html:885", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in V1.2/bubble-exercise.html:885"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cdf41ef358e6b99", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/sequence-builder-exercise.html:1088", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/sequence-builder-exercise.html:1088"}, "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-9880477b92d15ee8", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/mirror-match-exercise.html:1050", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/mirror-match-exercise.html:1050"}, "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-75f0e8be82da450d", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/sort-categorize-exercise.html:1000", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/sort-categorize-exercise.html:1000"}, "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-05dfa3cae72f9df5", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/rhythm-exercise.html:908", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/rhythm-exercise.html:908"}, "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-27bf524f106a04f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/visual-scanner-exercise.html:674", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/visual-scanner-exercise.html:674"}, "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-1c9de25162e397d5", "name": "Insecure pattern 'direct_innerhtml_assignment' in New/finger-isolation-exercise.html:656", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in New/finger-isolation-exercise.html:656"}, "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-9f9631cbfad263ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/dashboard.html:704", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/dashboard.html:704"}, "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-5c4ff879570d9ebc", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/terms-of-service.html:696", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/terms-of-service.html:696"}, "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-21b3f38ea034d25b", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/trace-reveal-exercise.html:1764", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/trace-reveal-exercise.html:1764"}, "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-348f12ef8f4e9963", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/bubble-exercise.html:1736", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/bubble-exercise.html:1736"}, "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-48aa19e7413445b1", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/sequence-builder-exercise.html:901", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/sequence-builder-exercise.html:901"}, "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-69bd3d4b74e9e6fe", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/precision-drop-exercise.html:1704", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/precision-drop-exercise.html:1704"}, "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-22d53094ac4141fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/letter_and_number_trace.html:537", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/letter_and_number_trace.html:537"}, "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-06b7a0ea3c0ee73e", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/maze-exercise.html:1249", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/maze-exercise.html:1249"}, "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-766ea5db488f115b", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/comet-exercise.html:1585", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/comet-exercise.html:1585"}, "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-950f862b6dd39cb6", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/mirror-match-exercise.html:1378", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/mirror-match-exercise.html:1378"}, "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-cc5ebb75667e4503", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/sort-categorize-exercise.html:1478", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/sort-categorize-exercise.html:1478"}, "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-1c6df64696233706", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/rhythm-exercise.html:1689", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/rhythm-exercise.html:1689"}, "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-dd546d18d6d9db72", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/visual-scanner-exercise.html:1454", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/visual-scanner-exercise.html:1454"}, "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-e434a230067a356d", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/session-enhancement.js:126", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/session-enhancement.js:126"}, "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-e7d73736227d3e06", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/adaptive-difficulty.js:232", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/adaptive-difficulty.js:232"}, "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-adf79197f12de6b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/fpr-reminders.js:147", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/fpr-reminders.js:147"}, "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-1b7f645983130df8", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/fpr-engagement.js:249", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/fpr-engagement.js:249"}, "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-01a038fb42521b9a", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/achievement-notification.js:133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/achievement-notification.js:133"}, "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-d3f5dd897c4e1e8e", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/gamification.js:283", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/gamification.js:283"}, "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-d2e76056668492cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/enhanced-ux.js:172", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/enhanced-ux.js:172"}, "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-93c59f1d156457e0", "name": "Insecure pattern 'insert_adjacent_html' in Re-vamped/js/enhanced-ux.js:964", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in Re-vamped/js/enhanced-ux.js:964"}, "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-cfd3fcd940acc90b", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/sequence-builder-exercise.html:1153", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/sequence-builder-exercise.html:1153"}, "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-1cfd9c712660c865", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/mirror-match-exercise.html:692", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/mirror-match-exercise.html:692"}, "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-ef396208c470d1f7", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/sort-categorize-exercise.html:893", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/sort-categorize-exercise.html:893"}, "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-7bda1577bd127fed", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/visual-scanner-exercise.html:602", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/visual-scanner-exercise.html:602"}, "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-7831a7e709886a94", "name": "Insecure pattern 'local_storage_auth_token' in V1.1/Existing files/bubble-exercise.html:776", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in V1.1/Existing files/bubble-exercise.html:776"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-968dc221291aa126", "name": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/Existing files/rhythm-exercise.html:532", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/Existing files/rhythm-exercise.html:532"}, "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-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-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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3ed68815bca2f8c", "name": "Node manifest has dependencies but no lockfile: package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4262e6dd2d06dbc", "name": "Node manifest has dependencies but no lockfile: Re-vamped/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Re-vamped/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 24 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, operator-readme, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95104e6f96faaff7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:50"}, "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-027ac3cb2ae07ee5", "name": "Commented-code block (6 lines) in js/fpr-native.js:71", "shortDescription": {"text": "Commented-code block (6 lines) in js/fpr-native.js:71"}, "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-c8e4f1f99fac4e83", "name": "`fetch()` without try/.catch or AbortSignal \u2014 Re-vamped/sw.js:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 Re-vamped/sw.js:50"}, "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-4611d0b6cf112905", "name": "Commented-code block (6 lines) in Re-vamped/js/fpr-native.js:71", "shortDescription": {"text": "Commented-code block (6 lines) in Re-vamped/js/fpr-native.js:71"}, "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/22093"}, "properties": {"repository": "VastOceanLabs/FinePointRehab", "repoUrl": "https://github.com/VastOceanLabs/FinePointRehab", "branch": "main"}, "results": [{"ruleId": "scanner-8f09aa93c37aad73", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/lighthouse/audit.js:59"}, "properties": {"repobilityId": "b765be7bf0b6f6c5", "scanner": "scanner-primary", "fingerprint": "8f09aa93c37aad73", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-83193be7824ab48c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/charts.js:122"}, "properties": {"repobilityId": "0b485fba89f9c088", "scanner": "scanner-primary", "fingerprint": "83193be7824ab48c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aef60c2ebe0292d3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/utils.js:241"}, "properties": {"repobilityId": "943b3131be271978", "scanner": "scanner-primary", "fingerprint": "aef60c2ebe0292d3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5fc01f2a17dc6e77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/adaptive-difficulty.js:90"}, "properties": {"repobilityId": "ebf805aae26b5ce3", "scanner": "scanner-primary", "fingerprint": "5fc01f2a17dc6e77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c51097846ca1e1e6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/tests/lighthouse/audit.js:59"}, "properties": {"repobilityId": "77fd184b853ea6f6", "scanner": "scanner-primary", "fingerprint": "c51097846ca1e1e6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5db9e803f7c0971e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/charts.js:122"}, "properties": {"repobilityId": "b4aa40670f59275a", "scanner": "scanner-primary", "fingerprint": "5db9e803f7c0971e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41edd5f4f237862e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/utils.js:241"}, "properties": {"repobilityId": "10dbc6c1ec58dcca", "scanner": "scanner-primary", "fingerprint": "41edd5f4f237862e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f2378131cbb90d85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 Re-vamped/js/adaptive-difficulty.js:90"}, "properties": {"repobilityId": "c499019d40b2130c", "scanner": "scanner-primary", "fingerprint": "f2378131cbb90d85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-07e7542cacf0644e", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in bubble-exercise.html:885"}, "properties": {"repobilityId": "eac3bfa37cacd1de", "scanner": "scanner-primary", "fingerprint": "07e7542cacf0644e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bubble-exercise.html"}, "region": {"startLine": 885}}}]}, {"ruleId": "scanner-0b78fabc38e1a105", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard.html:704"}, "properties": {"repobilityId": "3cddbad051d0bcc9", "scanner": "scanner-primary", "fingerprint": "0b78fabc38e1a105", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dashboard.html"}, "region": {"startLine": 704}}}]}, {"ruleId": "scanner-a6bf074741344661", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in sequence-builder-exercise.html:1088"}, "properties": {"repobilityId": "83e65232e4f330d9", "scanner": "scanner-primary", "fingerprint": "a6bf074741344661", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sequence-builder-exercise.html"}, "region": {"startLine": 1088}}}]}, {"ruleId": "scanner-dd107911c999d8af", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mirror-match-exercise.html:1050"}, "properties": {"repobilityId": "2fafacc2bd8a47ce", "scanner": "scanner-primary", "fingerprint": "dd107911c999d8af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mirror-match-exercise.html"}, "region": {"startLine": 1050}}}]}, {"ruleId": "scanner-17be09cdf556def5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in sort-categorize-exercise.html:1000"}, "properties": {"repobilityId": "9d1e18a71f5d2c80", "scanner": "scanner-primary", "fingerprint": "17be09cdf556def5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sort-categorize-exercise.html"}, "region": {"startLine": 1000}}}]}, {"ruleId": "scanner-b3fbe12667d72075", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rhythm-exercise.html:908"}, "properties": {"repobilityId": "2dca9a0eabccb9d6", "scanner": "scanner-primary", "fingerprint": "b3fbe12667d72075", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rhythm-exercise.html"}, "region": {"startLine": 908}}}]}, {"ruleId": "scanner-f11ff6415bd04e53", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in terms-of-service.html:696"}, "properties": {"repobilityId": "0da6e4de9c244856", "scanner": "scanner-primary", "fingerprint": "f11ff6415bd04e53", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "terms-of-service.html"}, "region": {"startLine": 696}}}]}, {"ruleId": "scanner-c8d53f3ee61f36fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in visual-scanner-exercise.html:674"}, "properties": {"repobilityId": "f9947beb267e0148", "scanner": "scanner-primary", "fingerprint": "c8d53f3ee61f36fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "visual-scanner-exercise.html"}, "region": {"startLine": 674}}}]}, {"ruleId": "scanner-9ede45cdad082f49", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/trace-reveal-exercise.html:1764"}, "properties": {"repobilityId": "db9443fb17f99dc6", "scanner": "scanner-primary", "fingerprint": "9ede45cdad082f49", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/trace-reveal-exercise.html"}, "region": {"startLine": 1764}}}]}, {"ruleId": "scanner-4492f51c9056df63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/bubble-exercise.html:1736"}, "properties": {"repobilityId": "dddc8b5e46487d92", "scanner": "scanner-primary", "fingerprint": "4492f51c9056df63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/bubble-exercise.html"}, "region": {"startLine": 1736}}}]}, {"ruleId": "scanner-3546072495d16da8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/sequence-builder-exercise.html:901"}, "properties": {"repobilityId": "b90bb6fb909a0f6a", "scanner": "scanner-primary", "fingerprint": "3546072495d16da8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/sequence-builder-exercise.html"}, "region": {"startLine": 901}}}]}, {"ruleId": "scanner-b016d914fe9b0724", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/precision-drop-exercise.html:1704"}, "properties": {"repobilityId": "deef2a10e301c2f5", "scanner": "scanner-primary", "fingerprint": "b016d914fe9b0724", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/precision-drop-exercise.html"}, "region": {"startLine": 1704}}}]}, {"ruleId": "scanner-d2d707776f233363", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/letter_and_number_trace.html:537"}, "properties": {"repobilityId": "15affdd3ae7392c3", "scanner": "scanner-primary", "fingerprint": "d2d707776f233363", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/letter_and_number_trace.html"}, "region": {"startLine": 537}}}]}, {"ruleId": "scanner-67da43d23fa97ab1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/maze-exercise.html:1249"}, "properties": {"repobilityId": "62355bd5519d104b", "scanner": "scanner-primary", "fingerprint": "67da43d23fa97ab1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/maze-exercise.html"}, "region": {"startLine": 1249}}}]}, {"ruleId": "scanner-06ff5e67b8de80b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/comet-exercise.html:1585"}, "properties": {"repobilityId": "401ace0ae90db790", "scanner": "scanner-primary", "fingerprint": "06ff5e67b8de80b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/comet-exercise.html"}, "region": {"startLine": 1585}}}]}, {"ruleId": "scanner-29e71910dd086479", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/mirror-match-exercise.html:1378"}, "properties": {"repobilityId": "3d2ae66d14ea041c", "scanner": "scanner-primary", "fingerprint": "29e71910dd086479", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/mirror-match-exercise.html"}, "region": {"startLine": 1378}}}]}, {"ruleId": "scanner-f7e13f7331614d41", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/sort-categorize-exercise.html:1478"}, "properties": {"repobilityId": "9046534a4dc3fa30", "scanner": "scanner-primary", "fingerprint": "f7e13f7331614d41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/sort-categorize-exercise.html"}, "region": {"startLine": 1478}}}]}, {"ruleId": "scanner-c2ea8730a9e52133", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/rhythm-exercise.html:1689"}, "properties": {"repobilityId": "40caf2734ad05b43", "scanner": "scanner-primary", "fingerprint": "c2ea8730a9e52133", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/rhythm-exercise.html"}, "region": {"startLine": 1689}}}]}, {"ruleId": "scanner-d878fa1fb5e408e7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in exercises/visual-scanner-exercise.html:1454"}, "properties": {"repobilityId": "3c86b7a873268504", "scanner": "scanner-primary", "fingerprint": "d878fa1fb5e408e7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "exercises/visual-scanner-exercise.html"}, "region": {"startLine": 1454}}}]}, {"ruleId": "scanner-aa8a3ad642c6a2c0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in re-vamped spare/bubble-exercise.html:578"}, "properties": {"repobilityId": "bf289d45c02baef2", "scanner": "scanner-primary", "fingerprint": "aa8a3ad642c6a2c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "re-vamped spare/bubble-exercise.html"}, "region": {"startLine": 578}}}]}, {"ruleId": "scanner-4bc88466e1a74115", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in re-vamped spare/comet-exercise.html:836"}, "properties": {"repobilityId": "9a0b65715ba185e7", "scanner": "scanner-primary", "fingerprint": "4bc88466e1a74115", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "re-vamped spare/comet-exercise.html"}, "region": {"startLine": 836}}}]}, {"ruleId": "scanner-4fc2fc0b977c2748", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/bubble-exercise.html:779"}, "properties": {"repobilityId": "a10d13630af24b65", "scanner": "scanner-primary", "fingerprint": "4fc2fc0b977c2748", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "temp-local-backup/bubble-exercise.html"}, "region": {"startLine": 779}}}]}, {"ruleId": "scanner-f478b85ea79218a9", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/maze-exercise.html:1498"}, "properties": {"repobilityId": "8f3189165c31aed2", "scanner": "scanner-primary", "fingerprint": "f478b85ea79218a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "temp-local-backup/maze-exercise.html"}, "region": {"startLine": 1498}}}]}, {"ruleId": "scanner-2f76c3641fa66a2a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in temp-local-backup/comet-exercise.html:973"}, "properties": {"repobilityId": "3fcc573bf12e09b3", "scanner": "scanner-primary", "fingerprint": "2f76c3641fa66a2a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "temp-local-backup/comet-exercise.html"}, "region": {"startLine": 973}}}]}, {"ruleId": "scanner-0eb5603e569ac81b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in temp-local-backup/rhythm-exercise.html:471"}, "properties": {"repobilityId": "1477e7a754ba9f74", "scanner": "scanner-primary", "fingerprint": "0eb5603e569ac81b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "temp-local-backup/rhythm-exercise.html"}, "region": {"startLine": 471}}}]}, {"ruleId": "scanner-e3a52f4883a60d8f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/session-enhancement.js:126"}, "properties": {"repobilityId": "240d488bd23b319d", "scanner": "scanner-primary", "fingerprint": "e3a52f4883a60d8f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/session-enhancement.js"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-cea7e2e321032901", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/adaptive-difficulty.js:232"}, "properties": {"repobilityId": "8f1da81a7e75c88e", "scanner": "scanner-primary", "fingerprint": "cea7e2e321032901", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/adaptive-difficulty.js"}, "region": {"startLine": 232}}}]}, {"ruleId": "scanner-d49a79802b431135", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/fpr-reminders.js:147"}, "properties": {"repobilityId": "94409236d09cb9ea", "scanner": "scanner-primary", "fingerprint": "d49a79802b431135", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/fpr-reminders.js"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-618619536044d223", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/fpr-engagement.js:249"}, "properties": {"repobilityId": "5bf038b2724e8238", "scanner": "scanner-primary", "fingerprint": "618619536044d223", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/fpr-engagement.js"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-19432881dd99fa23", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/achievement-notification.js:133"}, "properties": {"repobilityId": "f98cebcf09ccaa69", "scanner": "scanner-primary", "fingerprint": "19432881dd99fa23", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/achievement-notification.js"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-d8c66e77bbbc5a08", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gamification.js:283"}, "properties": {"repobilityId": "05590fcce50a5cfc", "scanner": "scanner-primary", "fingerprint": "d8c66e77bbbc5a08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/gamification.js"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-ac9b7e92fafeba9e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/enhanced-ux.js:172"}, "properties": {"repobilityId": "43a9a8117f804c25", "scanner": "scanner-primary", "fingerprint": "ac9b7e92fafeba9e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/enhanced-ux.js"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-1df6a2909d842610", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in js/enhanced-ux.js:964"}, "properties": {"repobilityId": "c7de2b4fda4a4053", "scanner": "scanner-primary", "fingerprint": "1df6a2909d842610", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/enhanced-ux.js"}, "region": {"startLine": 964}}}]}, {"ruleId": "scanner-b8a73a5ac32be4ca", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/bubble-exercise.html:776"}, "properties": {"repobilityId": "1661c833cb29d72c", "scanner": "scanner-primary", "fingerprint": "b8a73a5ac32be4ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SEO Optimised/bubble-exercise.html"}, "region": {"startLine": 776}}}]}, {"ruleId": "scanner-3abbb9afd8304964", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/maze-exercise.html:1502"}, "properties": {"repobilityId": "27c3c5cfa9414e5f", "scanner": "scanner-primary", "fingerprint": "3abbb9afd8304964", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SEO Optimised/maze-exercise.html"}, "region": {"startLine": 1502}}}]}, {"ruleId": "scanner-e46152d46f21cebb", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in SEO Optimised/comet-exercise.html:980"}, "properties": {"repobilityId": "1d509b6aca12a708", "scanner": "scanner-primary", "fingerprint": "e46152d46f21cebb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SEO Optimised/comet-exercise.html"}, "region": {"startLine": 980}}}]}, {"ruleId": "scanner-95a01e5c181ed9ec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in SEO Optimised/rhythm-exercise.html:532"}, "properties": {"repobilityId": "e3b4f57644c376b2", "scanner": "scanner-primary", "fingerprint": "95a01e5c181ed9ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SEO Optimised/rhythm-exercise.html"}, "region": {"startLine": 532}}}]}, {"ruleId": "scanner-c657afc9411705b2", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in V1.0/bubble-exercise.html:776"}, "properties": {"repobilityId": "9bd09935bfb9e9ae", "scanner": "scanner-primary", "fingerprint": "c657afc9411705b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.0/bubble-exercise.html"}, "region": {"startLine": 776}}}]}, {"ruleId": "scanner-0b456c6906deaea7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.0/rhythm-exercise.html:532"}, "properties": {"repobilityId": "def7f89a9091fca0", "scanner": "scanner-primary", "fingerprint": "0b456c6906deaea7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.0/rhythm-exercise.html"}, "region": {"startLine": 532}}}]}, {"ruleId": "scanner-bf2a67981fd9c771", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in V1.2/bubble-exercise.html:885"}, "properties": {"repobilityId": "a63ea06d5a050190", "scanner": "scanner-primary", "fingerprint": "bf2a67981fd9c771", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.2/bubble-exercise.html"}, "region": {"startLine": 885}}}]}, {"ruleId": "scanner-8cdf41ef358e6b99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/sequence-builder-exercise.html:1088"}, "properties": {"repobilityId": "d75e93e5baabe8eb", "scanner": "scanner-primary", "fingerprint": "8cdf41ef358e6b99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.2/sequence-builder-exercise.html"}, "region": {"startLine": 1088}}}]}, {"ruleId": "scanner-9880477b92d15ee8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/mirror-match-exercise.html:1050"}, "properties": {"repobilityId": "f0370eab0bae5585", "scanner": "scanner-primary", "fingerprint": "9880477b92d15ee8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.2/mirror-match-exercise.html"}, "region": {"startLine": 1050}}}]}, {"ruleId": "scanner-75f0e8be82da450d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/sort-categorize-exercise.html:1000"}, "properties": {"repobilityId": "8b7ca03c3c419641", "scanner": "scanner-primary", "fingerprint": "75f0e8be82da450d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.2/sort-categorize-exercise.html"}, "region": {"startLine": 1000}}}]}, {"ruleId": "scanner-05dfa3cae72f9df5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/rhythm-exercise.html:908"}, "properties": {"repobilityId": "a42c2c8f7673eb9d", "scanner": "scanner-primary", "fingerprint": "05dfa3cae72f9df5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.2/rhythm-exercise.html"}, "region": {"startLine": 908}}}]}, {"ruleId": "scanner-27bf524f106a04f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.2/visual-scanner-exercise.html:674"}, "properties": {"repobilityId": "b9617445709b5856", "scanner": "scanner-primary", "fingerprint": "27bf524f106a04f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.2/visual-scanner-exercise.html"}, "region": {"startLine": 674}}}]}, {"ruleId": "scanner-1c9de25162e397d5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in New/finger-isolation-exercise.html:656"}, "properties": {"repobilityId": "793684c17138a323", "scanner": "scanner-primary", "fingerprint": "1c9de25162e397d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "New/finger-isolation-exercise.html"}, "region": {"startLine": 656}}}]}, {"ruleId": "scanner-9f9631cbfad263ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/dashboard.html:704"}, "properties": {"repobilityId": "76581b7f34178018", "scanner": "scanner-primary", "fingerprint": "9f9631cbfad263ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/dashboard.html"}, "region": {"startLine": 704}}}]}, {"ruleId": "scanner-5c4ff879570d9ebc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/terms-of-service.html:696"}, "properties": {"repobilityId": "6dbb5d4395cc3cad", "scanner": "scanner-primary", "fingerprint": "5c4ff879570d9ebc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/terms-of-service.html"}, "region": {"startLine": 696}}}]}, {"ruleId": "scanner-21b3f38ea034d25b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/trace-reveal-exercise.html:1764"}, "properties": {"repobilityId": "ac45aa7cbb898a03", "scanner": "scanner-primary", "fingerprint": "21b3f38ea034d25b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/trace-reveal-exercise.html"}, "region": {"startLine": 1764}}}]}, {"ruleId": "scanner-348f12ef8f4e9963", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/bubble-exercise.html:1736"}, "properties": {"repobilityId": "09cb41ebe1070acb", "scanner": "scanner-primary", "fingerprint": "348f12ef8f4e9963", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/bubble-exercise.html"}, "region": {"startLine": 1736}}}]}, {"ruleId": "scanner-48aa19e7413445b1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/sequence-builder-exercise.html:901"}, "properties": {"repobilityId": "f1a304c6bd6f8496", "scanner": "scanner-primary", "fingerprint": "48aa19e7413445b1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/sequence-builder-exercise.html"}, "region": {"startLine": 901}}}]}, {"ruleId": "scanner-69bd3d4b74e9e6fe", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/precision-drop-exercise.html:1704"}, "properties": {"repobilityId": "884d1f550c9fac4f", "scanner": "scanner-primary", "fingerprint": "69bd3d4b74e9e6fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/precision-drop-exercise.html"}, "region": {"startLine": 1704}}}]}, {"ruleId": "scanner-22d53094ac4141fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/letter_and_number_trace.html:537"}, "properties": {"repobilityId": "1a5056ce3a0a0947", "scanner": "scanner-primary", "fingerprint": "22d53094ac4141fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/letter_and_number_trace.html"}, "region": {"startLine": 537}}}]}, {"ruleId": "scanner-06b7a0ea3c0ee73e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/maze-exercise.html:1249"}, "properties": {"repobilityId": "da389cd8c7224838", "scanner": "scanner-primary", "fingerprint": "06b7a0ea3c0ee73e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/maze-exercise.html"}, "region": {"startLine": 1249}}}]}, {"ruleId": "scanner-766ea5db488f115b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/comet-exercise.html:1585"}, "properties": {"repobilityId": "622619d01f33ea70", "scanner": "scanner-primary", "fingerprint": "766ea5db488f115b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/comet-exercise.html"}, "region": {"startLine": 1585}}}]}, {"ruleId": "scanner-950f862b6dd39cb6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/mirror-match-exercise.html:1378"}, "properties": {"repobilityId": "c88e1e7b47ed334a", "scanner": "scanner-primary", "fingerprint": "950f862b6dd39cb6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/mirror-match-exercise.html"}, "region": {"startLine": 1378}}}]}, {"ruleId": "scanner-cc5ebb75667e4503", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/sort-categorize-exercise.html:1478"}, "properties": {"repobilityId": "3d83dd50fbead26d", "scanner": "scanner-primary", "fingerprint": "cc5ebb75667e4503", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/sort-categorize-exercise.html"}, "region": {"startLine": 1478}}}]}, {"ruleId": "scanner-1c6df64696233706", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/rhythm-exercise.html:1689"}, "properties": {"repobilityId": "a74f95d59abb42a6", "scanner": "scanner-primary", "fingerprint": "1c6df64696233706", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/rhythm-exercise.html"}, "region": {"startLine": 1689}}}]}, {"ruleId": "scanner-dd546d18d6d9db72", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/exercises/visual-scanner-exercise.html:1454"}, "properties": {"repobilityId": "4d9dd17beba7c29e", "scanner": "scanner-primary", "fingerprint": "dd546d18d6d9db72", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/exercises/visual-scanner-exercise.html"}, "region": {"startLine": 1454}}}]}, {"ruleId": "scanner-e434a230067a356d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/session-enhancement.js:126"}, "properties": {"repobilityId": "9ff3eb5d3dc7f3fc", "scanner": "scanner-primary", "fingerprint": "e434a230067a356d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/session-enhancement.js"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-e7d73736227d3e06", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/adaptive-difficulty.js:232"}, "properties": {"repobilityId": "c6e64c35bd6750c4", "scanner": "scanner-primary", "fingerprint": "e7d73736227d3e06", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/adaptive-difficulty.js"}, "region": {"startLine": 232}}}]}, {"ruleId": "scanner-adf79197f12de6b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/fpr-reminders.js:147"}, "properties": {"repobilityId": "c9adbceab83b62fc", "scanner": "scanner-primary", "fingerprint": "adf79197f12de6b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/fpr-reminders.js"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-1b7f645983130df8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/fpr-engagement.js:249"}, "properties": {"repobilityId": "cf2309076323feea", "scanner": "scanner-primary", "fingerprint": "1b7f645983130df8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/fpr-engagement.js"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-01a038fb42521b9a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/achievement-notification.js:133"}, "properties": {"repobilityId": "7f405135d74e1935", "scanner": "scanner-primary", "fingerprint": "01a038fb42521b9a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/achievement-notification.js"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-d3f5dd897c4e1e8e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/gamification.js:283"}, "properties": {"repobilityId": "6b4aef585b9376a5", "scanner": "scanner-primary", "fingerprint": "d3f5dd897c4e1e8e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/gamification.js"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-d2e76056668492cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in Re-vamped/js/enhanced-ux.js:172"}, "properties": {"repobilityId": "a9410902199b1031", "scanner": "scanner-primary", "fingerprint": "d2e76056668492cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/enhanced-ux.js"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-93c59f1d156457e0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in Re-vamped/js/enhanced-ux.js:964"}, "properties": {"repobilityId": "1cff4d7320926cfb", "scanner": "scanner-primary", "fingerprint": "93c59f1d156457e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/js/enhanced-ux.js"}, "region": {"startLine": 964}}}]}, {"ruleId": "scanner-cfd3fcd940acc90b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/sequence-builder-exercise.html:1153"}, "properties": {"repobilityId": "33255cac3dc3458a", "scanner": "scanner-primary", "fingerprint": "cfd3fcd940acc90b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.1/sequence-builder-exercise.html"}, "region": {"startLine": 1153}}}]}, {"ruleId": "scanner-1cfd9c712660c865", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/mirror-match-exercise.html:692"}, "properties": {"repobilityId": "ca628c27c41a9d2d", "scanner": "scanner-primary", "fingerprint": "1cfd9c712660c865", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.1/mirror-match-exercise.html"}, "region": {"startLine": 692}}}]}, {"ruleId": "scanner-ef396208c470d1f7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/sort-categorize-exercise.html:893"}, "properties": {"repobilityId": "4e18043c77d65ddd", "scanner": "scanner-primary", "fingerprint": "ef396208c470d1f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.1/sort-categorize-exercise.html"}, "region": {"startLine": 893}}}]}, {"ruleId": "scanner-7bda1577bd127fed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/visual-scanner-exercise.html:602"}, "properties": {"repobilityId": "ad20e11d84ad7bea", "scanner": "scanner-primary", "fingerprint": "7bda1577bd127fed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.1/visual-scanner-exercise.html"}, "region": {"startLine": 602}}}]}, {"ruleId": "scanner-7831a7e709886a94", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in V1.1/Existing files/bubble-exercise.html:776"}, "properties": {"repobilityId": "b39432931fce27f8", "scanner": "scanner-primary", "fingerprint": "7831a7e709886a94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.1/Existing files/bubble-exercise.html"}, "region": {"startLine": 776}}}]}, {"ruleId": "scanner-968dc221291aa126", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in V1.1/Existing files/rhythm-exercise.html:532"}, "properties": {"repobilityId": "c89362feab7f7cbc", "scanner": "scanner-primary", "fingerprint": "968dc221291aa126", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "V1.1/Existing files/rhythm-exercise.html"}, "region": {"startLine": 532}}}]}, {"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-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-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "80589a623521bbdc", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "4e62c60ae9874dc7", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b3ed68815bca2f8c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "properties": {"repobilityId": "7edae0550c126386", "scanner": "scanner-primary", "fingerprint": "b3ed68815bca2f8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a4262e6dd2d06dbc", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Re-vamped/package.json"}, "properties": {"repobilityId": "f73598cd64f72a47", "scanner": "scanner-primary", "fingerprint": "a4262e6dd2d06dbc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Re-vamped/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "ff2715a12cbcabea", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "03e9dd6f8bf6b6bd", "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": "63593fb54e9c34c5", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "2a86214f19e3ee6c", "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": "761998ad9ef6a217", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-95104e6f96faaff7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:50"}, "properties": {"repobilityId": "37e58eaa1173a0b5", "scanner": "scanner-primary", "fingerprint": "95104e6f96faaff7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-027ac3cb2ae07ee5", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/fpr-native.js:71"}, "properties": {"repobilityId": "c12c49f98c4f0088", "scanner": "scanner-primary", "fingerprint": "027ac3cb2ae07ee5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8e4f1f99fac4e83", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 Re-vamped/sw.js:50"}, "properties": {"repobilityId": "0c1c030ab1a9efa4", "scanner": "scanner-primary", "fingerprint": "c8e4f1f99fac4e83", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4611d0b6cf112905", "level": "none", "message": {"text": "Commented-code block (6 lines) in Re-vamped/js/fpr-native.js:71"}, "properties": {"repobilityId": "be2e5a9374c725ed", "scanner": "scanner-primary", "fingerprint": "4611d0b6cf112905", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}