{"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-998e70ab219f8393", "name": "Icon-only button without accessible name \u2014 js/check-distance.js:173", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/check-distance.js:173"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c83b7eef09a28801", "name": "Icon-only button without accessible name \u2014 js/kalkulacka.js:882", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/kalkulacka.js:882"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e521b2dd12426ff", "name": "Stray `console.log` in TS/JS \u2014 js/lib/proj4-2.9.0.min.js:1", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/lib/proj4-2.9.0.min.js:1"}, "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-137e3b6e85575a8e", "name": "Privileged port 30 in use", "shortDescription": {"text": "Privileged port 30 in use"}, "fullDescription": {"text": "Port 30 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "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-83562cd7ae22653d", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:639", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:639"}, "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-4204f3fc1cbc025f", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/tutorial-pro.js:150", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tutorial-pro.js:150"}, "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-0d6d54b5ffd1d225", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/cadastre-area.js:171", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/cadastre-area.js:171"}, "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-433a05b3b82669c5", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/power-save.js:249", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/power-save.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-8a79d0d25756c771", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/sky-obstruction.js:126", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/sky-obstruction.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-af5587aa4f17d22f", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/track-log.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/track-log.js:101"}, "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-b24bb09c903c8975", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/cadastre-vector.js:210", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/cadastre-vector.js:210"}, "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-5e98efd99fd52b86", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/gps-warn.js:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gps-warn.js:60"}, "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-6a1f16751ef564bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/geo-overlay.js:193", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/geo-overlay.js:193"}, "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-45d9800a8df63c63", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kompas-check.js:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kompas-check.js:29"}, "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-65ce9186219438cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/grafika.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/grafika.js:10"}, "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-d3d541cef300188a", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/sdileni.js:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/sdileni.js:69"}, "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-dfd9eaf684423cb5", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/orient-point.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/orient-point.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b0f1255c972a9ac", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/calib-profiles.js:190", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/calib-profiles.js:190"}, "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-ea4b565f4f958ae0", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/ar-resection.js:181", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/ar-resection.js:181"}, "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-669d29416b442d6d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/check-distance.js:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/check-distance.js:82"}, "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-b52bab632a599832", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/stakeout-line.js:49", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/stakeout-line.js:49"}, "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-ed38a58a1133ca0b", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/tachymetrie.js:105", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tachymetrie.js:105"}, "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-7a7cb3dbc72640f0", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/vytycovani.js:55", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/vytycovani.js:55"}, "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-0420b0fb46107b81", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/field-tools.js:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/field-tools.js:65"}, "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-06b09a00801cd423", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/tutorial.js:150", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tutorial.js:150"}, "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-ce48b08ea91f9b56", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/zakazky.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/zakazky.js:13"}, "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-7de27cdfc4792bce", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/offset-point.js:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/offset-point.js:53"}, "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-7f30918933f24744", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/parcela.js:347", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/parcela.js:347"}, "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-e81fbb3939b2b739", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/compass-stability.js:109", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/compass-stability.js:109"}, "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-87a2f303e3316995", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/ar-intersection.js:118", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/ar-intersection.js:118"}, "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-c952a4f3d8535054", "name": "Insecure pattern 'new_function_used' in js/kalkulacka.js:643", "shortDescription": {"text": "Insecure pattern 'new_function_used' in js/kalkulacka.js:643"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ccbc0a063981ce4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kalkulacka.js:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kalkulacka.js:45"}, "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-b60ca4d4214446bd", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/logika.js:192", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/logika.js:192"}, "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-632292f10bbb97d9", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/cuzk-geodata.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/cuzk-geodata.js:38"}, "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-a2b45ef6409d7b89", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/gnss-quality.js:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gnss-quality.js:114"}, "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-1b23a95300251494", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/zpravodaj.js:130", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/zpravodaj.js:130"}, "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-c26b29078ef2df90", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/ref-calibration.js:166", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/ref-calibration.js:166"}, "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-424bb7baba4b17b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/pruvodce.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/pruvodce.js:39"}, "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-6b6eff021cfed9b4", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kml-export.js:132", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kml-export.js:132"}, "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-f71bfcdf870330e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/satelity.js:77", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/satelity.js:77"}, "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-372bca418454953a", "name": "Insecure pattern 'document_write' in js/vylepseni.js:652", "shortDescription": {"text": "Insecure pattern 'document_write' in js/vylepseni.js:652"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c87b0fb88eb68ace", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/vylepseni.js:27", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/vylepseni.js:27"}, "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-841a907bcc67be09", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/dmt-volume.js:380", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/dmt-volume.js:380"}, "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-e207cdea9c917ccf", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/project-import.js:202", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/project-import.js:202"}, "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-af753bf3ad8eb0d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/dmr-terrain.js:197", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/dmr-terrain.js:197"}, "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-c5789bf6b7bfb13e", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/predpisy.js:96", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/predpisy.js:96"}, "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-d3fbe97ddb5d489a", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/lib/leaflet-1.9.4.js:5", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/lib/leaflet-1.9.4.js:5"}, "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-af37b4c595bce388", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9ab4a08dc15b3361", "name": "Very large file: js/grafika.js (836 lines)", "shortDescription": {"text": "Very large file: js/grafika.js (836 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e43ec6170b45bec3", "name": "Very large file: js/parcela.js (850 lines)", "shortDescription": {"text": "Very large file: js/parcela.js (850 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9944bbf516b8e054", "name": "Very large file: js/kalkulacka.js (1064 lines)", "shortDescription": {"text": "Very large file: js/kalkulacka.js (1064 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e7440b97f4fadea", "name": "Very large file: js/lib/qrcode.min.js (2297 lines)", "shortDescription": {"text": "Very large file: js/lib/qrcode.min.js (2297 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-269168f2fbd45241", "name": "Very large file: js/lib/jsqr.min.js (10101 lines)", "shortDescription": {"text": "Very large file: js/lib/jsqr.min.js (10101 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 53 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-01f96f71d9907a8c", "name": "README lacks setup or run instructions", "shortDescription": {"text": "README lacks setup or run instructions"}, "fullDescription": {"text": "A README exists, but it does not contain common install/setup/run markers. This matches a frequent generated-code pattern: UI is present, operational handoff is thin."}, "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 13 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 39 placeholder/mock markers across 13 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, tests, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47171e8e1b8df241", "name": "Commented-code block (5 lines) in sw.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in sw.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc490b3d6b40b817", "name": "Commented-code block (6 lines) in js/tutorial-pro.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in js/tutorial-pro.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9777fc471677d6ca", "name": "Commented-code block (6 lines) in js/cadastre-area.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in js/cadastre-area.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8eaff01cb76e2f48", "name": "Commented-code block (5 lines) in js/export.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/export.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09b05b6fdce4ff7a", "name": "Commented-code block (5 lines) in js/power-save.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/power-save.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7b5d349da0eb9c8", "name": "Commented-code block (7 lines) in js/sky-obstruction.js:13", "shortDescription": {"text": "Commented-code block (7 lines) in js/sky-obstruction.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b05e1fa448c2dc6", "name": "Commented-code block (5 lines) in js/track-log.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/track-log.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bef495cdc4aca88", "name": "Commented-code block (6 lines) in js/cadastre-vector.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in js/cadastre-vector.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ccd9ebcbc7c31b8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/cadastre-vector.js:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/cadastre-vector.js:42"}, "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-3c66771bb3016005", "name": "Commented-code block (5 lines) in js/theme-dark.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/theme-dark.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46caffe2ccbb1220", "name": "Commented-code block (6 lines) in js/gps-warn.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in js/gps-warn.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cd783813b25a0b5", "name": "Commented-code block (5 lines) in js/geo-overlay.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/geo-overlay.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19af49c8c609616f", "name": "Commented-code block (8 lines) in js/kompas-check.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in js/kompas-check.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8afdd45e3578a20", "name": "Legacy-named symbol `arTutorialSeen_v1` in js/grafika.js:51", "shortDescription": {"text": "Legacy-named symbol `arTutorialSeen_v1` in js/grafika.js:51"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c48b8fee7d3831b", "name": "Commented-code block (6 lines) in js/sdileni.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/sdileni.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c5f943a2936d7d1e", "name": "Commented-code block (6 lines) in js/orient-point.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/orient-point.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a80e472c1154cb1", "name": "Commented-code block (8 lines) in js/calib-profiles.js:5", "shortDescription": {"text": "Commented-code block (8 lines) in js/calib-profiles.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-486c5769f9edd88f", "name": "Commented-code block (6 lines) in js/ar-resection.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in js/ar-resection.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ff33bf60c003c74", "name": "Commented-code block (6 lines) in js/check-distance.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/check-distance.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcefc1310f584995", "name": "Commented-code block (7 lines) in js/stakeout-line.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in js/stakeout-line.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d60faa7c235a399", "name": "Commented-code block (6 lines) in js/tachymetrie.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/tachymetrie.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20bee032063df427", "name": "Commented-code block (5 lines) in js/vytycovani.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/vytycovani.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d28b2a573a233750", "name": "Commented-code block (10 lines) in js/field-tools.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in js/field-tools.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e5ea61ab516b203", "name": "Legacy-named symbol `arTutorialSeen_v1` in js/tutorial.js:7", "shortDescription": {"text": "Legacy-named symbol `arTutorialSeen_v1` in js/tutorial.js:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a76ce037f6e4c23", "name": "Commented-code block (6 lines) in js/undo.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/undo.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09e8828575e5b033", "name": "Commented-code block (5 lines) in js/zakazky.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/zakazky.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-14606a56b68df15e", "name": "Commented-code block (10 lines) in js/ar-stabilize.js:10", "shortDescription": {"text": "Commented-code block (10 lines) in js/ar-stabilize.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cf90ab43b568755", "name": "Commented-code block (5 lines) in js/offset-point.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/offset-point.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cc1282818fad1ef", "name": "Commented-code block (15 lines) in js/parcela.js:6", "shortDescription": {"text": "Commented-code block (15 lines) in js/parcela.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6434ecf61b3359cd", "name": "Commented-code block (7 lines) in js/compass-stability.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in js/compass-stability.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aee391d58ee6084e", "name": "Commented-code block (9 lines) in js/ar-intersection.js:6", "shortDescription": {"text": "Commented-code block (9 lines) in js/ar-intersection.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-731f5edbb1daa17b", "name": "Commented-code block (9 lines) in js/kalkulacka.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in js/kalkulacka.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3edf20fb151a4aee", "name": "Commented-code block (6 lines) in js/cuzk-geodata.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/cuzk-geodata.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31593681d8c2a905", "name": "Commented-code block (8 lines) in js/csv-validate.js:5", "shortDescription": {"text": "Commented-code block (8 lines) in js/csv-validate.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07f906f4e14e0463", "name": "Commented-code block (5 lines) in js/gnss-quality.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/gnss-quality.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7e18b360e7d44df", "name": "Commented-code block (7 lines) in js/zpravodaj.js:8", "shortDescription": {"text": "Commented-code block (7 lines) in js/zpravodaj.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0058f1a6a1485440", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/zpravodaj.js:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/zpravodaj.js:110"}, "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-816b3d08b93f0dbf", "name": "Commented-code block (7 lines) in js/ref-calibration.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in js/ref-calibration.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c06b9e19e3eeb27c", "name": "Commented-code block (6 lines) in js/kml-export.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in js/kml-export.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51936e662b50729d", "name": "Commented-code block (6 lines) in js/satelity.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/satelity.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-563414977bc35d6a", "name": "Commented-code block (7 lines) in js/vylepseni.js:8", "shortDescription": {"text": "Commented-code block (7 lines) in js/vylepseni.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81df2b6830559586", "name": "Commented-code block (6 lines) in js/dmt-volume.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in js/dmt-volume.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d06b1e61c7a9eab", "name": "Commented-code block (8 lines) in js/project-import.js:6", "shortDescription": {"text": "Commented-code block (8 lines) in js/project-import.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3a87b411bff1c88", "name": "Legacy-named symbol `agDmrElev_v1` in js/dmr-terrain.js:34", "shortDescription": {"text": "Legacy-named symbol `agDmrElev_v1` in js/dmr-terrain.js:34"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-084b3944bcde8071", "name": "Commented-code block (5 lines) in js/dmr-terrain.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/dmr-terrain.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-394941822e14993a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/predpisy.js:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/predpisy.js:42"}, "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-ac206087261c9a3e", "name": "Commented-code block (6 lines) in js/lib/jsqr.min.js:449", "shortDescription": {"text": "Commented-code block (6 lines) in js/lib/jsqr.min.js:449"}, "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-b38d982fce084474", "name": "Commented-code block (6 lines) in scripts/build-zpravodaj.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/build-zpravodaj.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20281"}, "properties": {"repository": "stepanvcelak11/ar-geodet", "repoUrl": "https://github.com/stepanvcelak11/ar-geodet", "branch": "main"}, "results": [{"ruleId": "scanner-998e70ab219f8393", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/check-distance.js:173"}, "properties": {"repobilityId": "fd8dcd30d0ec0384", "scanner": "scanner-primary", "fingerprint": "998e70ab219f8393", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c83b7eef09a28801", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/kalkulacka.js:882"}, "properties": {"repobilityId": "f81ba94d214c792d", "scanner": "scanner-primary", "fingerprint": "c83b7eef09a28801", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9e521b2dd12426ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/lib/proj4-2.9.0.min.js:1"}, "properties": {"repobilityId": "6a46087bfc791931", "scanner": "scanner-primary", "fingerprint": "9e521b2dd12426ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-137e3b6e85575a8e", "level": "warning", "message": {"text": "Privileged port 30 in use"}, "properties": {"repobilityId": "54f172e7d16fc662", "scanner": "scanner-primary", "fingerprint": "137e3b6e85575a8e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/zpravodaj.yml"}, "region": {"startLine": 1}}}]}, {"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-83562cd7ae22653d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:639"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "83562cd7ae22653d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 639}}}]}, {"ruleId": "scanner-4204f3fc1cbc025f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tutorial-pro.js:150"}, "properties": {"repobilityId": "64bd6cb6f81545b3", "scanner": "scanner-primary", "fingerprint": "4204f3fc1cbc025f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/tutorial-pro.js"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-0d6d54b5ffd1d225", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/cadastre-area.js:171"}, "properties": {"repobilityId": "d24906a1dd3a8dc0", "scanner": "scanner-primary", "fingerprint": "0d6d54b5ffd1d225", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/cadastre-area.js"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-433a05b3b82669c5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/power-save.js:249"}, "properties": {"repobilityId": "24b14906ee29ddb3", "scanner": "scanner-primary", "fingerprint": "433a05b3b82669c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/power-save.js"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-8a79d0d25756c771", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/sky-obstruction.js:126"}, "properties": {"repobilityId": "ab951a587e29c01c", "scanner": "scanner-primary", "fingerprint": "8a79d0d25756c771", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/sky-obstruction.js"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-af5587aa4f17d22f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/track-log.js:101"}, "properties": {"repobilityId": "c32c7e6b0297f397", "scanner": "scanner-primary", "fingerprint": "af5587aa4f17d22f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/track-log.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-b24bb09c903c8975", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/cadastre-vector.js:210"}, "properties": {"repobilityId": "9a76e62b1986472e", "scanner": "scanner-primary", "fingerprint": "b24bb09c903c8975", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/cadastre-vector.js"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-5e98efd99fd52b86", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gps-warn.js:60"}, "properties": {"repobilityId": "54c809b91ef9f624", "scanner": "scanner-primary", "fingerprint": "5e98efd99fd52b86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/gps-warn.js"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-6a1f16751ef564bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/geo-overlay.js:193"}, "properties": {"repobilityId": "556b242583256cb0", "scanner": "scanner-primary", "fingerprint": "6a1f16751ef564bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/geo-overlay.js"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-45d9800a8df63c63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kompas-check.js:29"}, "properties": {"repobilityId": "0bcb45cd3e10b45e", "scanner": "scanner-primary", "fingerprint": "45d9800a8df63c63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kompas-check.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-65ce9186219438cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/grafika.js:10"}, "properties": {"repobilityId": "f3eff63077d819fc", "scanner": "scanner-primary", "fingerprint": "65ce9186219438cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/grafika.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-d3d541cef300188a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/sdileni.js:69"}, "properties": {"repobilityId": "eb1e1a7d06ed14f4", "scanner": "scanner-primary", "fingerprint": "d3d541cef300188a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/sdileni.js"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-dfd9eaf684423cb5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/orient-point.js:42"}, "properties": {"repobilityId": "c601ac458008d07d", "scanner": "scanner-primary", "fingerprint": "dfd9eaf684423cb5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/orient-point.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-2b0f1255c972a9ac", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/calib-profiles.js:190"}, "properties": {"repobilityId": "5d4ce3978c2645c3", "scanner": "scanner-primary", "fingerprint": "2b0f1255c972a9ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/calib-profiles.js"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-ea4b565f4f958ae0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/ar-resection.js:181"}, "properties": {"repobilityId": "d1007e62134fdb92", "scanner": "scanner-primary", "fingerprint": "ea4b565f4f958ae0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/ar-resection.js"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-669d29416b442d6d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/check-distance.js:82"}, "properties": {"repobilityId": "1b86d7e5fcfa8bb2", "scanner": "scanner-primary", "fingerprint": "669d29416b442d6d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/check-distance.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-b52bab632a599832", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/stakeout-line.js:49"}, "properties": {"repobilityId": "f6428085088ace82", "scanner": "scanner-primary", "fingerprint": "b52bab632a599832", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/stakeout-line.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-ed38a58a1133ca0b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tachymetrie.js:105"}, "properties": {"repobilityId": "d43668e362a0d6ef", "scanner": "scanner-primary", "fingerprint": "ed38a58a1133ca0b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/tachymetrie.js"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-7a7cb3dbc72640f0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/vytycovani.js:55"}, "properties": {"repobilityId": "8ae43e9852b193b0", "scanner": "scanner-primary", "fingerprint": "7a7cb3dbc72640f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/vytycovani.js"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-0420b0fb46107b81", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/field-tools.js:65"}, "properties": {"repobilityId": "57e3b18dd997b567", "scanner": "scanner-primary", "fingerprint": "0420b0fb46107b81", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/field-tools.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-06b09a00801cd423", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tutorial.js:150"}, "properties": {"repobilityId": "b5648d9eb4c5e965", "scanner": "scanner-primary", "fingerprint": "06b09a00801cd423", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/tutorial.js"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-ce48b08ea91f9b56", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/zakazky.js:13"}, "properties": {"repobilityId": "67a04ccdadce6db1", "scanner": "scanner-primary", "fingerprint": "ce48b08ea91f9b56", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/zakazky.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-7de27cdfc4792bce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/offset-point.js:53"}, "properties": {"repobilityId": "424d45cb6f95b114", "scanner": "scanner-primary", "fingerprint": "7de27cdfc4792bce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/offset-point.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-7f30918933f24744", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/parcela.js:347"}, "properties": {"repobilityId": "a0bc1539d97d91fb", "scanner": "scanner-primary", "fingerprint": "7f30918933f24744", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/parcela.js"}, "region": {"startLine": 347}}}]}, {"ruleId": "scanner-e81fbb3939b2b739", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/compass-stability.js:109"}, "properties": {"repobilityId": "a0debcb6ab0d6eb8", "scanner": "scanner-primary", "fingerprint": "e81fbb3939b2b739", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/compass-stability.js"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-87a2f303e3316995", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/ar-intersection.js:118"}, "properties": {"repobilityId": "e959cd9cb5a7a266", "scanner": "scanner-primary", "fingerprint": "87a2f303e3316995", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/ar-intersection.js"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-c952a4f3d8535054", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in js/kalkulacka.js:643"}, "properties": {"repobilityId": "02236dd5f2426a55", "scanner": "scanner-primary", "fingerprint": "c952a4f3d8535054", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kalkulacka.js"}, "region": {"startLine": 643}}}]}, {"ruleId": "scanner-ccbc0a063981ce4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kalkulacka.js:45"}, "properties": {"repobilityId": "98793e0e124e66b4", "scanner": "scanner-primary", "fingerprint": "ccbc0a063981ce4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kalkulacka.js"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-b60ca4d4214446bd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/logika.js:192"}, "properties": {"repobilityId": "98725212fed380bb", "scanner": "scanner-primary", "fingerprint": "b60ca4d4214446bd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/logika.js"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-632292f10bbb97d9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/cuzk-geodata.js:38"}, "properties": {"repobilityId": "a171764a33c21bdd", "scanner": "scanner-primary", "fingerprint": "632292f10bbb97d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/cuzk-geodata.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-a2b45ef6409d7b89", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gnss-quality.js:114"}, "properties": {"repobilityId": "2d95af3b88e6f036", "scanner": "scanner-primary", "fingerprint": "a2b45ef6409d7b89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/gnss-quality.js"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-1b23a95300251494", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/zpravodaj.js:130"}, "properties": {"repobilityId": "4c2a8a64f897b978", "scanner": "scanner-primary", "fingerprint": "1b23a95300251494", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/zpravodaj.js"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-c26b29078ef2df90", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/ref-calibration.js:166"}, "properties": {"repobilityId": "26087bba84bf0fe2", "scanner": "scanner-primary", "fingerprint": "c26b29078ef2df90", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/ref-calibration.js"}, "region": {"startLine": 166}}}]}, {"ruleId": "scanner-424bb7baba4b17b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/pruvodce.js:39"}, "properties": {"repobilityId": "c813579b2f6c4778", "scanner": "scanner-primary", "fingerprint": "424bb7baba4b17b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/pruvodce.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-6b6eff021cfed9b4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kml-export.js:132"}, "properties": {"repobilityId": "dca27a40f74d9967", "scanner": "scanner-primary", "fingerprint": "6b6eff021cfed9b4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kml-export.js"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-f71bfcdf870330e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/satelity.js:77"}, "properties": {"repobilityId": "70ad2ff800e80bdb", "scanner": "scanner-primary", "fingerprint": "f71bfcdf870330e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/satelity.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-372bca418454953a", "level": "note", "message": {"text": "Insecure pattern 'document_write' in js/vylepseni.js:652"}, "properties": {"repobilityId": "b3693e09b85a5b96", "scanner": "scanner-primary", "fingerprint": "372bca418454953a", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/vylepseni.js"}, "region": {"startLine": 652}}}]}, {"ruleId": "scanner-c87b0fb88eb68ace", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/vylepseni.js:27"}, "properties": {"repobilityId": "b98448963d951696", "scanner": "scanner-primary", "fingerprint": "c87b0fb88eb68ace", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/vylepseni.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-841a907bcc67be09", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/dmt-volume.js:380"}, "properties": {"repobilityId": "522aed3f34b6fbd7", "scanner": "scanner-primary", "fingerprint": "841a907bcc67be09", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/dmt-volume.js"}, "region": {"startLine": 380}}}]}, {"ruleId": "scanner-e207cdea9c917ccf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/project-import.js:202"}, "properties": {"repobilityId": "2e46b8968707aab3", "scanner": "scanner-primary", "fingerprint": "e207cdea9c917ccf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/project-import.js"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-af753bf3ad8eb0d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/dmr-terrain.js:197"}, "properties": {"repobilityId": "835bcde030f46494", "scanner": "scanner-primary", "fingerprint": "af753bf3ad8eb0d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/dmr-terrain.js"}, "region": {"startLine": 197}}}]}, {"ruleId": "scanner-c5789bf6b7bfb13e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/predpisy.js:96"}, "properties": {"repobilityId": "7b0d64aa7973b3bd", "scanner": "scanner-primary", "fingerprint": "c5789bf6b7bfb13e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/predpisy.js"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-d3fbe97ddb5d489a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/lib/leaflet-1.9.4.js:5"}, "properties": {"repobilityId": "74f88ff1f9500c11", "scanner": "scanner-primary", "fingerprint": "d3fbe97ddb5d489a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/lib/leaflet-1.9.4.js"}, "region": {"startLine": 5}}}]}, {"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-af37b4c595bce388", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "49bbc6cbfd990c8b", "scanner": "scanner-primary", "fingerprint": "af37b4c595bce388", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/zpravodaj.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9ab4a08dc15b3361", "level": "note", "message": {"text": "Very large file: js/grafika.js (836 lines)"}, "properties": {"repobilityId": "964e89f5514d0e83", "scanner": "scanner-primary", "fingerprint": "9ab4a08dc15b3361", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e43ec6170b45bec3", "level": "note", "message": {"text": "Very large file: js/parcela.js (850 lines)"}, "properties": {"repobilityId": "3443f3ff9290e885", "scanner": "scanner-primary", "fingerprint": "e43ec6170b45bec3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9944bbf516b8e054", "level": "note", "message": {"text": "Very large file: js/kalkulacka.js (1064 lines)"}, "properties": {"repobilityId": "d0e552dc4e849904", "scanner": "scanner-primary", "fingerprint": "9944bbf516b8e054", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4e7440b97f4fadea", "level": "note", "message": {"text": "Very large file: js/lib/qrcode.min.js (2297 lines)"}, "properties": {"repobilityId": "506ed0a4f8d62711", "scanner": "scanner-primary", "fingerprint": "4e7440b97f4fadea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-269168f2fbd45241", "level": "note", "message": {"text": "Very large file: js/lib/jsqr.min.js (10101 lines)"}, "properties": {"repobilityId": "e2ce16d82f384a28", "scanner": "scanner-primary", "fingerprint": "269168f2fbd45241", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "17e6b4be08f79d54", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-01f96f71d9907a8c", "level": "note", "message": {"text": "README lacks setup or run instructions"}, "properties": {"repobilityId": "46b58561304532ed", "scanner": "scanner-primary", "fingerprint": "01f96f71d9907a8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "cf99e10fbb5cc873", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "72cfa1ff1d51ba3a", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "3ab4bbb8fa4be884", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "36c8244f0da0c08c", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "e5eda2830297094c", "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": "ea8215086eb2e522", "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": "7e505c5e4e96c500", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-47171e8e1b8df241", "level": "none", "message": {"text": "Commented-code block (5 lines) in sw.js:5"}, "properties": {"repobilityId": "285935facbf80e95", "scanner": "scanner-primary", "fingerprint": "47171e8e1b8df241", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc490b3d6b40b817", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/tutorial-pro.js:6"}, "properties": {"repobilityId": "80c292fda4a337c4", "scanner": "scanner-primary", "fingerprint": "cc490b3d6b40b817", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9777fc471677d6ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/cadastre-area.js:6"}, "properties": {"repobilityId": "33ce7ac0bdb56b6f", "scanner": "scanner-primary", "fingerprint": "9777fc471677d6ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8eaff01cb76e2f48", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/export.js:1"}, "properties": {"repobilityId": "30d02febacfed3fa", "scanner": "scanner-primary", "fingerprint": "8eaff01cb76e2f48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09b05b6fdce4ff7a", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/power-save.js:1"}, "properties": {"repobilityId": "2fbe78bae1022cdb", "scanner": "scanner-primary", "fingerprint": "09b05b6fdce4ff7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7b5d349da0eb9c8", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/sky-obstruction.js:13"}, "properties": {"repobilityId": "9e3117cd37590ea1", "scanner": "scanner-primary", "fingerprint": "f7b5d349da0eb9c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b05e1fa448c2dc6", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/track-log.js:1"}, "properties": {"repobilityId": "bf1895e7ae9f10bf", "scanner": "scanner-primary", "fingerprint": "0b05e1fa448c2dc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bef495cdc4aca88", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/cadastre-vector.js:5"}, "properties": {"repobilityId": "189c3dd332fcb5f8", "scanner": "scanner-primary", "fingerprint": "0bef495cdc4aca88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ccd9ebcbc7c31b8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/cadastre-vector.js:42"}, "properties": {"repobilityId": "17e6e90b7495e271", "scanner": "scanner-primary", "fingerprint": "9ccd9ebcbc7c31b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3c66771bb3016005", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/theme-dark.js:1"}, "properties": {"repobilityId": "58dabd2365b46d6d", "scanner": "scanner-primary", "fingerprint": "3c66771bb3016005", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46caffe2ccbb1220", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/gps-warn.js:6"}, "properties": {"repobilityId": "f02e9eacddd3636e", "scanner": "scanner-primary", "fingerprint": "46caffe2ccbb1220", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cd783813b25a0b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/geo-overlay.js:1"}, "properties": {"repobilityId": "b7fe8b43ae5e11f3", "scanner": "scanner-primary", "fingerprint": "5cd783813b25a0b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19af49c8c609616f", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/kompas-check.js:1"}, "properties": {"repobilityId": "4592f27e7e81ca36", "scanner": "scanner-primary", "fingerprint": "19af49c8c609616f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8afdd45e3578a20", "level": "note", "message": {"text": "Legacy-named symbol `arTutorialSeen_v1` in js/grafika.js:51"}, "properties": {"repobilityId": "535253a19985c575", "scanner": "scanner-primary", "fingerprint": "a8afdd45e3578a20", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9c48b8fee7d3831b", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/sdileni.js:1"}, "properties": {"repobilityId": "1ed53d56d6f16d7a", "scanner": "scanner-primary", "fingerprint": "9c48b8fee7d3831b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5f943a2936d7d1e", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/orient-point.js:1"}, "properties": {"repobilityId": "c3ec84577ee3eae1", "scanner": "scanner-primary", "fingerprint": "c5f943a2936d7d1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a80e472c1154cb1", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/calib-profiles.js:5"}, "properties": {"repobilityId": "dc337cfa2d04c758", "scanner": "scanner-primary", "fingerprint": "6a80e472c1154cb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-486c5769f9edd88f", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/ar-resection.js:6"}, "properties": {"repobilityId": "7a457e2ca579ee62", "scanner": "scanner-primary", "fingerprint": "486c5769f9edd88f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ff33bf60c003c74", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/check-distance.js:1"}, "properties": {"repobilityId": "8222869e4bcec32b", "scanner": "scanner-primary", "fingerprint": "3ff33bf60c003c74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcefc1310f584995", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/stakeout-line.js:1"}, "properties": {"repobilityId": "49a11b88a776437b", "scanner": "scanner-primary", "fingerprint": "bcefc1310f584995", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d60faa7c235a399", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/tachymetrie.js:1"}, "properties": {"repobilityId": "8a96a5d1fba35b0c", "scanner": "scanner-primary", "fingerprint": "3d60faa7c235a399", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20bee032063df427", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/vytycovani.js:1"}, "properties": {"repobilityId": "558dc0fc8c0c9712", "scanner": "scanner-primary", "fingerprint": "20bee032063df427", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d28b2a573a233750", "level": "none", "message": {"text": "Commented-code block (10 lines) in js/field-tools.js:1"}, "properties": {"repobilityId": "d32d4c4e9fc3d923", "scanner": "scanner-primary", "fingerprint": "d28b2a573a233750", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e5ea61ab516b203", "level": "note", "message": {"text": "Legacy-named symbol `arTutorialSeen_v1` in js/tutorial.js:7"}, "properties": {"repobilityId": "e494a92ef27461aa", "scanner": "scanner-primary", "fingerprint": "4e5ea61ab516b203", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2a76ce037f6e4c23", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/undo.js:1"}, "properties": {"repobilityId": "26599d35aed3bead", "scanner": "scanner-primary", "fingerprint": "2a76ce037f6e4c23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09e8828575e5b033", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/zakazky.js:1"}, "properties": {"repobilityId": "fee02cbc4d78f7b3", "scanner": "scanner-primary", "fingerprint": "09e8828575e5b033", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14606a56b68df15e", "level": "none", "message": {"text": "Commented-code block (10 lines) in js/ar-stabilize.js:10"}, "properties": {"repobilityId": "a3d28629ec6b7d3a", "scanner": "scanner-primary", "fingerprint": "14606a56b68df15e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cf90ab43b568755", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/offset-point.js:1"}, "properties": {"repobilityId": "393d3c3058eb098c", "scanner": "scanner-primary", "fingerprint": "8cf90ab43b568755", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cc1282818fad1ef", "level": "none", "message": {"text": "Commented-code block (15 lines) in js/parcela.js:6"}, "properties": {"repobilityId": "7ff76af58adb4265", "scanner": "scanner-primary", "fingerprint": "5cc1282818fad1ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6434ecf61b3359cd", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/compass-stability.js:5"}, "properties": {"repobilityId": "9fe6b3890de9c5d2", "scanner": "scanner-primary", "fingerprint": "6434ecf61b3359cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aee391d58ee6084e", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/ar-intersection.js:6"}, "properties": {"repobilityId": "c88150b13a2696cb", "scanner": "scanner-primary", "fingerprint": "aee391d58ee6084e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-731f5edbb1daa17b", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kalkulacka.js:1"}, "properties": {"repobilityId": "e271af86457c3570", "scanner": "scanner-primary", "fingerprint": "731f5edbb1daa17b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3edf20fb151a4aee", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/cuzk-geodata.js:1"}, "properties": {"repobilityId": "e903cb1b0d09d34f", "scanner": "scanner-primary", "fingerprint": "3edf20fb151a4aee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31593681d8c2a905", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/csv-validate.js:5"}, "properties": {"repobilityId": "ccd9ab3f77edc02c", "scanner": "scanner-primary", "fingerprint": "31593681d8c2a905", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07f906f4e14e0463", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/gnss-quality.js:1"}, "properties": {"repobilityId": "d7f03bb39a114e80", "scanner": "scanner-primary", "fingerprint": "07f906f4e14e0463", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7e18b360e7d44df", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/zpravodaj.js:8"}, "properties": {"repobilityId": "6569d53eb9836eac", "scanner": "scanner-primary", "fingerprint": "c7e18b360e7d44df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0058f1a6a1485440", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/zpravodaj.js:110"}, "properties": {"repobilityId": "0bcb7c14824b35b3", "scanner": "scanner-primary", "fingerprint": "0058f1a6a1485440", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-816b3d08b93f0dbf", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/ref-calibration.js:5"}, "properties": {"repobilityId": "71d3ba1f40f7115a", "scanner": "scanner-primary", "fingerprint": "816b3d08b93f0dbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c06b9e19e3eeb27c", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kml-export.js:8"}, "properties": {"repobilityId": "7877bd8769fa3146", "scanner": "scanner-primary", "fingerprint": "c06b9e19e3eeb27c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51936e662b50729d", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/satelity.js:1"}, "properties": {"repobilityId": "5a3e24d382687918", "scanner": "scanner-primary", "fingerprint": "51936e662b50729d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-563414977bc35d6a", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/vylepseni.js:8"}, "properties": {"repobilityId": "1e5f378a036a3af1", "scanner": "scanner-primary", "fingerprint": "563414977bc35d6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81df2b6830559586", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/dmt-volume.js:1"}, "properties": {"repobilityId": "e1b25fdae13904f7", "scanner": "scanner-primary", "fingerprint": "81df2b6830559586", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d06b1e61c7a9eab", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/project-import.js:6"}, "properties": {"repobilityId": "e05fb472ad03ca5f", "scanner": "scanner-primary", "fingerprint": "9d06b1e61c7a9eab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3a87b411bff1c88", "level": "note", "message": {"text": "Legacy-named symbol `agDmrElev_v1` in js/dmr-terrain.js:34"}, "properties": {"repobilityId": "2dbeb62feba45e3c", "scanner": "scanner-primary", "fingerprint": "a3a87b411bff1c88", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-084b3944bcde8071", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/dmr-terrain.js:1"}, "properties": {"repobilityId": "7dd1e79a097776d2", "scanner": "scanner-primary", "fingerprint": "084b3944bcde8071", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-394941822e14993a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/predpisy.js:42"}, "properties": {"repobilityId": "1ba68bcbff0ea448", "scanner": "scanner-primary", "fingerprint": "394941822e14993a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ac206087261c9a3e", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/lib/jsqr.min.js:449"}, "properties": {"repobilityId": "97acffda837b1b29", "scanner": "scanner-primary", "fingerprint": "ac206087261c9a3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b38d982fce084474", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/build-zpravodaj.mjs:4"}, "properties": {"repobilityId": "d93909362d2424bc", "scanner": "scanner-primary", "fingerprint": "b38d982fce084474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}