{"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-0370cece6457a79f", "name": "Stray `console.log` in TS/JS \u2014 design-explorer/build.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 design-explorer/build.js:36"}, "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-da8519faeb9fcfa2", "name": "Stray `console.log` in TS/JS \u2014 tests/setup.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/setup.js:46"}, "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-7e300b3d8e381e5c", "name": "Stray `console.log` in TS/JS \u2014 tests/integration/administrator.test.js:224", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/administrator.test.js:224"}, "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-211c34a6e915ec20", "name": "Stray `console.log` in TS/JS \u2014 tests/integration/passwordValidation.test.js:649", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/passwordValidation.test.js:649"}, "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-c16d8627cedc0d69", "name": "Stray `console.log` in TS/JS \u2014 tests/integration/emailService.integration.test.js:228", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/emailService.integration.test.js:228"}, "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-a615db48c95a2c20", "name": "TODO/FIXME marker in shipping code \u2014 tests/integration/auth.test.js:716", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 tests/integration/auth.test.js:716"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b1bf344b2f3a3b3", "name": "Stray `console.log` in TS/JS \u2014 tests/integration/auth.test.js:772", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/auth.test.js:772"}, "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-f8d6597b4d8aed5c", "name": "Stray `console.log` in TS/JS \u2014 tests/unit/createAdminScript.test.js:432", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/createAdminScript.test.js:432"}, "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-b6b698063468da99", "name": "Stray `console.log` in TS/JS \u2014 tests/unit/cspHelper.test.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/cspHelper.test.js:39"}, "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-7e373cd6d6cfbec0", "name": "Stray `console.log` in TS/JS \u2014 tests/helpers/autoUpdateCsrf.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/autoUpdateCsrf.js:65"}, "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-141c75079cd8ecf8", "name": "Stray `console.log` in TS/JS \u2014 tests/helpers/fixIntegrationTests.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/fixIntegrationTests.js:40"}, "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-5b7d2cd4406f4b58", "name": "TODO/FIXME marker in shipping code \u2014 tests/helpers/commentNonExistentTests.js:32", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 tests/helpers/commentNonExistentTests.js:32"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-033acac76bab824b", "name": "Stray `console.log` in TS/JS \u2014 tests/helpers/commentNonExistentTests.js:109", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/commentNonExistentTests.js:109"}, "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-43c4e61704b613ae", "name": "Stray `console.log` in TS/JS \u2014 tests/helpers/updateTestsForCsrf.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/updateTestsForCsrf.js:56"}, "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-483c22fc3a8f19f8", "name": "Stray `console.log` in TS/JS \u2014 tests/e2e/static-server.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/e2e/static-server.js:11"}, "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-29b75dca18d752ce", "name": "Stray `console.log` in TS/JS \u2014 docs/parent-iframe-bridge.js:338", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/parent-iframe-bridge.js:338"}, "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-16027455db827b25", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-i18n-parity.js:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-i18n-parity.js:206"}, "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-f9a0d23f64c1bbcc", "name": "Stray `console.log` in TS/JS \u2014 scripts/adb-heartbeat.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/adb-heartbeat.js:37"}, "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-cf20880158c46dc7", "name": "Stray `console.log` in TS/JS \u2014 scripts/whitelist-access-ip.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/whitelist-access-ip.js:34"}, "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-45a3d52923f392a8", "name": "Stray `console.log` in TS/JS \u2014 scripts/create-franchise-preview.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/create-franchise-preview.js:30"}, "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-634e73129fd9ff69", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-claim-bag.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-claim-bag.js:39"}, "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-7ea2965689881920", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-access-gate.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-access-gate.js:23"}, "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-06c41f5c5b41695c", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-assets.js:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-assets.js:66"}, "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-c9769d2a1fe1dea3", "name": "Stray `console.log` in TS/JS \u2014 scripts/ensure-indexes.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-indexes.js:42"}, "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-096977b82e527451", "name": "Stray `console.log` in TS/JS \u2014 scripts/revoke-franchise-preview.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/revoke-franchise-preview.js:26"}, "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-5a914b538de26849", "name": "Stray `console.log` in TS/JS \u2014 scripts/security/decrypt-oauth-tokens.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/security/decrypt-oauth-tokens.js:37"}, "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-c7669d8bd959ff7e", "name": "Stray `console.log` in TS/JS \u2014 scripts/security/extract-public-key.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/security/extract-public-key.js:12"}, "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-2eeeca089ed446dc", "name": "Stray `console.log` in TS/JS \u2014 scripts/security/encrypt-oauth-tokens.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/security/encrypt-oauth-tokens.js:30"}, "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-29786bd6bd880755", "name": "Stray `console.log` in TS/JS \u2014 scripts/ops/configure-mailcow.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/configure-mailcow.js:33"}, "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-db246eb81b50b61e", "name": "Stray `console.log` in TS/JS \u2014 scripts/ops/update-payment-interval.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/update-payment-interval.js:20"}, "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-e4b3dceb0a28d326", "name": "Stray `console.log` in TS/JS \u2014 scripts/ops/resend-welcome-email.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/resend-welcome-email.js:13"}, "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-126206abf599a820", "name": "Stray `console.log` in TS/JS \u2014 scripts/ops/configure-mailcow-direct.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/configure-mailcow-direct.js:20"}, "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-e164e9f10baee8b2", "name": "Stray `console.log` in TS/JS \u2014 scripts/ops/update-mailcow-url.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/update-mailcow-url.js:19"}, "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-a0b200440e2b318d", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/update-admin-email.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/update-admin-email.js:11"}, "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-a0dd3e7444ef499e", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password-direct.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password-direct.js:16"}, "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-ca100fdee96f894a", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password.js:61"}, "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-37ce85975d0d5f5f", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password-quick.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password-quick.js:18"}, "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-c0b80d872e8c8c44", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-operator-quick.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-operator-quick.js:19"}, "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-e6f4e8297dc991de", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/clear-admin-session.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/clear-admin-session.js:14"}, "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-6c6a6a5f3afc2765", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/restore-database.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/restore-database.js:28"}, "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-1fcc44639da9d367", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-admin-directly.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-admin-directly.js:70"}, "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-4a9391e8f47af454", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/delete-admin-operators.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/delete-admin-operators.js:10"}, "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-d98ff48210e73701", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/backup-database.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/backup-database.js:19"}, "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-8a1f206d3f7e61ff", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-admin-quick.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-admin-quick.js:19"}, "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-4dafe74924150a7c", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/verify-admin.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/verify-admin.js:12"}, "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-b586b5ed7fb5dfe4", "name": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-rate-limits.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-rate-limits.js:30"}, "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-1e4806b4e73530c4", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-emails.js:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-emails.js:72"}, "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-1c7aff39a0ab9772", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/build-registry.js:272", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/build-registry.js:272"}, "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-83a8ae87f5d2c91e", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-corporate-data.js:224", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-corporate-data.js:224"}, "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-b36db4ca0029d373", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-place-ids.js:76", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-place-ids.js:76"}, "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-ef5de6c5cc9a339e", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/probe-images.js:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/probe-images.js:91"}, "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-d300838a44a343ff", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/regeocode-locations.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/regeocode-locations.js:61"}, "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-ac75ed8269f4caca", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/build-franchise-host.js:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/build-franchise-host.js:67"}, "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-66a119542652b241", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/mirror-location-images.js:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/mirror-location-images.js:120"}, "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-827be6ba7e217397", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-landmarks.js:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-landmarks.js:173"}, "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-630bded3d3fe1411", "name": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-street-view.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-street-view.js:97"}, "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-fa860eff5e3d8cf7", "name": "Stray `console.log` in TS/JS \u2014 scripts/diagnostics/check-initialization.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diagnostics/check-initialization.js:16"}, "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-e3d9227f4e43734a", "name": "Stray `console.log` in TS/JS \u2014 scripts/diagnostics/check-data-distribution.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diagnostics/check-data-distribution.js:10"}, "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-39fed963f3e7d194", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/clean-collections.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/clean-collections.js:21"}, "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-987101092566a3d8", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/reset-database.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/reset-database.js:16"}, "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-af70165425329ea8", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/clean-install-db.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/clean-install-db.js:23"}, "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-283b947bfeec6394", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/generate-service-area.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/generate-service-area.js:36"}, "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-2ba150829fdb214b", "name": "Stray `console.log` in TS/JS \u2014 scripts/setup/generate-sample-data.js:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/generate-sample-data.js:95"}, "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-189d83092f35eb9c", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-landing-init.js:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-landing-init.js:64"}, "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-1e1acf4d04fe8f9f", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/admin-operator-fix.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/admin-operator-fix.js:2"}, "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-763d68e60ffe0865", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/administrator-dashboard-init.js:227", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/administrator-dashboard-init.js:227"}, "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-930dfa3acca00050", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-login-init.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-login-init.js:10"}, "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-69493d7d71e48772", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-login-init.js:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-login-init.js:49"}, "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-67c402d903857940", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/terms-and-conditions.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/terms-and-conditions.js:2"}, "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-451bcca08311e5c1", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-login.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-login.js:2"}, "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-61c10db8a2c98dd1", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-register-page-init.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-register-page-init.js:7"}, "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-5f2131b07526a1d9", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/test-operator-scan.js:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/test-operator-scan.js:53"}, "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-9fe848e64238ffdd", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-login-init.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-login-init.js:5"}, "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-523c793e74382c91", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-dashboard.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-dashboard.js:6"}, "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-d31140ed5a9a4ca9", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/order-confirmation-init.js:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/order-confirmation-init.js:4"}, "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-0f698ac2ad29c81d", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/wash-dry-fold-modern.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/wash-dry-fold-modern.js:5"}, "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-db10f83d687393b5", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/order-confirmation-embed.js:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/order-confirmation-embed.js:67"}, "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-99604998fa24ca20", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/iframe-bridge-v2.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/iframe-bridge-v2.js:6"}, "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-1e9377d4027adc29", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-dashboard-init.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-dashboard-init.js:20"}, "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-c2c53a1867aa36e0", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-scan-init.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-scan-init.js:56"}, "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-b82eb6e6095c9599", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/label-print-utils.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/label-print-utils.js:5"}, "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-fb04f47f16df92d4", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/self-serve-laundry-modern.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/self-serve-laundry-modern.js:5"}, "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-5b775c18a75a896e", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-success-init.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-success-init.js:58"}, "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-1e1dd4ec48713a20", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-v2.min.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-v2.min.js:2"}, "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-ea36142beb7fb93e", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/csrf-utils.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/csrf-utils.js:73"}, "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-c4f2870735419c0d", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/reset-password-init.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/reset-password-init.js:5"}, "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-890a8d73633f207d", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-auto-login.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-auto-login.js:10"}, "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-643d405960c51100", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/i18n.js:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/i18n.js:47"}, "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-91c2e5ae63944491", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/language-switcher.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/language-switcher.js:18"}, "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-04ad426388f805c9", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-navigation.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-navigation.js:15"}, "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-e903f488e871e1dc", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-redirect.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-redirect.js:19"}, "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-b89fcdc1b9173c9e", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-register-init.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-register-init.js:5"}, "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-fccbea020f6c31cd", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/swirl-spinner.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/swirl-spinner.js:6"}, "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-f7b69dad0c2d8b0d", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/iframe-bridge-v2.min.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/iframe-bridge-v2.min.js:2"}, "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-0508b97362f29686", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/api-client.js:117", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/api-client.js:117"}, "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-2c51a3e281e3ad04", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/parent-test.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/parent-test.js:104"}, "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-d081796b64f6003c", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/address-validator.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/address-validator.js:19"}, "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-a3ac4d4756279af1", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/forgot-password-init.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/forgot-password-init.js:5"}, "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-0f0bcff355646c36", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/registration-success.js:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/registration-success.js:4"}, "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-ecf9d76e81e1611b", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-landing-init.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-landing-init.js:5"}, "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-a282dbcf984376fb", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/revenue-calculator.js:3", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/revenue-calculator.js:3"}, "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-b9920d939363c919", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/service-area-autocomplete.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/service-area-autocomplete.js:17"}, "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-eaefcb6e3251c442", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/site-page-loader.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/site-page-loader.js:33"}, "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-e4a1962c475d2f41", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/form-validation.js:289", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/form-validation.js:289"}, "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-80dc7ffe4620b167", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-v2.js:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-v2.js:95"}, "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-8b31912343e5be7e", "name": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-login-embed.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-login-embed.js:35"}, "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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8987d6d1c30c7202", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6079bb4644fc307a", "name": "Insecure pattern 'cors_wildcard' in server.js:247", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in server.js:247"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a20554d0d494fbe5", "name": "Possible secret in init-defaults.js", "shortDescription": {"text": "Possible secret in init-defaults.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-843983239740c01f", "name": "Possible secret in scripts/ops/configure-mailcow-direct.js", "shortDescription": {"text": "Possible secret in scripts/ops/configure-mailcow-direct.js"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a8d130ba168e928d", "name": "Possible secret in scripts/admin/reset-admin-password-direct.js", "shortDescription": {"text": "Possible secret in scripts/admin/reset-admin-password-direct.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-aa888828c98e5f9f", "name": "Possible secret in scripts/admin/create-operator-quick.js", "shortDescription": {"text": "Possible secret in scripts/admin/create-operator-quick.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-aab0dfa6ceb33db5", "name": "Possible secret in scripts/admin/create-admin-quick.js", "shortDescription": {"text": "Possible secret in scripts/admin/create-admin-quick.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-09168d0cd62084fd", "name": "Insecure pattern 'node_child_process' in scripts/setup/clean-install-db.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/setup/clean-install-db.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93d5deb362ef6087", "name": "Possible secret in scripts/setup/clean-and-reinit-db.js", "shortDescription": {"text": "Possible secret in scripts/setup/clean-and-reinit-db.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-272a3c093b7da980", "name": "Possible secret in scripts/setup/init-admin.js", "shortDescription": {"text": "Possible secret in scripts/setup/init-admin.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-3f2add9734f5eace", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/order-labels.html:244", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/order-labels.html:244"}, "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-332724bb909c4110", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/monitoring-dashboard.html:289", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/monitoring-dashboard.html:289"}, "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-45fcba3c2c83d3b9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/wavemax-development-prompt.html:978", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/wavemax-development-prompt.html:978"}, "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-a67f2eca95f8d0ed", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/design-explorer/explorer.js:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/design-explorer/explorer.js:51"}, "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-010f48f8cf66ea53", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-landing-init.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-landing-init.js:23"}, "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-55297c1164f7a3a9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/administrator-dashboard-init.js:272", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/administrator-dashboard-init.js:272"}, "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-d54fee0047242964", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-login-init.js:90", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-login-init.js:90"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc5d513bf4537b4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/operator-login-init.js:71", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/operator-login-init.js:71"}, "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-0f22c9b8f725518d", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/operator-login-init.js:87", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/operator-login-init.js:87"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6befe4478d52a44", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-i18n.js:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-i18n.js:93"}, "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-f17943fa18927391", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-login.js:97", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-login.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-efd3773c534ebe54", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-locations-modal.js:161", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-locations-modal.js:161"}, "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-46328c526c891615", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/jspdf.min.js:134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/jspdf.min.js:134"}, "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-bbc05c2693ca438b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/test-operator-scan.js:140", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/test-operator-scan.js:140"}, "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-cea858e70ef80c7c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/franchise-reviews-slider.js:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/franchise-reviews-slider.js:54"}, "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-8d74342aab1ee937", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/customer-login-init.js:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/customer-login-init.js:57"}, "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-beb890e2f1e0f06b", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/customer-login-init.js:148", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/customer-login-init.js:148"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af2fa590c5be7bc7", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/customer-dashboard.js:182", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/customer-dashboard.js:182"}, "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-b67ae3e3c304b1f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/order-confirmation-init.js:322", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/order-confirmation-init.js:322"}, "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-cc5f024e37313384", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/modal-utils.js:142", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/modal-utils.js:142"}, "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-4d3e6bba5e1502d0", "name": "Insecure pattern 'insert_adjacent_html' in public/assets/js/modal-utils.js:97", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in public/assets/js/modal-utils.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e41027e3aea7f720", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-landing-init.js:424", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-landing-init.js:424"}, "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-a93066b8323c4c96", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/network-reviews-init.js:75", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/network-reviews-init.js:75"}, "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-416946be0d0ed3a8", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/claim.js:213", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/claim.js:213"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-21d54d2d7de1414c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/order-confirmation-embed.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/order-confirmation-embed.js:48"}, "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-484e0562d92abcc1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/iframe-bridge-v2.js:295", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/iframe-bridge-v2.js:295"}, "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-9d7230954752e2e2", "name": "Possible secret in public/assets/js/password-validator-component.js", "shortDescription": {"text": "Possible secret in public/assets/js/password-validator-component.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-1c8e263107d067c7", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/password-validator-component.js:203", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/password-validator-component.js:203"}, "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-e99e3cd9ce523275", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-dashboard-init.js:615", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-dashboard-init.js:615"}, "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-e11d99bb4cd0d29a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/operator-scan-init.js:96", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/operator-scan-init.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-f79011b4e375ea6d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/parent-iframe-bridge-v3.js:367", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/parent-iframe-bridge-v3.js:367"}, "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-2fe23eac8319f195", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/self-serve-laundry-modern.js:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/self-serve-laundry-modern.js:213"}, "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-942fc88fb668f448", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/embed-app-v2.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/embed-app-v2.min.js:2"}, "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-b6fd3fb176d89304", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-landing-init.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-landing-init.min.js:2"}, "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-7a347ec23e2040e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/reset-password-init.js:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/reset-password-init.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-b50c99e4f96eb52e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-about-init.js:372", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-about-init.js:372"}, "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-d48048a6e8fe3578", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/operator-auto-login.js:25", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/operator-auto-login.js:25"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9b52e33271ab44b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/language-switcher.js:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/language-switcher.js:76"}, "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-d30ed10e341c231a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/pricing-preview-component.js:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/pricing-preview-component.js:92"}, "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-4eab0ec87f9b9baf", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/parent-iframe-bridge-v3.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/parent-iframe-bridge-v3.min.js:2"}, "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-94cf4d8ef05f24a9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-register-init.js:242", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-register-init.js:242"}, "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-2be0fd2ba797cdcc", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-register-init.js:693", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-register-init.js:693"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ddc00d4795475ad8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-chrome.js:341", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-chrome.js:341"}, "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-7584f3dbda6d84ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/swirl-spinner.js:75", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/swirl-spinner.js:75"}, "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-2e98e5b948b6c0cd", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-host-mock.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-host-mock.min.js:2"}, "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-2e5b2739ff874dc9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/iframe-bridge-v2.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/iframe-bridge-v2.min.js:2"}, "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-75f68c1b09759858", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/address-validation-component.js:99", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/address-validation-component.js:99"}, "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-c498baec56b5a019", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/errorHandler.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/errorHandler.js:16"}, "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-9389947f4d2a7cee", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-host-mock.js:108", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-host-mock.js:108"}, "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-999d040b5833fbee", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/administrator-login-init.js:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/administrator-login-init.js:88"}, "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-9b36638f30d2d3f4", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/administrator-login-init.js:106", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/administrator-login-init.js:106"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b4042311864a82c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/forgot-password-init.js:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/forgot-password-init.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-2437b91760a8b578", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-contact-init.js:415", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-contact-init.js:415"}, "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-e7c78b40c2cf60a9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/site-page-loader.js:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/site-page-loader.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-cda183a7c8166b16", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/embed-app-v2.js:342", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/embed-app-v2.js:342"}, "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-686336790e9c5a79", "name": "Insecure pattern 'local_storage_auth_token' in public/assets/js/customer-login-embed.js:98", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/customer-login-embed.js:98"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8982ba0b706f69d4", "name": "Very large file: server.js (1197 lines)", "shortDescription": {"text": "Very large file: server.js (1197 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-8dfa3cdb55554183", "name": "Very large file: design-explorer/content-model.js (990 lines)", "shortDescription": {"text": "Very large file: design-explorer/content-model.js (990 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-0397326cdaa19899", "name": "Very large file: tests/unit/administratorController.test.js (1931 lines)", "shortDescription": {"text": "Very large file: tests/unit/administratorController.test.js (1931 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-bc083f8bad2e3e4e", "name": "Very large file: public/assets/js/administrator-dashboard-init.js (2903 lines)", "shortDescription": {"text": "Very large file: public/assets/js/administrator-dashboard-init.js (2903 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-c9d72582ac021da9", "name": "Very large file: public/assets/js/wash-dry-fold-translations.js (1036 lines)", "shortDescription": {"text": "Very large file: public/assets/js/wash-dry-fold-translations.js (1036 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-547911e24bd353cd", "name": "Very large file: public/assets/js/affiliate-register-init.js (1387 lines)", "shortDescription": {"text": "Very large file: public/assets/js/affiliate-register-init.js (1387 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-828500275e50d2d6", "name": "Very large file: public/assets/js/austin-host-mock.js (1091 lines)", "shortDescription": {"text": "Very large file: public/assets/js/austin-host-mock.js (1091 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-c1c50b392d6630c3", "name": "46 TODO/FIXME markers", "shortDescription": {"text": "46 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "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 1080 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 95 placeholder/mock markers across 43 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e761870cc2b3bd9", "name": "Agent instruction/config may expose a secret: .claude/claude.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/claude.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af90a5f4039a88a8", "name": "Commented-code block (5 lines) in server.js:40", "shortDescription": {"text": "Commented-code block (5 lines) in server.js:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92e17e9f7533f600", "name": "Commented-code block (5 lines) in design-explorer/content-model.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in design-explorer/content-model.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-25b16314f32e71f0", "name": "Commented-code block (6 lines) in tests/integration/seoCrawlability.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/seoCrawlability.test.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-31841e951143560c", "name": "Commented-code block (6 lines) in tests/integration/assetCaching.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/assetCaching.test.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-1385d9ed5014997f", "name": "Commented-code block (5 lines) in tests/integration/pr2RemovedRoutes.test.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/pr2RemovedRoutes.test.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-1b6823a4f1ea381f", "name": "Commented-code block (5 lines) in tests/integration/securityHeaders.test.js:97", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/securityHeaders.test.js:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28a6daffa47781ba", "name": "Commented-code block (5 lines) in tests/integration/contact-submit.test.js:184", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/contact-submit.test.js:184"}, "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-390e84694774d33f", "name": "Commented-code block (5 lines) in tests/integration/v1PaymentRemoval.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/v1PaymentRemoval.test.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-5d036f9a109d3bd2", "name": "Commented-code block (5 lines) in tests/integration/orderIntakeRace.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/orderIntakeRace.test.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-71fcb2846adfcd7e", "name": "Commented-code block (6 lines) in tests/integration/locationQuarantine.test.js:279", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/locationQuarantine.test.js:279"}, "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-1db352f953bce693", "name": "Commented-code block (7 lines) in tests/unit/mongoCursorRetry.test.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/mongoCursorRetry.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08d059b8430b5f5d", "name": "Commented-code block (6 lines) in tests/unit/emailServiceAdditional.test.js:270", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/emailServiceAdditional.test.js:270"}, "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-19894e67d379cac9", "name": "Commented-code block (6 lines) in tests/unit/connectivityMonitorMongo.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/connectivityMonitorMongo.test.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-bf1787e1ecd8c298", "name": "Commented-code block (6 lines) in tests/unit/emailDispatcherRelocation.test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/emailDispatcherRelocation.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ffe0864b6d005b65", "name": "Commented-code block (5 lines) in tests/unit/design-explorer/concierge.test.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/design-explorer/concierge.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca27eab510cae5f1", "name": "Commented-code block (9 lines) in scripts/check-i18n-parity.js:6", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/check-i18n-parity.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-fcbbb848d9b1d653", "name": "Commented-code block (6 lines) in scripts/adb-heartbeat.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/adb-heartbeat.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c71c8d2e41b3edb", "name": "Commented-code block (7 lines) in scripts/whitelist-access-ip.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/whitelist-access-ip.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f63439f47a5e587", "name": "Commented-code block (5 lines) in scripts/seed-access-gate.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-access-gate.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-f1081e36542cf1d1", "name": "Commented-code block (8 lines) in scripts/ensure-indexes.js:5", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/ensure-indexes.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-0512c59ea825f6fd", "name": "Commented-code block (5 lines) in scripts/franchise-build/build-registry.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/franchise-build/build-registry.js:33"}, "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-eaa75c5dce9d48e2", "name": "Commented-code block (5 lines) in scripts/franchise-build/fetch-corporate-data.js:68", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/franchise-build/fetch-corporate-data.js:68"}, "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-b9ae0abc01a0e435", "name": "Commented-code block (5 lines) in scripts/franchise-build/regeocode-locations.js:66", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/franchise-build/regeocode-locations.js:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-309367e7aced9ef3", "name": "Commented-code block (7 lines) in crhsent/wavemax/app.js:13", "shortDescription": {"text": "Commented-code block (7 lines) in crhsent/wavemax/app.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-077cf7f28dd67734", "name": "`fetch()` without try/.catch or AbortSignal \u2014 crhsent/wavemax/app.js:90", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 crhsent/wavemax/app.js:90"}, "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-b99b5981a83c3677", "name": "Commented-code block (5 lines) in server/models/AccessWhitelist.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/models/AccessWhitelist.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38590f9e154ab34a", "name": "Commented-code block (5 lines) in server/models/Order.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/models/Order.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-243db10c3dfea0ff", "name": "Commented-code block (5 lines) in server/models/AccessRequest.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/models/AccessRequest.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a4aacf9e62a17d7", "name": "Commented-code block (5 lines) in server/models/FranchisePreviewRequest.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in server/models/FranchisePreviewRequest.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-497fc0d227ae06ec", "name": "Commented-code block (5 lines) in server/monitoring/connectivity-monitor.js:69", "shortDescription": {"text": "Commented-code block (5 lines) in server/monitoring/connectivity-monitor.js:69"}, "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-c3e05a960b1eca2c", "name": "Commented-code block (5 lines) in server/config/quarantineConfig.js:45", "shortDescription": {"text": "Commented-code block (5 lines) in server/config/quarantineConfig.js:45"}, "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-429c2a01c40a818c", "name": "Commented-code block (5 lines) in server/config/domainSeoOverrides.js:26", "shortDescription": {"text": "Commented-code block (5 lines) in server/config/domainSeoOverrides.js:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be4dd8f36747a220", "name": "Commented-code block (5 lines) in server/config/franchisePreviewCopy.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/config/franchisePreviewCopy.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-c484c4e57f0dc8a9", "name": "Commented-code block (11 lines) in server/config/csrf-config.js:251", "shortDescription": {"text": "Commented-code block (11 lines) in server/config/csrf-config.js:251"}, "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-00bb3d15dade7314", "name": "Commented-code block (5 lines) in server/middleware/rateLimitMongoStore.js:53", "shortDescription": {"text": "Commented-code block (5 lines) in server/middleware/rateLimitMongoStore.js:53"}, "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-da66d5f89619f8c2", "name": "Commented-code block (5 lines) in server/middleware/auth.js:50", "shortDescription": {"text": "Commented-code block (5 lines) in server/middleware/auth.js:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70c959e97f7c07f0", "name": "Commented-code block (10 lines) in server/middleware/explorerGuard.js:3", "shortDescription": {"text": "Commented-code block (10 lines) in server/middleware/explorerGuard.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0679caa51424f4eb", "name": "Commented-code block (6 lines) in server/middleware/accessGate.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/middleware/accessGate.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-8efc519d5a8510be", "name": "Commented-code block (10 lines) in server/middleware/comingSoon.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in server/middleware/comingSoon.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-2965001c890c1b5e", "name": "Commented-code block (6 lines) in server/middleware/errorHandler.js:123", "shortDescription": {"text": "Commented-code block (6 lines) in server/middleware/errorHandler.js:123"}, "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-f42442404291eec8", "name": "Commented-code block (6 lines) in server/middleware/franchisePreview.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/middleware/franchisePreview.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a42a5ffcf54bd6f", "name": "Commented-code block (6 lines) in server/middleware/rateLimiting.js:18", "shortDescription": {"text": "Commented-code block (6 lines) in server/middleware/rateLimiting.js:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd023d6a372ad2e1", "name": "Commented-code block (8 lines) in server/utils/mongoOracleDiagnostics.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in server/utils/mongoOracleDiagnostics.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71d1f8073ce853c1", "name": "Commented-code block (8 lines) in server/utils/mongoCursorRetry.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in server/utils/mongoCursorRetry.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6e04d549323ade4", "name": "Commented-code block (5 lines) in server/utils/emailService.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/utils/emailService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87ff6373675a1e51", "name": "Commented-code block (5 lines) in server/utils/roleCodes.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/utils/roleCodes.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e57733efc46f2e5e", "name": "Commented-code block (5 lines) in server/routes/contactRoutes.js:42", "shortDescription": {"text": "Commented-code block (5 lines) in server/routes/contactRoutes.js:42"}, "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-7e094a677cebc21a", "name": "Commented-code block (5 lines) in server/modules/orders/orderStateMachine.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/modules/orders/orderStateMachine.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0fe074cba964950", "name": "Commented-code block (5 lines) in server/modules/orders/openOrderContext.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/modules/orders/openOrderContext.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-079a0bca148ee195", "name": "Commented-code block (5 lines) in server/modules/orders/orderTransitionService.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/modules/orders/orderTransitionService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6c6f34fe9d73c80", "name": "Commented-code block (5 lines) in server/modules/bags/Bag.js:48", "shortDescription": {"text": "Commented-code block (5 lines) in server/modules/bags/Bag.js:48"}, "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-3e19db39173b774a", "name": "Commented-code block (6 lines) in server/modules/bags/labelSheetService.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in server/modules/bags/labelSheetService.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-b62cdc5a7a99a281", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/modules/bags/labelSheetService.js:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/modules/bags/labelSheetService.js:32"}, "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-f4bc51c64baaab7f", "name": "Commented-code block (5 lines) in server/modules/bags/bagController.js:13", "shortDescription": {"text": "Commented-code block (5 lines) in server/modules/bags/bagController.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-d25348e4b77fc32b", "name": "Commented-code block (5 lines) in server/controllers/locationController.js:12", "shortDescription": {"text": "Commented-code block (5 lines) in server/controllers/locationController.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58329d336ed4be1f", "name": "Commented-code block (5 lines) in server/controllers/franchiseController.js:123", "shortDescription": {"text": "Commented-code block (5 lines) in server/controllers/franchiseController.js:123"}, "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-25bdac96500f3e61", "name": "Commented-code block (5 lines) in server/controllers/bagActionController.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/controllers/bagActionController.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-032bb7683d71cac4", "name": "Commented-code block (6 lines) in server/controllers/authController.js:271", "shortDescription": {"text": "Commented-code block (6 lines) in server/controllers/authController.js:271"}, "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-b5e5368bf68645e8", "name": "Commented-code block (5 lines) in server/services/franchisePreviewEmail.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/franchisePreviewEmail.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2ebe16cdc94ee5c", "name": "Commented-code block (5 lines) in server/services/gbpService.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/gbpService.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-b3b00889bb9d2c7b", "name": "Commented-code block (5 lines) in server/services/googleReviewsService.js:40", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/googleReviewsService.js:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-311fd4ecebea2545", "name": "Commented-code block (5 lines) in server/services/franchisePreviewRender.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/franchisePreviewRender.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-d03e8b20213a104c", "name": "Commented-code block (6 lines) in server/services/administratorAccountService.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/administratorAccountService.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-e22a6d488d27527b", "name": "Commented-code block (5 lines) in server/services/adminDashboardService.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/adminDashboardService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-071960b6c531bc81", "name": "Commented-code block (5 lines) in server/services/authTokenService.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/authTokenService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-058bb2b050fd5b88", "name": "Commented-code block (6 lines) in server/services/passwordResetService.js:62", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/passwordResetService.js:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8737df47a2a48ddd", "name": "Commented-code block (5 lines) in server/services/customerRegistrationService.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/customerRegistrationService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80a59aed6b583494", "name": "Commented-code block (6 lines) in server/services/franchisePreviewPages.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/franchisePreviewPages.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-b1c1a09e0e748fb1", "name": "Commented-code block (7 lines) in server/services/operatorAdminService.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/operatorAdminService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0ca3735f0b9aada", "name": "Commented-code block (6 lines) in server/services/codeAttemptLockout.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/codeAttemptLockout.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e8bd830fc04bc55", "name": "Commented-code block (5 lines) in server/services/email/dispatcher/index.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/email/dispatcher/index.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1c92561a516678c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/affiliate-landing-init.js:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/affiliate-landing-init.js:81"}, "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-5891adac9ff02074", "name": "Commented-code block (5 lines) in public/assets/js/administrator-dashboard-init.js:2851", "shortDescription": {"text": "Commented-code block (5 lines) in public/assets/js/administrator-dashboard-init.js:2851"}, "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-c647811a96ca5171", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/corporate-locations-modal.js:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/corporate-locations-modal.js:63"}, "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-f7f0308525091f8e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/test-operator-scan.js:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/test-operator-scan.js:44"}, "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-67633b95a7438f2e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/franchise-reviews-slider.js:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/franchise-reviews-slider.js:44"}, "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-03d9ef0e71a007da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/order-confirmation-init.js:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/order-confirmation-init.js:84"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d49121664afdc4e7", "name": "Commented-code block (5 lines) in public/assets/js/austin-landing-init.js:623", "shortDescription": {"text": "Commented-code block (5 lines) in public/assets/js/austin-landing-init.js:623"}, "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-dfc649ca46610dfb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-landing-init.js:412", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-landing-init.js:412"}, "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-844c048d62c14117", "name": "Commented-code block (5 lines) in public/assets/js/austin-commercial-init.js:585", "shortDescription": {"text": "Commented-code block (5 lines) in public/assets/js/austin-commercial-init.js:585"}, "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-ca015edfcf0cdf82", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/claim.js:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/claim.js:144"}, "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-bba9375898c25639", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/order-confirmation-embed.js:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/order-confirmation-embed.js:59"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0aca9d29e93932ce", "name": "Commented-code block (7 lines) in public/assets/js/iframe-bridge-v2.js:8", "shortDescription": {"text": "Commented-code block (7 lines) in public/assets/js/iframe-bridge-v2.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-2820c7a48e2589a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/iframe-bridge-v2.js:123", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/iframe-bridge-v2.js:123"}, "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-574ca5d6b066efb7", "name": "Commented-code block (6 lines) in public/assets/js/affiliate-register-invite.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in public/assets/js/affiliate-register-invite.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e491495a326fd0dd", "name": "Commented-code block (5 lines) in public/assets/js/franchise-hero-rotator.js:29", "shortDescription": {"text": "Commented-code block (5 lines) in public/assets/js/franchise-hero-rotator.js:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3413245438ec081e", "name": "Commented-code block (7 lines) in public/assets/js/parent-iframe-bridge-v3.js:26", "shortDescription": {"text": "Commented-code block (7 lines) in public/assets/js/parent-iframe-bridge-v3.js:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1051fd228f119b9b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/embed-app-v2.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/embed-app-v2.min.js:2"}, "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-f93913a14da16f96", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/csrf-utils.js:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/csrf-utils.js:29"}, "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-9e52d12dbd1ead8d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-landing-init.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-landing-init.min.js:2"}, "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-53aadb09f20d900b", "name": "Commented-code block (5 lines) in public/assets/js/austin-about-init.js:546", "shortDescription": {"text": "Commented-code block (5 lines) in public/assets/js/austin-about-init.js:546"}, "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-0749de65a7b1d0fd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/i18n.js:94", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/i18n.js:94"}, "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-58c4e3f4365d8000", "name": "Commented-code block (8 lines) in public/assets/js/austin-host-mock-data.js:25", "shortDescription": {"text": "Commented-code block (8 lines) in public/assets/js/austin-host-mock-data.js:25"}, "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-8e934a00ce3db3e5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-host-mock.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-host-mock.min.js:2"}, "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-0bfc46a8ea8500b2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/iframe-bridge-v2.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/iframe-bridge-v2.min.js:2"}, "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-745ebee35d0bf9c3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/api-client.js:184", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/api-client.js:184"}, "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-0978e97225f48aa2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/address-validation-component.js:131", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/address-validation-component.js:131"}, "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-c45181d858e98f29", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/address-validator.js:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/address-validator.js:46"}, "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-b6910f5362640cbb", "name": "Commented-code block (5 lines) in public/assets/js/austin-host-mock.js:458", "shortDescription": {"text": "Commented-code block (5 lines) in public/assets/js/austin-host-mock.js:458"}, "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-10aed944e9abbc80", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-host-mock.js:564", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-host-mock.js:564"}, "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-3038eaef568d064e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/revenue-calculator.js:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/revenue-calculator.js:74"}, "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-4765836b866f3f1d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/service-area-autocomplete.js:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/service-area-autocomplete.js:25"}, "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-f7c0d21fabef3a1b", "name": "Commented-code block (6 lines) in public/assets/js/wm-image-config.js:28", "shortDescription": {"text": "Commented-code block (6 lines) in public/assets/js/wm-image-config.js:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3473c1ae6402d9bc", "name": "Commented-code block (8 lines) in public/assets/js/austin-fb-pixel.js:36", "shortDescription": {"text": "Commented-code block (8 lines) in public/assets/js/austin-fb-pixel.js:36"}, "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-ae177ddec301246f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/embed-app-v2.js:351", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/embed-app-v2.js:351"}, "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-0d3bcc23c0180f1c", "name": "Commented-code block (8 lines) in public/assets/js/austin-hibu-phone-swap.js:39", "shortDescription": {"text": "Commented-code block (8 lines) in public/assets/js/austin-hibu-phone-swap.js:39"}, "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-ddc5c63673c8d365", "name": "Commented-code block (5 lines) in public/assets/js/bag-token-parser.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in public/assets/js/bag-token-parser.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-b0b7578dd2a289b6", "name": "26 env vars used in code but missing from .env.example", "shortDescription": {"text": "26 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ACCESS_GATE_PASSWORD`, `ADDITIONAL_STORE_IPS`, `ADMIN_EMAIL`, `ADMIN_IP`, `ALERT_EMAIL`, `CI`, `CORPORATE_INQUIRY_RECIPIENT`, `DEFAULT_OPERATOR_ID` + 18 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f976fd4bded211a", "name": "Dangling fetch: GET /mail/messages (server/services/mailcowService.js:81)", "shortDescription": {"text": "Dangling fetch: GET /mail/messages (server/services/mailcowService.js:81)"}, "fullDescription": {"text": "`server/services/mailcowService.js:81` calls `GET /mail/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mail/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99dd806c92c404b5", "name": "Dangling fetch: GET /mailbox/messages (server/services/mailcowService.js:114)", "shortDescription": {"text": "Dangling fetch: GET /mailbox/messages (server/services/mailcowService.js:114)"}, "fullDescription": {"text": "`server/services/mailcowService.js:114` calls `GET /mailbox/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mailbox/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ef0f7962f5b540e", "name": "Dangling fetch: PUT /mail/message/${messageId} (server/services/mailcowService.js:145)", "shortDescription": {"text": "Dangling fetch: PUT /mail/message/${messageId} (server/services/mailcowService.js:145)"}, "fullDescription": {"text": "`server/services/mailcowService.js:145` calls `PUT /mail/message/${messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mail/message/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cc96ff4b035b438", "name": "Dangling fetch: POST /mail/action (server/services/mailcowService.js:165)", "shortDescription": {"text": "Dangling fetch: POST /mail/action (server/services/mailcowService.js:165)"}, "fullDescription": {"text": "`server/services/mailcowService.js:165` calls `POST /mail/action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mail/action`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2efaa031f2481a41", "name": "Dangling fetch: GET /mail/search (server/services/mailcowService.js:194)", "shortDescription": {"text": "Dangling fetch: GET /mail/search (server/services/mailcowService.js:194)"}, "fullDescription": {"text": "`server/services/mailcowService.js:194` calls `GET /mail/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mail/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9b99e336519c136", "name": "Dangling fetch: GET /mail/message/${messageId} (server/services/mailcowService.js:223)", "shortDescription": {"text": "Dangling fetch: GET /mail/message/${messageId} (server/services/mailcowService.js:223)"}, "fullDescription": {"text": "`server/services/mailcowService.js:223` calls `GET /mail/message/${messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mail/message/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f1b5ae8362294b6", "name": "Dangling fetch: POST /mail/move (server/services/mailcowService.js:244)", "shortDescription": {"text": "Dangling fetch: POST /mail/move (server/services/mailcowService.js:244)"}, "fullDescription": {"text": "`server/services/mailcowService.js:244` calls `POST /mail/move` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mail/move`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9aa0cdaca90153d", "name": "Dangling fetch: POST /mailbox/folder (server/services/mailcowService.js:270)", "shortDescription": {"text": "Dangling fetch: POST /mailbox/folder (server/services/mailcowService.js:270)"}, "fullDescription": {"text": "`server/services/mailcowService.js:270` calls `POST /mailbox/folder` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/mailbox/folder`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f8c1d269b5379605", "name": "Dangling fetch: GET /locales/${lang}/corporate.json (public/assets/js/corporate-i18n.js:50)", "shortDescription": {"text": "Dangling fetch: GET /locales/${lang}/corporate.json (public/assets/js/corporate-i18n.js:50)"}, "fullDescription": {"text": "`public/assets/js/corporate-i18n.js:50` calls `GET /locales/${lang}/corporate.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/locales/<p>/corporate.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6d6b1d94632e0fc", "name": "Dangling fetch: GET /api/v1/maps-config (public/assets/js/corporate-locations-modal.js:29)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/maps-config (public/assets/js/corporate-locations-modal.js:29)"}, "fullDescription": {"text": "`public/assets/js/corporate-locations-modal.js:29` calls `GET /api/v1/maps-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/maps-config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9727206642d06ede", "name": "Dangling fetch: GET /api/v1/franchises (public/assets/js/corporate-locations-modal.js:63)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/franchises (public/assets/js/corporate-locations-modal.js:63)"}, "fullDescription": {"text": "`public/assets/js/corporate-locations-modal.js:63` calls `GET /api/v1/franchises` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/franchises`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ed4671bf1280899", "name": "Dangling fetch: DELETE /api/v1/test/cleanup (public/assets/js/test-operator-scan.js:44)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/test/cleanup (public/assets/js/test-operator-scan.js:44)"}, "fullDescription": {"text": "`public/assets/js/test-operator-scan.js:44` calls `DELETE /api/v1/test/cleanup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/test/cleanup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc543eefcf8d1c1e", "name": "Dangling fetch: POST /api/v1/test/customer (public/assets/js/test-operator-scan.js:70)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/test/customer (public/assets/js/test-operator-scan.js:70)"}, "fullDescription": {"text": "`public/assets/js/test-operator-scan.js:70` calls `POST /api/v1/test/customer` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/test/customer`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e754f9ed636b4e9", "name": "Dangling fetch: POST /api/v1/test/order (public/assets/js/test-operator-scan.js:184)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/test/order (public/assets/js/test-operator-scan.js:184)"}, "fullDescription": {"text": "`public/assets/js/test-operator-scan.js:184` calls `POST /api/v1/test/order` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/test/order`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d660a94d4482ae56", "name": "Dangling fetch: POST /api/v1/test/order/advance-stage (public/assets/js/test-operator-scan.js:357)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/test/order/advance-stage (public/assets/js/test-operator-scan.js:357)"}, "fullDescription": {"text": "`public/assets/js/test-operator-scan.js:357` calls `POST /api/v1/test/order/advance-stage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/test/order/advance-stage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-415be82dcc39cc43", "name": "Dangling fetch: GET /api/v1/location/network-reviews (public/assets/js/franchise-reviews-slider.js:44)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/location/network-reviews (public/assets/js/franchise-reviews-slider.js:44)"}, "fullDescription": {"text": "`public/assets/js/franchise-reviews-slider.js:44` calls `GET /api/v1/location/network-reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/location/network-reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6df1d4cf2ce4cfff", "name": "Dangling fetch: GET /api/customers/${customerId}/orders (public/assets/js/customer-dashboard.js:216)", "shortDescription": {"text": "Dangling fetch: GET /api/customers/${customerId}/orders (public/assets/js/customer-dashboard.js:216)"}, "fullDescription": {"text": "`public/assets/js/customer-dashboard.js:216` calls `GET /api/customers/${customerId}/orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/customers/<p>/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f6f885f953d20d5", "name": "Dangling fetch: GET /api/v1/location/${encodeURIComponent(slug)}/reviews?minRating=5&limit=3 (public/assets/js/austin-la", "shortDescription": {"text": "Dangling fetch: GET /api/v1/location/${encodeURIComponent(slug)}/reviews?minRating=5&limit=3 (public/assets/js/austin-landing-init.js:412)"}, "fullDescription": {"text": "`public/assets/js/austin-landing-init.js:412` calls `GET /api/v1/location/${encodeURIComponent(slug)}/reviews?minRating=5&limit=3` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/location/<p>/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc9167ad7314a665", "name": "Dangling fetch: GET /data/franchises/austin-tx.json (public/assets/js/iframe-bridge-v2.js:123)", "shortDescription": {"text": "Dangling fetch: GET /data/franchises/austin-tx.json (public/assets/js/iframe-bridge-v2.js:123)"}, "fullDescription": {"text": "`public/assets/js/iframe-bridge-v2.js:123` calls `GET /data/franchises/austin-tx.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/data/franchises/austin-tx.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7fd18c2c072c11d1", "name": "Dangling fetch: GET /api/v1/location/${encodeURIComponent(i)}/reviews?minRating=5&limit=3 (public/assets/js/austin-landi", "shortDescription": {"text": "Dangling fetch: GET /api/v1/location/${encodeURIComponent(i)}/reviews?minRating=5&limit=3 (public/assets/js/austin-landing-init.min.js:2)"}, "fullDescription": {"text": "`public/assets/js/austin-landing-init.min.js:2` calls `GET /api/v1/location/${encodeURIComponent(i)}/reviews?minRating=5&limit=3` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/location/<p>/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9dc60c82613d1c71", "name": "Dangling fetch: GET /api/v1/auth/operator/login (public/assets/js/operator-auto-login.js:12)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/auth/operator/login (public/assets/js/operator-auto-login.js:12)"}, "fullDescription": {"text": "`public/assets/js/operator-auto-login.js:12` calls `GET /api/v1/auth/operator/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/auth/operator/login`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d080ece39da68680", "name": "Dangling fetch: GET /api/v1/franchises (public/assets/js/austin-host-mock.min.js:2)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/franchises (public/assets/js/austin-host-mock.min.js:2)"}, "fullDescription": {"text": "`public/assets/js/austin-host-mock.min.js:2` calls `GET /api/v1/franchises` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/franchises`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d8c563e00eace3d", "name": "Dangling fetch: POST /api/v1/contact/${n} (public/assets/js/austin-host-mock.min.js:2)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/contact/${n} (public/assets/js/austin-host-mock.min.js:2)"}, "fullDescription": {"text": "`public/assets/js/austin-host-mock.min.js:2` calls `POST /api/v1/contact/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/contact/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-454e547a6bbcbf6c", "name": "Dangling fetch: GET /data/franchises/austin-tx.json (public/assets/js/iframe-bridge-v2.min.js:2)", "shortDescription": {"text": "Dangling fetch: GET /data/franchises/austin-tx.json (public/assets/js/iframe-bridge-v2.min.js:2)"}, "fullDescription": {"text": "`public/assets/js/iframe-bridge-v2.min.js:2` calls `GET /data/franchises/austin-tx.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/data/franchises/austin-tx.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b15cb02c4da3e838", "name": "Dangling fetch: GET /api/v1/franchises (public/assets/js/austin-host-mock.js:564)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/franchises (public/assets/js/austin-host-mock.js:564)"}, "fullDescription": {"text": "`public/assets/js/austin-host-mock.js:564` calls `GET /api/v1/franchises` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/franchises`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea5da3ef24942b5d", "name": "Dangling fetch: POST /api/v1/contact/${slug} (public/assets/js/austin-host-mock.js:1032)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/contact/${slug} (public/assets/js/austin-host-mock.js:1032)"}, "fullDescription": {"text": "`public/assets/js/austin-host-mock.js:1032` calls `POST /api/v1/contact/${slug}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/contact/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2dda8e4273489b59", "name": "Dangling fetch: POST /api/v1/contact/${encodeURIComponent(slug)} (public/assets/js/austin-contact-init.js:549)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/contact/${encodeURIComponent(slug)} (public/assets/js/austin-contact-init.js:549)"}, "fullDescription": {"text": "`public/assets/js/austin-contact-init.js:549` calls `POST /api/v1/contact/${encodeURIComponent(slug)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/contact/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7e216d8a7eb223d", "name": "Dangling fetch: GET /content/site-pages.json (public/assets/js/site-page-loader.js:35)", "shortDescription": {"text": "Dangling fetch: GET /content/site-pages.json (public/assets/js/site-page-loader.js:35)"}, "fullDescription": {"text": "`public/assets/js/site-page-loader.js:35` calls `GET /content/site-pages.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/content/site-pages.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76889df7c8e240c5", "name": "Unused endpoint: USE /api/", "shortDescription": {"text": "Unused endpoint: USE /api/"}, "fullDescription": {"text": "`server.js` declares `USE /api/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f02a079c69b52f2d", "name": "Unused endpoint: USE /", "shortDescription": {"text": "Unused endpoint: USE /"}, "fullDescription": {"text": "`server.js` declares `USE /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-136d028465bc06e8", "name": "Unused endpoint: USE /monitoring", "shortDescription": {"text": "Unused endpoint: USE /monitoring"}, "fullDescription": {"text": "`server.js` declares `USE /monitoring` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-139471a5d05fa3b3", "name": "Unused endpoint: GET /monitoring-dashboard.html", "shortDescription": {"text": "Unused endpoint: GET /monitoring-dashboard.html"}, "fullDescription": {"text": "`server.js` declares `GET /monitoring-dashboard.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-20144fa84f3d5515", "name": "Unused endpoint: GET /api/austin-tx/places-config", "shortDescription": {"text": "Unused endpoint: GET /api/austin-tx/places-config"}, "fullDescription": {"text": "`server.js` declares `GET /api/austin-tx/places-config` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1175442e9a670850", "name": "Unused endpoint: GET /dev/austin-host-mock.html", "shortDescription": {"text": "Unused endpoint: GET /dev/austin-host-mock.html"}, "fullDescription": {"text": "`server.js` declares `GET /dev/austin-host-mock.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b59435b3211a9df", "name": "Unused endpoint: USE /assets", "shortDescription": {"text": "Unused endpoint: USE /assets"}, "fullDescription": {"text": "`server.js` declares `USE /assets` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b82f2c3c8954bf1c", "name": "Unused endpoint: USE /docs", "shortDescription": {"text": "Unused endpoint: USE /docs"}, "fullDescription": {"text": "`server.js` declares `USE /docs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cfde86172b5da762", "name": "Unused endpoint: POST /api/concierge", "shortDescription": {"text": "Unused endpoint: POST /api/concierge"}, "fullDescription": {"text": "`server.js` declares `POST /api/concierge` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88cfb8d201ac4d2d", "name": "Unused endpoint: GET /franchises", "shortDescription": {"text": "Unused endpoint: GET /franchises"}, "fullDescription": {"text": "`server.js` declares `GET /franchises` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5ebb8a05191c7cf", "name": "Unused endpoint: GET /environment", "shortDescription": {"text": "Unused endpoint: GET /environment"}, "fullDescription": {"text": "`server.js` declares `GET /environment` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b28d92215a503990", "name": "Unused endpoint: USE /auth", "shortDescription": {"text": "Unused endpoint: USE /auth"}, "fullDescription": {"text": "`server.js` declares `USE /auth` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-782ea3f2dad212c8", "name": "Unused endpoint: USE /affiliates", "shortDescription": {"text": "Unused endpoint: USE /affiliates"}, "fullDescription": {"text": "`server.js` declares `USE /affiliates` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33436767987361b3", "name": "Unused endpoint: USE /affiliate-invites", "shortDescription": {"text": "Unused endpoint: USE /affiliate-invites"}, "fullDescription": {"text": "`server.js` declares `USE /affiliate-invites` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d4770ee18d4e210", "name": "Unused endpoint: USE /customers", "shortDescription": {"text": "Unused endpoint: USE /customers"}, "fullDescription": {"text": "`server.js` declares `USE /customers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a74c387f130f7f6d", "name": "Unused endpoint: USE /bags", "shortDescription": {"text": "Unused endpoint: USE /bags"}, "fullDescription": {"text": "`server.js` declares `USE /bags` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-79ebee1b808cc8cc", "name": "Unused endpoint: USE /orders", "shortDescription": {"text": "Unused endpoint: USE /orders"}, "fullDescription": {"text": "`server.js` declares `USE /orders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6224ae096aecafab", "name": "Unused endpoint: USE /administrators", "shortDescription": {"text": "Unused endpoint: USE /administrators"}, "fullDescription": {"text": "`server.js` declares `USE /administrators` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b609cef94372d11", "name": "Unused endpoint: USE /operators", "shortDescription": {"text": "Unused endpoint: USE /operators"}, "fullDescription": {"text": "`server.js` declares `USE /operators` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-19467b84881cebb8", "name": "Unused endpoint: USE /system/config", "shortDescription": {"text": "Unused endpoint: USE /system/config"}, "fullDescription": {"text": "`server.js` declares `USE /system/config` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c7ecfb522edab91", "name": "Unused endpoint: USE /service-area", "shortDescription": {"text": "Unused endpoint: USE /service-area"}, "fullDescription": {"text": "`server.js` declares `USE /service-area` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a29045d06d47db8", "name": "Unused endpoint: USE /location", "shortDescription": {"text": "Unused endpoint: USE /location"}, "fullDescription": {"text": "`server.js` declares `USE /location` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4517d88e3e4bbf4e", "name": "Unused endpoint: USE /contact", "shortDescription": {"text": "Unused endpoint: USE /contact"}, "fullDescription": {"text": "`server.js` declares `USE /contact` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d053925ebbaa206", "name": "Unused endpoint: USE /test", "shortDescription": {"text": "Unused endpoint: USE /test"}, "fullDescription": {"text": "`server.js` declares `USE /test` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-efcdcb1b5b4a0348", "name": "Unused endpoint: GET /monitoring/status", "shortDescription": {"text": "Unused endpoint: GET /monitoring/status"}, "fullDescription": {"text": "`server.js` declares `GET /monitoring/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94da1aaaf36cc41f", "name": "Unused endpoint: USE /api/v1", "shortDescription": {"text": "Unused endpoint: USE /api/v1"}, "fullDescription": {"text": "`server.js` declares `USE /api/v1` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`server.js` declares `USE /api` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9df76717b41aef91", "name": "Unused endpoint: GET /admin/*", "shortDescription": {"text": "Unused endpoint: GET /admin/*"}, "fullDescription": {"text": "`server.js` declares `GET /admin/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6c75407e0e70886", "name": "Unused endpoint: GET /api/docs", "shortDescription": {"text": "Unused endpoint: GET /api/docs"}, "fullDescription": {"text": "`server.js` declares `GET /api/docs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-deccd5917f35e10b", "name": "Unused endpoint: GET /terms-of-service", "shortDescription": {"text": "Unused endpoint: GET /terms-of-service"}, "fullDescription": {"text": "`server.js` declares `GET /terms-of-service` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fa08f6fbc82f045d", "name": "Unused endpoint: GET /terms-and-conditions", "shortDescription": {"text": "Unused endpoint: GET /terms-and-conditions"}, "fullDescription": {"text": "`server.js` declares `GET /terms-and-conditions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fc1bb281e8849e7c", "name": "Unused endpoint: GET /privacy-policy", "shortDescription": {"text": "Unused endpoint: GET /privacy-policy"}, "fullDescription": {"text": "`server.js` declares `GET /privacy-policy` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6479104f24b9a5f2", "name": "Unused endpoint: GET /refund-policy", "shortDescription": {"text": "Unused endpoint: GET /refund-policy"}, "fullDescription": {"text": "`server.js` declares `GET /refund-policy` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01b6e869f461ef7c", "name": "Unused endpoint: POST /:slug", "shortDescription": {"text": "Unused endpoint: POST /:slug"}, "fullDescription": {"text": "`server/routes/contactRoutes.js` declares `POST /:slug` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-83aeb5b0ece128a7", "name": "Unused endpoint: GET /customer", "shortDescription": {"text": "Unused endpoint: GET /customer"}, "fullDescription": {"text": "`server/routes/testRoutes.js` declares `GET /customer` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-79c5a4a60239688e", "name": "Unused endpoint: POST /customer", "shortDescription": {"text": "Unused endpoint: POST /customer"}, "fullDescription": {"text": "`server/routes/testRoutes.js` declares `POST /customer` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f67c2aa577abfa7", "name": "Unused endpoint: POST /order", "shortDescription": {"text": "Unused endpoint: POST /order"}, "fullDescription": {"text": "`server/routes/testRoutes.js` declares `POST /order` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf748852f8bfdc26", "name": "Unused endpoint: GET /order/:orderId", "shortDescription": {"text": "Unused endpoint: GET /order/:orderId"}, "fullDescription": {"text": "`server/routes/testRoutes.js` declares `GET /order/:orderId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-70122c79abfc2dfb", "name": "Unused endpoint: POST /order/advance-stage", "shortDescription": {"text": "Unused endpoint: POST /order/advance-stage"}, "fullDescription": {"text": "`server/routes/testRoutes.js` declares `POST /order/advance-stage` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a09e3cbf2b26ea55", "name": "Unused endpoint: DELETE /cleanup", "shortDescription": {"text": "Unused endpoint: DELETE /cleanup"}, "fullDescription": {"text": "`server/routes/testRoutes.js` declares `DELETE /cleanup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ba3ea8eb248030a", "name": "Unused endpoint: GET /available", "shortDescription": {"text": "Unused endpoint: GET /available"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `GET /available` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `POST /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca5756175765b49d", "name": "Unused endpoint: GET /:id", "shortDescription": {"text": "Unused endpoint: GET /:id"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `GET /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5fbc954f63526821", "name": "Unused endpoint: PATCH /:id", "shortDescription": {"text": "Unused endpoint: PATCH /:id"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `PATCH /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a61c112b611f4bb", "name": "Unused endpoint: DELETE /:id", "shortDescription": {"text": "Unused endpoint: DELETE /:id"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `DELETE /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e281f1de2a558c8", "name": "Unused endpoint: POST /:id/reset-password", "shortDescription": {"text": "Unused endpoint: POST /:id/reset-password"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `POST /:id/reset-password` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94c994d56160a0bc", "name": "Unused endpoint: POST /:operatorId/scan-code/reset", "shortDescription": {"text": "Unused endpoint: POST /:operatorId/scan-code/reset"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `POST /:operatorId/scan-code/reset` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa683b36a3920a34", "name": "Unused endpoint: PATCH /:id/stats", "shortDescription": {"text": "Unused endpoint: PATCH /:id/stats"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `PATCH /:id/stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7409b2219a9c1ef6", "name": "Unused endpoint: GET /orders/queue", "shortDescription": {"text": "Unused endpoint: GET /orders/queue"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `GET /orders/queue` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a89fb66ae7aa2421", "name": "Unused endpoint: POST /orders/:orderId/claim", "shortDescription": {"text": "Unused endpoint: POST /orders/:orderId/claim"}, "fullDescription": {"text": "`server/routes/operatorRoutes.js` declares `POST /orders/:orderId/claim` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18092"}, "properties": {"repository": "rhoulihan/wavemax-affiliate-program", "repoUrl": "https://github.com/rhoulihan/wavemax-affiliate-program", "branch": "main"}, "results": [{"ruleId": "scanner-0370cece6457a79f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 design-explorer/build.js:36"}, "properties": {"repobilityId": "936de194f4355d0c", "scanner": "scanner-primary", "fingerprint": "0370cece6457a79f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da8519faeb9fcfa2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/setup.js:46"}, "properties": {"repobilityId": "301e4c0184bf291d", "scanner": "scanner-primary", "fingerprint": "da8519faeb9fcfa2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e300b3d8e381e5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/administrator.test.js:224"}, "properties": {"repobilityId": "5acf6d0b151491e5", "scanner": "scanner-primary", "fingerprint": "7e300b3d8e381e5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-211c34a6e915ec20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/passwordValidation.test.js:649"}, "properties": {"repobilityId": "f65a20f27abcc78e", "scanner": "scanner-primary", "fingerprint": "211c34a6e915ec20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c16d8627cedc0d69", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/emailService.integration.test.js:228"}, "properties": {"repobilityId": "4e06e81ac3ff3c26", "scanner": "scanner-primary", "fingerprint": "c16d8627cedc0d69", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a615db48c95a2c20", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 tests/integration/auth.test.js:716"}, "properties": {"repobilityId": "d2fdbb954fa7509d", "scanner": "scanner-primary", "fingerprint": "a615db48c95a2c20", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3b1bf344b2f3a3b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/integration/auth.test.js:772"}, "properties": {"repobilityId": "78ab7b7fe1a3e70b", "scanner": "scanner-primary", "fingerprint": "3b1bf344b2f3a3b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8d6597b4d8aed5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/createAdminScript.test.js:432"}, "properties": {"repobilityId": "3f1557bbd191ca0c", "scanner": "scanner-primary", "fingerprint": "f8d6597b4d8aed5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b6b698063468da99", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/unit/cspHelper.test.js:39"}, "properties": {"repobilityId": "a4504932801caee8", "scanner": "scanner-primary", "fingerprint": "b6b698063468da99", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e373cd6d6cfbec0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/autoUpdateCsrf.js:65"}, "properties": {"repobilityId": "2e7aa82df9742c85", "scanner": "scanner-primary", "fingerprint": "7e373cd6d6cfbec0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-141c75079cd8ecf8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/fixIntegrationTests.js:40"}, "properties": {"repobilityId": "8c78aa474429d5e1", "scanner": "scanner-primary", "fingerprint": "141c75079cd8ecf8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5b7d2cd4406f4b58", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 tests/helpers/commentNonExistentTests.js:32"}, "properties": {"repobilityId": "ae1c15c77999d9db", "scanner": "scanner-primary", "fingerprint": "5b7d2cd4406f4b58", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-033acac76bab824b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/commentNonExistentTests.js:109"}, "properties": {"repobilityId": "19dfd5222e7612a2", "scanner": "scanner-primary", "fingerprint": "033acac76bab824b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43c4e61704b613ae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/helpers/updateTestsForCsrf.js:56"}, "properties": {"repobilityId": "be6b17abf7f4f411", "scanner": "scanner-primary", "fingerprint": "43c4e61704b613ae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-483c22fc3a8f19f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/e2e/static-server.js:11"}, "properties": {"repobilityId": "d8482d0ea3fa3bf5", "scanner": "scanner-primary", "fingerprint": "483c22fc3a8f19f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-29b75dca18d752ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/parent-iframe-bridge.js:338"}, "properties": {"repobilityId": "6198e2bf32328404", "scanner": "scanner-primary", "fingerprint": "29b75dca18d752ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16027455db827b25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-i18n-parity.js:206"}, "properties": {"repobilityId": "acfb9db59bdb6ad1", "scanner": "scanner-primary", "fingerprint": "16027455db827b25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9a0d23f64c1bbcc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/adb-heartbeat.js:37"}, "properties": {"repobilityId": "c4e70ba133e73244", "scanner": "scanner-primary", "fingerprint": "f9a0d23f64c1bbcc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cf20880158c46dc7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/whitelist-access-ip.js:34"}, "properties": {"repobilityId": "8d645e19301349e9", "scanner": "scanner-primary", "fingerprint": "cf20880158c46dc7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-45a3d52923f392a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/create-franchise-preview.js:30"}, "properties": {"repobilityId": "6622bbfb9e23f0c3", "scanner": "scanner-primary", "fingerprint": "45a3d52923f392a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-634e73129fd9ff69", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-claim-bag.js:39"}, "properties": {"repobilityId": "4a1027f3ee78f2f5", "scanner": "scanner-primary", "fingerprint": "634e73129fd9ff69", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ea2965689881920", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-access-gate.js:23"}, "properties": {"repobilityId": "5bf0da5e80aa993e", "scanner": "scanner-primary", "fingerprint": "7ea2965689881920", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-06c41f5c5b41695c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-assets.js:66"}, "properties": {"repobilityId": "2d02f0e385b1d18f", "scanner": "scanner-primary", "fingerprint": "06c41f5c5b41695c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c9769d2a1fe1dea3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-indexes.js:42"}, "properties": {"repobilityId": "bfbd2b0b099651c9", "scanner": "scanner-primary", "fingerprint": "c9769d2a1fe1dea3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-096977b82e527451", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/revoke-franchise-preview.js:26"}, "properties": {"repobilityId": "d2b28041220cfc77", "scanner": "scanner-primary", "fingerprint": "096977b82e527451", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a914b538de26849", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/security/decrypt-oauth-tokens.js:37"}, "properties": {"repobilityId": "1591f5eec4cd134f", "scanner": "scanner-primary", "fingerprint": "5a914b538de26849", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7669d8bd959ff7e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/security/extract-public-key.js:12"}, "properties": {"repobilityId": "f9aeb4e83cb4d8d6", "scanner": "scanner-primary", "fingerprint": "c7669d8bd959ff7e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2eeeca089ed446dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/security/encrypt-oauth-tokens.js:30"}, "properties": {"repobilityId": "0a81f6ab9daa3695", "scanner": "scanner-primary", "fingerprint": "2eeeca089ed446dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-29786bd6bd880755", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/configure-mailcow.js:33"}, "properties": {"repobilityId": "c617c2e9985e2143", "scanner": "scanner-primary", "fingerprint": "29786bd6bd880755", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db246eb81b50b61e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/update-payment-interval.js:20"}, "properties": {"repobilityId": "41269d8c750f0498", "scanner": "scanner-primary", "fingerprint": "db246eb81b50b61e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e4b3dceb0a28d326", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/resend-welcome-email.js:13"}, "properties": {"repobilityId": "9cf9c7bc6a5774d0", "scanner": "scanner-primary", "fingerprint": "e4b3dceb0a28d326", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-126206abf599a820", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/configure-mailcow-direct.js:20"}, "properties": {"repobilityId": "8934d14f67340480", "scanner": "scanner-primary", "fingerprint": "126206abf599a820", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e164e9f10baee8b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ops/update-mailcow-url.js:19"}, "properties": {"repobilityId": "e72087fc16b43975", "scanner": "scanner-primary", "fingerprint": "e164e9f10baee8b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a0b200440e2b318d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/update-admin-email.js:11"}, "properties": {"repobilityId": "233406f4bbadfa83", "scanner": "scanner-primary", "fingerprint": "a0b200440e2b318d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a0dd3e7444ef499e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password-direct.js:16"}, "properties": {"repobilityId": "6eb1c879db375245", "scanner": "scanner-primary", "fingerprint": "a0dd3e7444ef499e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca100fdee96f894a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password.js:61"}, "properties": {"repobilityId": "e7c7d560ea2c4f6e", "scanner": "scanner-primary", "fingerprint": "ca100fdee96f894a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37ce85975d0d5f5f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-admin-password-quick.js:18"}, "properties": {"repobilityId": "a02006e4866c18a8", "scanner": "scanner-primary", "fingerprint": "37ce85975d0d5f5f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c0b80d872e8c8c44", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-operator-quick.js:19"}, "properties": {"repobilityId": "7e87cb30711472fd", "scanner": "scanner-primary", "fingerprint": "c0b80d872e8c8c44", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e6f4e8297dc991de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/clear-admin-session.js:14"}, "properties": {"repobilityId": "1cdbbc57c52bfef2", "scanner": "scanner-primary", "fingerprint": "e6f4e8297dc991de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6c6a6a5f3afc2765", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/restore-database.js:28"}, "properties": {"repobilityId": "0ba34638440f02d7", "scanner": "scanner-primary", "fingerprint": "6c6a6a5f3afc2765", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1fcc44639da9d367", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-admin-directly.js:70"}, "properties": {"repobilityId": "46ab3882e8f64ab9", "scanner": "scanner-primary", "fingerprint": "1fcc44639da9d367", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4a9391e8f47af454", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/delete-admin-operators.js:10"}, "properties": {"repobilityId": "8a3b789c600c806b", "scanner": "scanner-primary", "fingerprint": "4a9391e8f47af454", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d98ff48210e73701", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/backup-database.js:19"}, "properties": {"repobilityId": "5e6eda05fd07a56a", "scanner": "scanner-primary", "fingerprint": "d98ff48210e73701", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a1f206d3f7e61ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/create-admin-quick.js:19"}, "properties": {"repobilityId": "086a08ca46c5d959", "scanner": "scanner-primary", "fingerprint": "8a1f206d3f7e61ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4dafe74924150a7c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/verify-admin.js:12"}, "properties": {"repobilityId": "e810118bac81f94b", "scanner": "scanner-primary", "fingerprint": "4dafe74924150a7c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b586b5ed7fb5dfe4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/admin/reset-rate-limits.js:30"}, "properties": {"repobilityId": "46377a7485b6dc86", "scanner": "scanner-primary", "fingerprint": "b586b5ed7fb5dfe4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e4806b4e73530c4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-emails.js:72"}, "properties": {"repobilityId": "c96efea258af100e", "scanner": "scanner-primary", "fingerprint": "1e4806b4e73530c4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c7aff39a0ab9772", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/build-registry.js:272"}, "properties": {"repobilityId": "8d2c7b187741d433", "scanner": "scanner-primary", "fingerprint": "1c7aff39a0ab9772", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-83a8ae87f5d2c91e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-corporate-data.js:224"}, "properties": {"repobilityId": "7aa707cd7cdd2ac7", "scanner": "scanner-primary", "fingerprint": "83a8ae87f5d2c91e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b36db4ca0029d373", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-place-ids.js:76"}, "properties": {"repobilityId": "8fafb6f47a7afdd5", "scanner": "scanner-primary", "fingerprint": "b36db4ca0029d373", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef5de6c5cc9a339e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/probe-images.js:91"}, "properties": {"repobilityId": "bd410417ab9a23cb", "scanner": "scanner-primary", "fingerprint": "ef5de6c5cc9a339e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d300838a44a343ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/regeocode-locations.js:61"}, "properties": {"repobilityId": "d58e09c1c2b41e07", "scanner": "scanner-primary", "fingerprint": "d300838a44a343ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac75ed8269f4caca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/build-franchise-host.js:67"}, "properties": {"repobilityId": "4aa7b4d53d5a39b3", "scanner": "scanner-primary", "fingerprint": "ac75ed8269f4caca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-66a119542652b241", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/mirror-location-images.js:120"}, "properties": {"repobilityId": "9aef7e69e1d8dc8c", "scanner": "scanner-primary", "fingerprint": "66a119542652b241", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-827be6ba7e217397", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-landmarks.js:173"}, "properties": {"repobilityId": "5723d84c3df8b1e1", "scanner": "scanner-primary", "fingerprint": "827be6ba7e217397", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-630bded3d3fe1411", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/franchise-build/fetch-street-view.js:97"}, "properties": {"repobilityId": "61701d252211556b", "scanner": "scanner-primary", "fingerprint": "630bded3d3fe1411", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fa860eff5e3d8cf7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diagnostics/check-initialization.js:16"}, "properties": {"repobilityId": "df4fd083d376c53f", "scanner": "scanner-primary", "fingerprint": "fa860eff5e3d8cf7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3d9227f4e43734a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/diagnostics/check-data-distribution.js:10"}, "properties": {"repobilityId": "8590822145f08fb3", "scanner": "scanner-primary", "fingerprint": "e3d9227f4e43734a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39fed963f3e7d194", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/clean-collections.js:21"}, "properties": {"repobilityId": "db18b4ef762c0e60", "scanner": "scanner-primary", "fingerprint": "39fed963f3e7d194", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-987101092566a3d8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/reset-database.js:16"}, "properties": {"repobilityId": "e6190c67525979de", "scanner": "scanner-primary", "fingerprint": "987101092566a3d8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af70165425329ea8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/clean-install-db.js:23"}, "properties": {"repobilityId": "63a2647ba9669202", "scanner": "scanner-primary", "fingerprint": "af70165425329ea8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-283b947bfeec6394", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/generate-service-area.js:36"}, "properties": {"repobilityId": "73e72041c216fa0f", "scanner": "scanner-primary", "fingerprint": "283b947bfeec6394", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ba150829fdb214b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/setup/generate-sample-data.js:95"}, "properties": {"repobilityId": "9e9f8a08db170289", "scanner": "scanner-primary", "fingerprint": "2ba150829fdb214b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-189d83092f35eb9c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-landing-init.js:64"}, "properties": {"repobilityId": "c306d66ff47f9ec8", "scanner": "scanner-primary", "fingerprint": "189d83092f35eb9c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e1acf4d04fe8f9f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/admin-operator-fix.js:2"}, "properties": {"repobilityId": "01e85fd14afaae64", "scanner": "scanner-primary", "fingerprint": "1e1acf4d04fe8f9f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-763d68e60ffe0865", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/administrator-dashboard-init.js:227"}, "properties": {"repobilityId": "725b0bafecd924d0", "scanner": "scanner-primary", "fingerprint": "763d68e60ffe0865", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-930dfa3acca00050", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-login-init.js:10"}, "properties": {"repobilityId": "ef8197215db64df6", "scanner": "scanner-primary", "fingerprint": "930dfa3acca00050", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69493d7d71e48772", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-login-init.js:49"}, "properties": {"repobilityId": "7306820b5f75e764", "scanner": "scanner-primary", "fingerprint": "69493d7d71e48772", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-67c402d903857940", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/terms-and-conditions.js:2"}, "properties": {"repobilityId": "30bc824730e1381c", "scanner": "scanner-primary", "fingerprint": "67c402d903857940", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-451bcca08311e5c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-login.js:2"}, "properties": {"repobilityId": "b768c2849828d246", "scanner": "scanner-primary", "fingerprint": "451bcca08311e5c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-61c10db8a2c98dd1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-register-page-init.js:7"}, "properties": {"repobilityId": "ce074cdf095dc00b", "scanner": "scanner-primary", "fingerprint": "61c10db8a2c98dd1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f2131b07526a1d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/test-operator-scan.js:53"}, "properties": {"repobilityId": "5f43ac46c3863cc8", "scanner": "scanner-primary", "fingerprint": "5f2131b07526a1d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9fe848e64238ffdd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-login-init.js:5"}, "properties": {"repobilityId": "2208dc4372bb0c10", "scanner": "scanner-primary", "fingerprint": "9fe848e64238ffdd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-523c793e74382c91", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-dashboard.js:6"}, "properties": {"repobilityId": "793b503c6e188d46", "scanner": "scanner-primary", "fingerprint": "523c793e74382c91", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d31140ed5a9a4ca9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/order-confirmation-init.js:4"}, "properties": {"repobilityId": "f4fe2db56a6e11f9", "scanner": "scanner-primary", "fingerprint": "d31140ed5a9a4ca9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f698ac2ad29c81d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/wash-dry-fold-modern.js:5"}, "properties": {"repobilityId": "dd247c934cb5e780", "scanner": "scanner-primary", "fingerprint": "0f698ac2ad29c81d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db10f83d687393b5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/order-confirmation-embed.js:67"}, "properties": {"repobilityId": "90a9de702db9ebba", "scanner": "scanner-primary", "fingerprint": "db10f83d687393b5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-99604998fa24ca20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/iframe-bridge-v2.js:6"}, "properties": {"repobilityId": "bcda5ad4c3fa8efd", "scanner": "scanner-primary", "fingerprint": "99604998fa24ca20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e9377d4027adc29", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-dashboard-init.js:20"}, "properties": {"repobilityId": "1e5cdd9cb1f0e8e6", "scanner": "scanner-primary", "fingerprint": "1e9377d4027adc29", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c2c53a1867aa36e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-scan-init.js:56"}, "properties": {"repobilityId": "83b2741600794c43", "scanner": "scanner-primary", "fingerprint": "c2c53a1867aa36e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b82eb6e6095c9599", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/label-print-utils.js:5"}, "properties": {"repobilityId": "d7d43536c91896d0", "scanner": "scanner-primary", "fingerprint": "b82eb6e6095c9599", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb04f47f16df92d4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/self-serve-laundry-modern.js:5"}, "properties": {"repobilityId": "bd1bb88184e55c14", "scanner": "scanner-primary", "fingerprint": "fb04f47f16df92d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5b775c18a75a896e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-success-init.js:58"}, "properties": {"repobilityId": "c0d03e6fe98af7c4", "scanner": "scanner-primary", "fingerprint": "5b775c18a75a896e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e1dd4ec48713a20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-v2.min.js:2"}, "properties": {"repobilityId": "95f5decc4d4413dd", "scanner": "scanner-primary", "fingerprint": "1e1dd4ec48713a20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea36142beb7fb93e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/csrf-utils.js:73"}, "properties": {"repobilityId": "127aaa026b934234", "scanner": "scanner-primary", "fingerprint": "ea36142beb7fb93e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c4f2870735419c0d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/reset-password-init.js:5"}, "properties": {"repobilityId": "69c30b46d67b0059", "scanner": "scanner-primary", "fingerprint": "c4f2870735419c0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-890a8d73633f207d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/operator-auto-login.js:10"}, "properties": {"repobilityId": "a3f1b4767727db29", "scanner": "scanner-primary", "fingerprint": "890a8d73633f207d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-643d405960c51100", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/i18n.js:47"}, "properties": {"repobilityId": "8a55a142963b30e8", "scanner": "scanner-primary", "fingerprint": "643d405960c51100", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-91c2e5ae63944491", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/language-switcher.js:18"}, "properties": {"repobilityId": "16484f9a214aeba9", "scanner": "scanner-primary", "fingerprint": "91c2e5ae63944491", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-04ad426388f805c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-navigation.js:15"}, "properties": {"repobilityId": "ac757f59bbc2e74a", "scanner": "scanner-primary", "fingerprint": "04ad426388f805c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e903f488e871e1dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-redirect.js:19"}, "properties": {"repobilityId": "cc64b70c40a19df8", "scanner": "scanner-primary", "fingerprint": "e903f488e871e1dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b89fcdc1b9173c9e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/affiliate-register-init.js:5"}, "properties": {"repobilityId": "19b65465f7a90a6a", "scanner": "scanner-primary", "fingerprint": "b89fcdc1b9173c9e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fccbea020f6c31cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/swirl-spinner.js:6"}, "properties": {"repobilityId": "22bc0c9bb02d606f", "scanner": "scanner-primary", "fingerprint": "fccbea020f6c31cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7b69dad0c2d8b0d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/iframe-bridge-v2.min.js:2"}, "properties": {"repobilityId": "c66090cc4283fcda", "scanner": "scanner-primary", "fingerprint": "f7b69dad0c2d8b0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0508b97362f29686", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/api-client.js:117"}, "properties": {"repobilityId": "6e9e8731f8840c2d", "scanner": "scanner-primary", "fingerprint": "0508b97362f29686", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2c51a3e281e3ad04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/parent-test.js:104"}, "properties": {"repobilityId": "19186e429e47d257", "scanner": "scanner-primary", "fingerprint": "2c51a3e281e3ad04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d081796b64f6003c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/address-validator.js:19"}, "properties": {"repobilityId": "0c7d1363d3907763", "scanner": "scanner-primary", "fingerprint": "d081796b64f6003c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a3ac4d4756279af1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/forgot-password-init.js:5"}, "properties": {"repobilityId": "e230e13a485c3537", "scanner": "scanner-primary", "fingerprint": "a3ac4d4756279af1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f0bcff355646c36", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/registration-success.js:4"}, "properties": {"repobilityId": "dee1282cc494daed", "scanner": "scanner-primary", "fingerprint": "0f0bcff355646c36", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecf9d76e81e1611b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-landing-init.js:5"}, "properties": {"repobilityId": "c6ee930c4f038026", "scanner": "scanner-primary", "fingerprint": "ecf9d76e81e1611b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a282dbcf984376fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/revenue-calculator.js:3"}, "properties": {"repobilityId": "ed8eccfb4e62bb76", "scanner": "scanner-primary", "fingerprint": "a282dbcf984376fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b9920d939363c919", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/service-area-autocomplete.js:17"}, "properties": {"repobilityId": "372057ad50a32867", "scanner": "scanner-primary", "fingerprint": "b9920d939363c919", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eaefcb6e3251c442", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/site-page-loader.js:33"}, "properties": {"repobilityId": "3fb38d418be4f230", "scanner": "scanner-primary", "fingerprint": "eaefcb6e3251c442", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e4a1962c475d2f41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/form-validation.js:289"}, "properties": {"repobilityId": "b0fd80fe44213a8a", "scanner": "scanner-primary", "fingerprint": "e4a1962c475d2f41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-80dc7ffe4620b167", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/embed-app-v2.js:95"}, "properties": {"repobilityId": "af6d18c63aff2ff5", "scanner": "scanner-primary", "fingerprint": "80dc7ffe4620b167", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b31912343e5be7e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/assets/js/customer-login-embed.js:35"}, "properties": {"repobilityId": "a9c7a63bf0803f0d", "scanner": "scanner-primary", "fingerprint": "8b31912343e5be7e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-8987d6d1c30c7202", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "a996d705d7d7b3c0", "scanner": "scanner-primary", "fingerprint": "8987d6d1c30c7202", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-6079bb4644fc307a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in server.js:247"}, "properties": {"repobilityId": "0d9bca6c0839725e", "scanner": "scanner-primary", "fingerprint": "6079bb4644fc307a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server.js"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-a20554d0d494fbe5", "level": "error", "message": {"text": "Possible secret in init-defaults.js"}, "properties": {"repobilityId": "fc0e31feea72281e", "scanner": "scanner-primary", "fingerprint": "a20554d0d494fbe5", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "init-defaults.js"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-843983239740c01f", "level": "error", "message": {"text": "Possible secret in scripts/ops/configure-mailcow-direct.js"}, "properties": {"repobilityId": "7438a7936dceb484", "scanner": "scanner-primary", "fingerprint": "843983239740c01f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/ops/configure-mailcow-direct.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-a8d130ba168e928d", "level": "error", "message": {"text": "Possible secret in scripts/admin/reset-admin-password-direct.js"}, "properties": {"repobilityId": "b937df60b48636f3", "scanner": "scanner-primary", "fingerprint": "a8d130ba168e928d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/admin/reset-admin-password-direct.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-aa888828c98e5f9f", "level": "error", "message": {"text": "Possible secret in scripts/admin/create-operator-quick.js"}, "properties": {"repobilityId": "c69660642312cd1b", "scanner": "scanner-primary", "fingerprint": "aa888828c98e5f9f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/admin/create-operator-quick.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-aab0dfa6ceb33db5", "level": "error", "message": {"text": "Possible secret in scripts/admin/create-admin-quick.js"}, "properties": {"repobilityId": "cd9641d7e70d17d1", "scanner": "scanner-primary", "fingerprint": "aab0dfa6ceb33db5", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/admin/create-admin-quick.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-09168d0cd62084fd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/setup/clean-install-db.js:10"}, "properties": {"repobilityId": "261bfb98a5c21e4f", "scanner": "scanner-primary", "fingerprint": "09168d0cd62084fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup/clean-install-db.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-93d5deb362ef6087", "level": "error", "message": {"text": "Possible secret in scripts/setup/clean-and-reinit-db.js"}, "properties": {"repobilityId": "eccd927f5811e980", "scanner": "scanner-primary", "fingerprint": "93d5deb362ef6087", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup/clean-and-reinit-db.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-93d5deb362ef6087", "level": "error", "message": {"text": "Possible secret in scripts/setup/clean-and-reinit-db.js"}, "properties": {"repobilityId": "eccd927f5811e980", "scanner": "scanner-primary", "fingerprint": "93d5deb362ef6087", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup/clean-and-reinit-db.js"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-272a3c093b7da980", "level": "error", "message": {"text": "Possible secret in scripts/setup/init-admin.js"}, "properties": {"repobilityId": "67746cef5d154efb", "scanner": "scanner-primary", "fingerprint": "272a3c093b7da980", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup/init-admin.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-3f2add9734f5eace", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/order-labels.html:244"}, "properties": {"repobilityId": "b743622854ebb791", "scanner": "scanner-primary", "fingerprint": "3f2add9734f5eace", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/order-labels.html"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-332724bb909c4110", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/monitoring-dashboard.html:289"}, "properties": {"repobilityId": "4aa0f3055741ce56", "scanner": "scanner-primary", "fingerprint": "332724bb909c4110", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/monitoring-dashboard.html"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-45fcba3c2c83d3b9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/wavemax-development-prompt.html:978"}, "properties": {"repobilityId": "7b282e7096dfb6af", "scanner": "scanner-primary", "fingerprint": "45fcba3c2c83d3b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/wavemax-development-prompt.html"}, "region": {"startLine": 978}}}]}, {"ruleId": "scanner-a67f2eca95f8d0ed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/design-explorer/explorer.js:51"}, "properties": {"repobilityId": "a32e0023d4a36c97", "scanner": "scanner-primary", "fingerprint": "a67f2eca95f8d0ed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/design-explorer/explorer.js"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-010f48f8cf66ea53", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-landing-init.js:23"}, "properties": {"repobilityId": "b03c45a94951dad0", "scanner": "scanner-primary", "fingerprint": "010f48f8cf66ea53", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/affiliate-landing-init.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-55297c1164f7a3a9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/administrator-dashboard-init.js:272"}, "properties": {"repobilityId": "7002cb60c76a9778", "scanner": "scanner-primary", "fingerprint": "55297c1164f7a3a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/administrator-dashboard-init.js"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-d54fee0047242964", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-login-init.js:90"}, "properties": {"repobilityId": "fb9879d002496f5a", "scanner": "scanner-primary", "fingerprint": "d54fee0047242964", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/affiliate-login-init.js"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-cc5d513bf4537b4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/operator-login-init.js:71"}, "properties": {"repobilityId": "909d0772830fc6d5", "scanner": "scanner-primary", "fingerprint": "cc5d513bf4537b4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/operator-login-init.js"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-0f22c9b8f725518d", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/operator-login-init.js:87"}, "properties": {"repobilityId": "0c4b022b644be93e", "scanner": "scanner-primary", "fingerprint": "0f22c9b8f725518d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/operator-login-init.js"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-b6befe4478d52a44", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-i18n.js:93"}, "properties": {"repobilityId": "2491eb7417b1b654", "scanner": "scanner-primary", "fingerprint": "b6befe4478d52a44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/corporate-i18n.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-f17943fa18927391", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-login.js:97"}, "properties": {"repobilityId": "b41126e8c8c2d071", "scanner": "scanner-primary", "fingerprint": "f17943fa18927391", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/affiliate-login.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-efd3773c534ebe54", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-locations-modal.js:161"}, "properties": {"repobilityId": "7244b6d71f6928d4", "scanner": "scanner-primary", "fingerprint": "efd3773c534ebe54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/corporate-locations-modal.js"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-46328c526c891615", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/jspdf.min.js:134"}, "properties": {"repobilityId": "3bc4c4c0a8f283ca", "scanner": "scanner-primary", "fingerprint": "46328c526c891615", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/jspdf.min.js"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-bbc05c2693ca438b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/test-operator-scan.js:140"}, "properties": {"repobilityId": "4535c87017c6f8b1", "scanner": "scanner-primary", "fingerprint": "bbc05c2693ca438b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/test-operator-scan.js"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-cea858e70ef80c7c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/franchise-reviews-slider.js:54"}, "properties": {"repobilityId": "4130bc5bdd830dbd", "scanner": "scanner-primary", "fingerprint": "cea858e70ef80c7c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/franchise-reviews-slider.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-8d74342aab1ee937", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/customer-login-init.js:57"}, "properties": {"repobilityId": "b46980014860a14a", "scanner": "scanner-primary", "fingerprint": "8d74342aab1ee937", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/customer-login-init.js"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-beb890e2f1e0f06b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/customer-login-init.js:148"}, "properties": {"repobilityId": "2e897d287da58fef", "scanner": "scanner-primary", "fingerprint": "beb890e2f1e0f06b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/customer-login-init.js"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-af2fa590c5be7bc7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/customer-dashboard.js:182"}, "properties": {"repobilityId": "03b4230bc20433c4", "scanner": "scanner-primary", "fingerprint": "af2fa590c5be7bc7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/customer-dashboard.js"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-b67ae3e3c304b1f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/order-confirmation-init.js:322"}, "properties": {"repobilityId": "d2ee484c9ac4a077", "scanner": "scanner-primary", "fingerprint": "b67ae3e3c304b1f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/order-confirmation-init.js"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-cc5f024e37313384", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/modal-utils.js:142"}, "properties": {"repobilityId": "9649377a2b828dd8", "scanner": "scanner-primary", "fingerprint": "cc5f024e37313384", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/modal-utils.js"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-4d3e6bba5e1502d0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in public/assets/js/modal-utils.js:97"}, "properties": {"repobilityId": "4aa5c761a5f91044", "scanner": "scanner-primary", "fingerprint": "4d3e6bba5e1502d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/modal-utils.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-e41027e3aea7f720", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-landing-init.js:424"}, "properties": {"repobilityId": "459cbe3dd94d5d05", "scanner": "scanner-primary", "fingerprint": "e41027e3aea7f720", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/austin-landing-init.js"}, "region": {"startLine": 424}}}]}, {"ruleId": "scanner-a93066b8323c4c96", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/network-reviews-init.js:75"}, "properties": {"repobilityId": "ec2853c06566a680", "scanner": "scanner-primary", "fingerprint": "a93066b8323c4c96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/network-reviews-init.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-416946be0d0ed3a8", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/claim.js:213"}, "properties": {"repobilityId": "5efff421c331d76a", "scanner": "scanner-primary", "fingerprint": "416946be0d0ed3a8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/claim.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-21d54d2d7de1414c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/order-confirmation-embed.js:48"}, "properties": {"repobilityId": "f38f913090e4624b", "scanner": "scanner-primary", "fingerprint": "21d54d2d7de1414c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/order-confirmation-embed.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-484e0562d92abcc1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/iframe-bridge-v2.js:295"}, "properties": {"repobilityId": "b7967ce1c322c27c", "scanner": "scanner-primary", "fingerprint": "484e0562d92abcc1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/iframe-bridge-v2.js"}, "region": {"startLine": 295}}}]}, {"ruleId": "scanner-9d7230954752e2e2", "level": "error", "message": {"text": "Possible secret in public/assets/js/password-validator-component.js"}, "properties": {"repobilityId": "0792743d2f87a697", "scanner": "scanner-primary", "fingerprint": "9d7230954752e2e2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/password-validator-component.js"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-9d7230954752e2e2", "level": "error", "message": {"text": "Possible secret in public/assets/js/password-validator-component.js"}, "properties": {"repobilityId": "0792743d2f87a697", "scanner": "scanner-primary", "fingerprint": "9d7230954752e2e2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/password-validator-component.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-9d7230954752e2e2", "level": "error", "message": {"text": "Possible secret in public/assets/js/password-validator-component.js"}, "properties": {"repobilityId": "0792743d2f87a697", "scanner": "scanner-primary", "fingerprint": "9d7230954752e2e2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/password-validator-component.js"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-1c8e263107d067c7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/password-validator-component.js:203"}, "properties": {"repobilityId": "2d35a273b39fa247", "scanner": "scanner-primary", "fingerprint": "1c8e263107d067c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/password-validator-component.js"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-e99e3cd9ce523275", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-dashboard-init.js:615"}, "properties": {"repobilityId": "55afaeb46b6dd010", "scanner": "scanner-primary", "fingerprint": "e99e3cd9ce523275", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/affiliate-dashboard-init.js"}, "region": {"startLine": 615}}}]}, {"ruleId": "scanner-e11d99bb4cd0d29a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/operator-scan-init.js:96"}, "properties": {"repobilityId": "f76a0a9da5b4e630", "scanner": "scanner-primary", "fingerprint": "e11d99bb4cd0d29a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/operator-scan-init.js"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-f79011b4e375ea6d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/parent-iframe-bridge-v3.js:367"}, "properties": {"repobilityId": "3186da6d7507c8af", "scanner": "scanner-primary", "fingerprint": "f79011b4e375ea6d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/parent-iframe-bridge-v3.js"}, "region": {"startLine": 367}}}]}, {"ruleId": "scanner-2fe23eac8319f195", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/self-serve-laundry-modern.js:213"}, "properties": {"repobilityId": "ac8523a3ea717d9a", "scanner": "scanner-primary", "fingerprint": "2fe23eac8319f195", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/self-serve-laundry-modern.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-942fc88fb668f448", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/embed-app-v2.min.js:2"}, "properties": {"repobilityId": "81020af1b17d0d76", "scanner": "scanner-primary", "fingerprint": "942fc88fb668f448", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/embed-app-v2.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-b6fd3fb176d89304", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-landing-init.min.js:2"}, "properties": {"repobilityId": "553e784687445538", "scanner": "scanner-primary", "fingerprint": "b6fd3fb176d89304", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/austin-landing-init.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-7a347ec23e2040e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/reset-password-init.js:65"}, "properties": {"repobilityId": "525c38b9414e2846", "scanner": "scanner-primary", "fingerprint": "7a347ec23e2040e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/reset-password-init.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-b50c99e4f96eb52e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-about-init.js:372"}, "properties": {"repobilityId": "cae7afa59581219b", "scanner": "scanner-primary", "fingerprint": "b50c99e4f96eb52e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/austin-about-init.js"}, "region": {"startLine": 372}}}]}, {"ruleId": "scanner-d48048a6e8fe3578", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/operator-auto-login.js:25"}, "properties": {"repobilityId": "256c30ed26727f00", "scanner": "scanner-primary", "fingerprint": "d48048a6e8fe3578", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/operator-auto-login.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-e9b52e33271ab44b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/language-switcher.js:76"}, "properties": {"repobilityId": "9825a886bc6d6a04", "scanner": "scanner-primary", "fingerprint": "e9b52e33271ab44b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/language-switcher.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-d30ed10e341c231a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/pricing-preview-component.js:92"}, "properties": {"repobilityId": "e4b5f2f4d11bd52b", "scanner": "scanner-primary", "fingerprint": "d30ed10e341c231a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/pricing-preview-component.js"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-4eab0ec87f9b9baf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/parent-iframe-bridge-v3.min.js:2"}, "properties": {"repobilityId": "825fd1d8caf9a6c4", "scanner": "scanner-primary", "fingerprint": "4eab0ec87f9b9baf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/parent-iframe-bridge-v3.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-94cf4d8ef05f24a9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/affiliate-register-init.js:242"}, "properties": {"repobilityId": "b085af3d13b1db2a", "scanner": "scanner-primary", "fingerprint": "94cf4d8ef05f24a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/affiliate-register-init.js"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-2be0fd2ba797cdcc", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/affiliate-register-init.js:693"}, "properties": {"repobilityId": "9a96c4add76c1d54", "scanner": "scanner-primary", "fingerprint": "2be0fd2ba797cdcc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/affiliate-register-init.js"}, "region": {"startLine": 693}}}]}, {"ruleId": "scanner-ddc00d4795475ad8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/corporate-chrome.js:341"}, "properties": {"repobilityId": "253f611e1ac665e7", "scanner": "scanner-primary", "fingerprint": "ddc00d4795475ad8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/corporate-chrome.js"}, "region": {"startLine": 341}}}]}, {"ruleId": "scanner-7584f3dbda6d84ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/swirl-spinner.js:75"}, "properties": {"repobilityId": "cbb75618a08ef9a0", "scanner": "scanner-primary", "fingerprint": "7584f3dbda6d84ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/swirl-spinner.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-2e98e5b948b6c0cd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-host-mock.min.js:2"}, "properties": {"repobilityId": "94d21624682d30ad", "scanner": "scanner-primary", "fingerprint": "2e98e5b948b6c0cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/austin-host-mock.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-2e5b2739ff874dc9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/iframe-bridge-v2.min.js:2"}, "properties": {"repobilityId": "2cc23db1b14bdd99", "scanner": "scanner-primary", "fingerprint": "2e5b2739ff874dc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/iframe-bridge-v2.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-75f68c1b09759858", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/address-validation-component.js:99"}, "properties": {"repobilityId": "251d431606ca76dd", "scanner": "scanner-primary", "fingerprint": "75f68c1b09759858", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/address-validation-component.js"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-c498baec56b5a019", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/errorHandler.js:16"}, "properties": {"repobilityId": "fc5d0927d62d0c0b", "scanner": "scanner-primary", "fingerprint": "c498baec56b5a019", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/errorHandler.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-9389947f4d2a7cee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-host-mock.js:108"}, "properties": {"repobilityId": "e8dc75de8bc587fc", "scanner": "scanner-primary", "fingerprint": "9389947f4d2a7cee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/austin-host-mock.js"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-999d040b5833fbee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/administrator-login-init.js:88"}, "properties": {"repobilityId": "b81475791a01d8a9", "scanner": "scanner-primary", "fingerprint": "999d040b5833fbee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/administrator-login-init.js"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-9b36638f30d2d3f4", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/administrator-login-init.js:106"}, "properties": {"repobilityId": "ed4e3c63067717fe", "scanner": "scanner-primary", "fingerprint": "9b36638f30d2d3f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/administrator-login-init.js"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-9b4042311864a82c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/forgot-password-init.js:60"}, "properties": {"repobilityId": "a1a6a2267b9b50b0", "scanner": "scanner-primary", "fingerprint": "9b4042311864a82c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/forgot-password-init.js"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-2437b91760a8b578", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/austin-contact-init.js:415"}, "properties": {"repobilityId": "1dd9900b3d7a4b2f", "scanner": "scanner-primary", "fingerprint": "2437b91760a8b578", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/austin-contact-init.js"}, "region": {"startLine": 415}}}]}, {"ruleId": "scanner-e7c78b40c2cf60a9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/site-page-loader.js:65"}, "properties": {"repobilityId": "fbb3be1c6fe2d7e0", "scanner": "scanner-primary", "fingerprint": "e7c78b40c2cf60a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/site-page-loader.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-cda183a7c8166b16", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/js/embed-app-v2.js:342"}, "properties": {"repobilityId": "5d8c2b017a31acae", "scanner": "scanner-primary", "fingerprint": "cda183a7c8166b16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/embed-app-v2.js"}, "region": {"startLine": 342}}}]}, {"ruleId": "scanner-686336790e9c5a79", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/assets/js/customer-login-embed.js:98"}, "properties": {"repobilityId": "c78f8c75996e8d1d", "scanner": "scanner-primary", "fingerprint": "686336790e9c5a79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/js/customer-login-embed.js"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-8982ba0b706f69d4", "level": "note", "message": {"text": "Very large file: server.js (1197 lines)"}, "properties": {"repobilityId": "1479ba50e708c5c1", "scanner": "scanner-primary", "fingerprint": "8982ba0b706f69d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8dfa3cdb55554183", "level": "note", "message": {"text": "Very large file: design-explorer/content-model.js (990 lines)"}, "properties": {"repobilityId": "548f73badd6aaffe", "scanner": "scanner-primary", "fingerprint": "8dfa3cdb55554183", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0397326cdaa19899", "level": "note", "message": {"text": "Very large file: tests/unit/administratorController.test.js (1931 lines)"}, "properties": {"repobilityId": "b1dc47e8f02e8f48", "scanner": "scanner-primary", "fingerprint": "0397326cdaa19899", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bc083f8bad2e3e4e", "level": "note", "message": {"text": "Very large file: public/assets/js/administrator-dashboard-init.js (2903 lines)"}, "properties": {"repobilityId": "a81f678da60bda3e", "scanner": "scanner-primary", "fingerprint": "bc083f8bad2e3e4e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c9d72582ac021da9", "level": "note", "message": {"text": "Very large file: public/assets/js/wash-dry-fold-translations.js (1036 lines)"}, "properties": {"repobilityId": "2c04d9303ec64b85", "scanner": "scanner-primary", "fingerprint": "c9d72582ac021da9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-547911e24bd353cd", "level": "note", "message": {"text": "Very large file: public/assets/js/affiliate-register-init.js (1387 lines)"}, "properties": {"repobilityId": "9b885febed44f332", "scanner": "scanner-primary", "fingerprint": "547911e24bd353cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-828500275e50d2d6", "level": "note", "message": {"text": "Very large file: public/assets/js/austin-host-mock.js (1091 lines)"}, "properties": {"repobilityId": "8d9d2d05fe3bb990", "scanner": "scanner-primary", "fingerprint": "828500275e50d2d6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c1c50b392d6630c3", "level": "note", "message": {"text": "46 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "c1c50b392d6630c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "dba13a6c3995271b", "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": "6c959382a583234a", "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": "4b007b33aa2c935b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "b5d15bdd29acd381", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "266a248ef4e04e1b", "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": "4abd6c206f2d8584", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-0e761870cc2b3bd9", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/claude.md"}, "properties": {"repobilityId": "5b41dcf0ee667eeb", "scanner": "scanner-primary", "fingerprint": "0e761870cc2b3bd9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/claude.md"}, "region": {"startLine": 938}}}]}, {"ruleId": "scanner-af90a5f4039a88a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in server.js:40"}, "properties": {"repobilityId": "676e59eddbeb8b14", "scanner": "scanner-primary", "fingerprint": "af90a5f4039a88a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92e17e9f7533f600", "level": "none", "message": {"text": "Commented-code block (5 lines) in design-explorer/content-model.js:5"}, "properties": {"repobilityId": "1d80f1fb09691f6d", "scanner": "scanner-primary", "fingerprint": "92e17e9f7533f600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25b16314f32e71f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/seoCrawlability.test.js:1"}, "properties": {"repobilityId": "c9e617341306e64e", "scanner": "scanner-primary", "fingerprint": "25b16314f32e71f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31841e951143560c", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/assetCaching.test.js:1"}, "properties": {"repobilityId": "7de6bf12582f59ea", "scanner": "scanner-primary", "fingerprint": "31841e951143560c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1385d9ed5014997f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/pr2RemovedRoutes.test.js:8"}, "properties": {"repobilityId": "4c4bcf02344feb2b", "scanner": "scanner-primary", "fingerprint": "1385d9ed5014997f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b6823a4f1ea381f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/securityHeaders.test.js:97"}, "properties": {"repobilityId": "f159988b9cff00ac", "scanner": "scanner-primary", "fingerprint": "1b6823a4f1ea381f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28a6daffa47781ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/contact-submit.test.js:184"}, "properties": {"repobilityId": "602fb104f0571ab8", "scanner": "scanner-primary", "fingerprint": "28a6daffa47781ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-390e84694774d33f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/v1PaymentRemoval.test.js:1"}, "properties": {"repobilityId": "b9ac3a41ad47f375", "scanner": "scanner-primary", "fingerprint": "390e84694774d33f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d036f9a109d3bd2", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/orderIntakeRace.test.js:1"}, "properties": {"repobilityId": "7f9d4988d559e06d", "scanner": "scanner-primary", "fingerprint": "5d036f9a109d3bd2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71fcb2846adfcd7e", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/locationQuarantine.test.js:279"}, "properties": {"repobilityId": "11ed46ec4b457d7e", "scanner": "scanner-primary", "fingerprint": "71fcb2846adfcd7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1db352f953bce693", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/mongoCursorRetry.test.js:3"}, "properties": {"repobilityId": "9d888046cba868df", "scanner": "scanner-primary", "fingerprint": "1db352f953bce693", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08d059b8430b5f5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/emailServiceAdditional.test.js:270"}, "properties": {"repobilityId": "ee384d2ed5ac0b2a", "scanner": "scanner-primary", "fingerprint": "08d059b8430b5f5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19894e67d379cac9", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/connectivityMonitorMongo.test.js:1"}, "properties": {"repobilityId": "1de61a30a52e8831", "scanner": "scanner-primary", "fingerprint": "19894e67d379cac9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf1787e1ecd8c298", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/emailDispatcherRelocation.test.js:3"}, "properties": {"repobilityId": "7f8ff8662127a0ad", "scanner": "scanner-primary", "fingerprint": "bf1787e1ecd8c298", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffe0864b6d005b65", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/design-explorer/concierge.test.js:3"}, "properties": {"repobilityId": "7f16b2d44b2906fa", "scanner": "scanner-primary", "fingerprint": "ffe0864b6d005b65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca27eab510cae5f1", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/check-i18n-parity.js:6"}, "properties": {"repobilityId": "e2cc8273f40efaac", "scanner": "scanner-primary", "fingerprint": "ca27eab510cae5f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fcbbb848d9b1d653", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/adb-heartbeat.js:3"}, "properties": {"repobilityId": "c164e6d277b7890b", "scanner": "scanner-primary", "fingerprint": "fcbbb848d9b1d653", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c71c8d2e41b3edb", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/whitelist-access-ip.js:4"}, "properties": {"repobilityId": "4a8d0dfabbeef172", "scanner": "scanner-primary", "fingerprint": "6c71c8d2e41b3edb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f63439f47a5e587", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-access-gate.js:1"}, "properties": {"repobilityId": "d4e49b590d36a774", "scanner": "scanner-primary", "fingerprint": "3f63439f47a5e587", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1081e36542cf1d1", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/ensure-indexes.js:5"}, "properties": {"repobilityId": "2222a32fa70c4e8c", "scanner": "scanner-primary", "fingerprint": "f1081e36542cf1d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0512c59ea825f6fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/franchise-build/build-registry.js:33"}, "properties": {"repobilityId": "e318035d9c781aea", "scanner": "scanner-primary", "fingerprint": "0512c59ea825f6fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaa75c5dce9d48e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/franchise-build/fetch-corporate-data.js:68"}, "properties": {"repobilityId": "d45f616775d6c179", "scanner": "scanner-primary", "fingerprint": "eaa75c5dce9d48e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9ae0abc01a0e435", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/franchise-build/regeocode-locations.js:66"}, "properties": {"repobilityId": "a06d2c373d48f354", "scanner": "scanner-primary", "fingerprint": "b9ae0abc01a0e435", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-309367e7aced9ef3", "level": "none", "message": {"text": "Commented-code block (7 lines) in crhsent/wavemax/app.js:13"}, "properties": {"repobilityId": "f431a99596acf9c9", "scanner": "scanner-primary", "fingerprint": "309367e7aced9ef3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-077cf7f28dd67734", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 crhsent/wavemax/app.js:90"}, "properties": {"repobilityId": "0857c645c21cb67f", "scanner": "scanner-primary", "fingerprint": "077cf7f28dd67734", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b99b5981a83c3677", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/models/AccessWhitelist.js:3"}, "properties": {"repobilityId": "3dc7bab009ea7d96", "scanner": "scanner-primary", "fingerprint": "b99b5981a83c3677", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38590f9e154ab34a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/models/Order.js:3"}, "properties": {"repobilityId": "fc14994d7cd3363e", "scanner": "scanner-primary", "fingerprint": "38590f9e154ab34a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-243db10c3dfea0ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/models/AccessRequest.js:3"}, "properties": {"repobilityId": "ab9bf19220902af2", "scanner": "scanner-primary", "fingerprint": "243db10c3dfea0ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a4aacf9e62a17d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/models/FranchisePreviewRequest.js:7"}, "properties": {"repobilityId": "935584a054b00d5e", "scanner": "scanner-primary", "fingerprint": "8a4aacf9e62a17d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-497fc0d227ae06ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/monitoring/connectivity-monitor.js:69"}, "properties": {"repobilityId": "96ee624716452e64", "scanner": "scanner-primary", "fingerprint": "497fc0d227ae06ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3e05a960b1eca2c", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/config/quarantineConfig.js:45"}, "properties": {"repobilityId": "5e5f86200972f1b1", "scanner": "scanner-primary", "fingerprint": "c3e05a960b1eca2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-429c2a01c40a818c", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/config/domainSeoOverrides.js:26"}, "properties": {"repobilityId": "b568590a2bae1c5f", "scanner": "scanner-primary", "fingerprint": "429c2a01c40a818c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be4dd8f36747a220", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/config/franchisePreviewCopy.js:1"}, "properties": {"repobilityId": "580d8b978f64a7bf", "scanner": "scanner-primary", "fingerprint": "be4dd8f36747a220", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c484c4e57f0dc8a9", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/config/csrf-config.js:251"}, "properties": {"repobilityId": "f4d54760737252ef", "scanner": "scanner-primary", "fingerprint": "c484c4e57f0dc8a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00bb3d15dade7314", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/middleware/rateLimitMongoStore.js:53"}, "properties": {"repobilityId": "9c8082a2e8b1a637", "scanner": "scanner-primary", "fingerprint": "00bb3d15dade7314", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da66d5f89619f8c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/middleware/auth.js:50"}, "properties": {"repobilityId": "a50ee677540ef895", "scanner": "scanner-primary", "fingerprint": "da66d5f89619f8c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70c959e97f7c07f0", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/middleware/explorerGuard.js:3"}, "properties": {"repobilityId": "782966b776330234", "scanner": "scanner-primary", "fingerprint": "70c959e97f7c07f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0679caa51424f4eb", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/middleware/accessGate.js:1"}, "properties": {"repobilityId": "1568e54de16381c1", "scanner": "scanner-primary", "fingerprint": "0679caa51424f4eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8efc519d5a8510be", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/middleware/comingSoon.js:1"}, "properties": {"repobilityId": "2d0021b8748b24ec", "scanner": "scanner-primary", "fingerprint": "8efc519d5a8510be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2965001c890c1b5e", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/middleware/errorHandler.js:123"}, "properties": {"repobilityId": "cc9d26b5afc8f4e1", "scanner": "scanner-primary", "fingerprint": "2965001c890c1b5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f42442404291eec8", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/middleware/franchisePreview.js:3"}, "properties": {"repobilityId": "d5cb54238f48d400", "scanner": "scanner-primary", "fingerprint": "f42442404291eec8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a42a5ffcf54bd6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/middleware/rateLimiting.js:18"}, "properties": {"repobilityId": "f0794de207de7945", "scanner": "scanner-primary", "fingerprint": "5a42a5ffcf54bd6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd023d6a372ad2e1", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/utils/mongoOracleDiagnostics.js:3"}, "properties": {"repobilityId": "e96c44b5eb3f104e", "scanner": "scanner-primary", "fingerprint": "dd023d6a372ad2e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71d1f8073ce853c1", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/utils/mongoCursorRetry.js:3"}, "properties": {"repobilityId": "35dd0ec5774fd3d5", "scanner": "scanner-primary", "fingerprint": "71d1f8073ce853c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6e04d549323ade4", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/utils/emailService.js:3"}, "properties": {"repobilityId": "c721f73232c952f5", "scanner": "scanner-primary", "fingerprint": "d6e04d549323ade4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87ff6373675a1e51", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/utils/roleCodes.js:3"}, "properties": {"repobilityId": "62319ed639c318fe", "scanner": "scanner-primary", "fingerprint": "87ff6373675a1e51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e57733efc46f2e5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/routes/contactRoutes.js:42"}, "properties": {"repobilityId": "283e63e148c63df0", "scanner": "scanner-primary", "fingerprint": "e57733efc46f2e5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e094a677cebc21a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/modules/orders/orderStateMachine.js:3"}, "properties": {"repobilityId": "92fd14979c939a9c", "scanner": "scanner-primary", "fingerprint": "7e094a677cebc21a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0fe074cba964950", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/modules/orders/openOrderContext.js:4"}, "properties": {"repobilityId": "bf570fda7149c68c", "scanner": "scanner-primary", "fingerprint": "c0fe074cba964950", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-079a0bca148ee195", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/modules/orders/orderTransitionService.js:3"}, "properties": {"repobilityId": "334360ba4e24e9e2", "scanner": "scanner-primary", "fingerprint": "079a0bca148ee195", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6c6f34fe9d73c80", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/modules/bags/Bag.js:48"}, "properties": {"repobilityId": "f517defae9b8cc49", "scanner": "scanner-primary", "fingerprint": "d6c6f34fe9d73c80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e19db39173b774a", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/modules/bags/labelSheetService.js:8"}, "properties": {"repobilityId": "254dd1d05a0807dc", "scanner": "scanner-primary", "fingerprint": "3e19db39173b774a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b62cdc5a7a99a281", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/modules/bags/labelSheetService.js:32"}, "properties": {"repobilityId": "02721726cb94ac2d", "scanner": "scanner-primary", "fingerprint": "b62cdc5a7a99a281", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f4bc51c64baaab7f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/modules/bags/bagController.js:13"}, "properties": {"repobilityId": "94e24d25b6c4617b", "scanner": "scanner-primary", "fingerprint": "f4bc51c64baaab7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d25348e4b77fc32b", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/controllers/locationController.js:12"}, "properties": {"repobilityId": "4236f705603956a1", "scanner": "scanner-primary", "fingerprint": "d25348e4b77fc32b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58329d336ed4be1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/controllers/franchiseController.js:123"}, "properties": {"repobilityId": "fc4cdea21fb21849", "scanner": "scanner-primary", "fingerprint": "58329d336ed4be1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25bdac96500f3e61", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/controllers/bagActionController.js:1"}, "properties": {"repobilityId": "d9c872ca1ef57758", "scanner": "scanner-primary", "fingerprint": "25bdac96500f3e61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-032bb7683d71cac4", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/controllers/authController.js:271"}, "properties": {"repobilityId": "192d71342574ac11", "scanner": "scanner-primary", "fingerprint": "032bb7683d71cac4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5e5368bf68645e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/franchisePreviewEmail.js:3"}, "properties": {"repobilityId": "5da8ecb530e757a3", "scanner": "scanner-primary", "fingerprint": "b5e5368bf68645e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2ebe16cdc94ee5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/gbpService.js:8"}, "properties": {"repobilityId": "d0fc576bcb2443c5", "scanner": "scanner-primary", "fingerprint": "b2ebe16cdc94ee5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3b00889bb9d2c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/googleReviewsService.js:40"}, "properties": {"repobilityId": "8656e626b31386a9", "scanner": "scanner-primary", "fingerprint": "b3b00889bb9d2c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-311fd4ecebea2545", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/franchisePreviewRender.js:1"}, "properties": {"repobilityId": "10f1f3254caeba23", "scanner": "scanner-primary", "fingerprint": "311fd4ecebea2545", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d03e8b20213a104c", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/administratorAccountService.js:6"}, "properties": {"repobilityId": "ab8a52b051f39522", "scanner": "scanner-primary", "fingerprint": "d03e8b20213a104c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e22a6d488d27527b", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/adminDashboardService.js:3"}, "properties": {"repobilityId": "16650529d07be032", "scanner": "scanner-primary", "fingerprint": "e22a6d488d27527b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-071960b6c531bc81", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/authTokenService.js:3"}, "properties": {"repobilityId": "f67532cb3d10c052", "scanner": "scanner-primary", "fingerprint": "071960b6c531bc81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-058bb2b050fd5b88", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/passwordResetService.js:62"}, "properties": {"repobilityId": "79f42f62a034ad4c", "scanner": "scanner-primary", "fingerprint": "058bb2b050fd5b88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8737df47a2a48ddd", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/customerRegistrationService.js:3"}, "properties": {"repobilityId": "7dae0a6a153eabe7", "scanner": "scanner-primary", "fingerprint": "8737df47a2a48ddd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80a59aed6b583494", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/franchisePreviewPages.js:1"}, "properties": {"repobilityId": "44f4ec1e9019c5ba", "scanner": "scanner-primary", "fingerprint": "80a59aed6b583494", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1c1a09e0e748fb1", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/operatorAdminService.js:3"}, "properties": {"repobilityId": "896d7794343f8f5c", "scanner": "scanner-primary", "fingerprint": "b1c1a09e0e748fb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0ca3735f0b9aada", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/codeAttemptLockout.js:3"}, "properties": {"repobilityId": "ac1e087b9ccea995", "scanner": "scanner-primary", "fingerprint": "a0ca3735f0b9aada", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e8bd830fc04bc55", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/email/dispatcher/index.js:4"}, "properties": {"repobilityId": "6b6126eaa7212739", "scanner": "scanner-primary", "fingerprint": "8e8bd830fc04bc55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1c92561a516678c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/affiliate-landing-init.js:81"}, "properties": {"repobilityId": "f418e4d756237bd0", "scanner": "scanner-primary", "fingerprint": "e1c92561a516678c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5891adac9ff02074", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/assets/js/administrator-dashboard-init.js:2851"}, "properties": {"repobilityId": "40a5bca65e87e98d", "scanner": "scanner-primary", "fingerprint": "5891adac9ff02074", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c647811a96ca5171", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/corporate-locations-modal.js:63"}, "properties": {"repobilityId": "f58ad9f9ecbd6cc7", "scanner": "scanner-primary", "fingerprint": "c647811a96ca5171", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7f0308525091f8e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/test-operator-scan.js:44"}, "properties": {"repobilityId": "4d828173a1337085", "scanner": "scanner-primary", "fingerprint": "f7f0308525091f8e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-67633b95a7438f2e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/franchise-reviews-slider.js:44"}, "properties": {"repobilityId": "242172586786fc66", "scanner": "scanner-primary", "fingerprint": "67633b95a7438f2e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-03d9ef0e71a007da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/order-confirmation-init.js:84"}, "properties": {"repobilityId": "b4459acc1582cccb", "scanner": "scanner-primary", "fingerprint": "03d9ef0e71a007da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d49121664afdc4e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/assets/js/austin-landing-init.js:623"}, "properties": {"repobilityId": "25b7de173c6bbda4", "scanner": "scanner-primary", "fingerprint": "d49121664afdc4e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfc649ca46610dfb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-landing-init.js:412"}, "properties": {"repobilityId": "13fab14086f915c0", "scanner": "scanner-primary", "fingerprint": "dfc649ca46610dfb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-844c048d62c14117", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/assets/js/austin-commercial-init.js:585"}, "properties": {"repobilityId": "6c7d6f9a7ec2a67d", "scanner": "scanner-primary", "fingerprint": "844c048d62c14117", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca015edfcf0cdf82", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/claim.js:144"}, "properties": {"repobilityId": "635ef73c2d5465cb", "scanner": "scanner-primary", "fingerprint": "ca015edfcf0cdf82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bba9375898c25639", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/order-confirmation-embed.js:59"}, "properties": {"repobilityId": "14ec965619873be2", "scanner": "scanner-primary", "fingerprint": "bba9375898c25639", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0aca9d29e93932ce", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/assets/js/iframe-bridge-v2.js:8"}, "properties": {"repobilityId": "46891a66e7e9ee7e", "scanner": "scanner-primary", "fingerprint": "0aca9d29e93932ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2820c7a48e2589a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/iframe-bridge-v2.js:123"}, "properties": {"repobilityId": "f5e8d6f859d5e7a6", "scanner": "scanner-primary", "fingerprint": "2820c7a48e2589a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-574ca5d6b066efb7", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/assets/js/affiliate-register-invite.js:3"}, "properties": {"repobilityId": "b92f5bd798773aeb", "scanner": "scanner-primary", "fingerprint": "574ca5d6b066efb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e491495a326fd0dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/assets/js/franchise-hero-rotator.js:29"}, "properties": {"repobilityId": "3bcb2bc9573055be", "scanner": "scanner-primary", "fingerprint": "e491495a326fd0dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3413245438ec081e", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/assets/js/parent-iframe-bridge-v3.js:26"}, "properties": {"repobilityId": "edab298bdc19bb16", "scanner": "scanner-primary", "fingerprint": "3413245438ec081e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1051fd228f119b9b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/embed-app-v2.min.js:2"}, "properties": {"repobilityId": "6703af2c6d75e741", "scanner": "scanner-primary", "fingerprint": "1051fd228f119b9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f93913a14da16f96", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/csrf-utils.js:29"}, "properties": {"repobilityId": "b97e46d6b56512a6", "scanner": "scanner-primary", "fingerprint": "f93913a14da16f96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9e52d12dbd1ead8d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-landing-init.min.js:2"}, "properties": {"repobilityId": "59d8a66a167a4786", "scanner": "scanner-primary", "fingerprint": "9e52d12dbd1ead8d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53aadb09f20d900b", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/assets/js/austin-about-init.js:546"}, "properties": {"repobilityId": "d06171b10d92adea", "scanner": "scanner-primary", "fingerprint": "53aadb09f20d900b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0749de65a7b1d0fd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/i18n.js:94"}, "properties": {"repobilityId": "d4aa9cf2ab03fbe1", "scanner": "scanner-primary", "fingerprint": "0749de65a7b1d0fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58c4e3f4365d8000", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/assets/js/austin-host-mock-data.js:25"}, "properties": {"repobilityId": "ac7ece051eb40690", "scanner": "scanner-primary", "fingerprint": "58c4e3f4365d8000", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e934a00ce3db3e5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-host-mock.min.js:2"}, "properties": {"repobilityId": "5beb78800889bb5d", "scanner": "scanner-primary", "fingerprint": "8e934a00ce3db3e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0bfc46a8ea8500b2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/iframe-bridge-v2.min.js:2"}, "properties": {"repobilityId": "dece83ef4d01044e", "scanner": "scanner-primary", "fingerprint": "0bfc46a8ea8500b2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-745ebee35d0bf9c3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/api-client.js:184"}, "properties": {"repobilityId": "4f09f11ef413c128", "scanner": "scanner-primary", "fingerprint": "745ebee35d0bf9c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0978e97225f48aa2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/address-validation-component.js:131"}, "properties": {"repobilityId": "d048c99fb34d0c81", "scanner": "scanner-primary", "fingerprint": "0978e97225f48aa2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c45181d858e98f29", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/address-validator.js:46"}, "properties": {"repobilityId": "9f24e2aab6706516", "scanner": "scanner-primary", "fingerprint": "c45181d858e98f29", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6910f5362640cbb", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/assets/js/austin-host-mock.js:458"}, "properties": {"repobilityId": "997ea0db4eefc469", "scanner": "scanner-primary", "fingerprint": "b6910f5362640cbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10aed944e9abbc80", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/austin-host-mock.js:564"}, "properties": {"repobilityId": "d110d377a2351f84", "scanner": "scanner-primary", "fingerprint": "10aed944e9abbc80", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3038eaef568d064e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/revenue-calculator.js:74"}, "properties": {"repobilityId": "c1e5fcde763c1058", "scanner": "scanner-primary", "fingerprint": "3038eaef568d064e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4765836b866f3f1d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/service-area-autocomplete.js:25"}, "properties": {"repobilityId": "dbcd409bd29199c0", "scanner": "scanner-primary", "fingerprint": "4765836b866f3f1d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7c0d21fabef3a1b", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/assets/js/wm-image-config.js:28"}, "properties": {"repobilityId": "8856082c086262c3", "scanner": "scanner-primary", "fingerprint": "f7c0d21fabef3a1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3473c1ae6402d9bc", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/assets/js/austin-fb-pixel.js:36"}, "properties": {"repobilityId": "78e09c147eb70bb8", "scanner": "scanner-primary", "fingerprint": "3473c1ae6402d9bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae177ddec301246f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/js/embed-app-v2.js:351"}, "properties": {"repobilityId": "5cee9f8e0b8f1a9c", "scanner": "scanner-primary", "fingerprint": "ae177ddec301246f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d3bcc23c0180f1c", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/assets/js/austin-hibu-phone-swap.js:39"}, "properties": {"repobilityId": "cd725cbbdd32be9d", "scanner": "scanner-primary", "fingerprint": "0d3bcc23c0180f1c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ddc5c63673c8d365", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/assets/js/bag-token-parser.js:1"}, "properties": {"repobilityId": "cf01ad6519cc7e1d", "scanner": "scanner-primary", "fingerprint": "ddc5c63673c8d365", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0b7578dd2a289b6", "level": "note", "message": {"text": "26 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "8099a5c5713d37b9", "scanner": "scanner-primary", "fingerprint": "b0b7578dd2a289b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-8f976fd4bded211a", "level": "error", "message": {"text": "Dangling fetch: GET /mail/messages (server/services/mailcowService.js:81)"}, "properties": {"repobilityId": "8cf16b29a64befdd", "scanner": "scanner-primary", "fingerprint": "8f976fd4bded211a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-99dd806c92c404b5", "level": "error", "message": {"text": "Dangling fetch: GET /mailbox/messages (server/services/mailcowService.js:114)"}, "properties": {"repobilityId": "9ba58451901d1e46", "scanner": "scanner-primary", "fingerprint": "99dd806c92c404b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-7ef0f7962f5b540e", "level": "error", "message": {"text": "Dangling fetch: PUT /mail/message/${messageId} (server/services/mailcowService.js:145)"}, "properties": {"repobilityId": "d0ffb7968da549c3", "scanner": "scanner-primary", "fingerprint": "7ef0f7962f5b540e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-7cc96ff4b035b438", "level": "error", "message": {"text": "Dangling fetch: POST /mail/action (server/services/mailcowService.js:165)"}, "properties": {"repobilityId": "90156a32b5ce8446", "scanner": "scanner-primary", "fingerprint": "7cc96ff4b035b438", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-2efaa031f2481a41", "level": "error", "message": {"text": "Dangling fetch: GET /mail/search (server/services/mailcowService.js:194)"}, "properties": {"repobilityId": "d7a12ff5a9347a7b", "scanner": "scanner-primary", "fingerprint": "2efaa031f2481a41", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-e9b99e336519c136", "level": "error", "message": {"text": "Dangling fetch: GET /mail/message/${messageId} (server/services/mailcowService.js:223)"}, "properties": {"repobilityId": "aaba8edb5f863c9f", "scanner": "scanner-primary", "fingerprint": "e9b99e336519c136", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-2f1b5ae8362294b6", "level": "error", "message": {"text": "Dangling fetch: POST /mail/move (server/services/mailcowService.js:244)"}, "properties": {"repobilityId": "980994c149db38c0", "scanner": "scanner-primary", "fingerprint": "2f1b5ae8362294b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-f9aa0cdaca90153d", "level": "error", "message": {"text": "Dangling fetch: POST /mailbox/folder (server/services/mailcowService.js:270)"}, "properties": {"repobilityId": "caf8aa04509f0ee3", "scanner": "scanner-primary", "fingerprint": "f9aa0cdaca90153d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-f8c1d269b5379605", "level": "error", "message": {"text": "Dangling fetch: GET /locales/${lang}/corporate.json (public/assets/js/corporate-i18n.js:50)"}, "properties": {"repobilityId": "9b98052acf33b0ae", "scanner": "scanner-primary", "fingerprint": "f8c1d269b5379605", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d6d6b1d94632e0fc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/maps-config (public/assets/js/corporate-locations-modal.js:29)"}, "properties": {"repobilityId": "99c8ced65e8cbdea", "scanner": "scanner-primary", "fingerprint": "d6d6b1d94632e0fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9727206642d06ede", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/franchises (public/assets/js/corporate-locations-modal.js:63)"}, "properties": {"repobilityId": "b6142c480527a5b5", "scanner": "scanner-primary", "fingerprint": "9727206642d06ede", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5ed4671bf1280899", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/test/cleanup (public/assets/js/test-operator-scan.js:44)"}, "properties": {"repobilityId": "1ee81b897594c6d5", "scanner": "scanner-primary", "fingerprint": "5ed4671bf1280899", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc543eefcf8d1c1e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/test/customer (public/assets/js/test-operator-scan.js:70)"}, "properties": {"repobilityId": "d7d8337757a561af", "scanner": "scanner-primary", "fingerprint": "cc543eefcf8d1c1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2e754f9ed636b4e9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/test/order (public/assets/js/test-operator-scan.js:184)"}, "properties": {"repobilityId": "894e96d47ffead7a", "scanner": "scanner-primary", "fingerprint": "2e754f9ed636b4e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d660a94d4482ae56", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/test/order/advance-stage (public/assets/js/test-operator-scan.js:357)"}, "properties": {"repobilityId": "7888377eab0ffedb", "scanner": "scanner-primary", "fingerprint": "d660a94d4482ae56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-415be82dcc39cc43", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/location/network-reviews (public/assets/js/franchise-reviews-slider.js:44)"}, "properties": {"repobilityId": "1919dd78f735d150", "scanner": "scanner-primary", "fingerprint": "415be82dcc39cc43", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6df1d4cf2ce4cfff", "level": "error", "message": {"text": "Dangling fetch: GET /api/customers/${customerId}/orders (public/assets/js/customer-dashboard.js:216)"}, "properties": {"repobilityId": "99492d5c6672615d", "scanner": "scanner-primary", "fingerprint": "6df1d4cf2ce4cfff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5f6f885f953d20d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/location/${encodeURIComponent(slug)}/reviews?minRating=5&limit=3 (public/assets/js/austin-landing-init.js:412)"}, "properties": {"repobilityId": "54fce8838e10cf60", "scanner": "scanner-primary", "fingerprint": "5f6f885f953d20d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc9167ad7314a665", "level": "error", "message": {"text": "Dangling fetch: GET /data/franchises/austin-tx.json (public/assets/js/iframe-bridge-v2.js:123)"}, "properties": {"repobilityId": "384abbcc42892f10", "scanner": "scanner-primary", "fingerprint": "bc9167ad7314a665", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7fd18c2c072c11d1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/location/${encodeURIComponent(i)}/reviews?minRating=5&limit=3 (public/assets/js/austin-landing-init.min.js:2)"}, "properties": {"repobilityId": "5c4334a915a26e99", "scanner": "scanner-primary", "fingerprint": "7fd18c2c072c11d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9dc60c82613d1c71", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/auth/operator/login (public/assets/js/operator-auto-login.js:12)"}, "properties": {"repobilityId": "2b2a868ca9f8961e", "scanner": "scanner-primary", "fingerprint": "9dc60c82613d1c71", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d080ece39da68680", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/franchises (public/assets/js/austin-host-mock.min.js:2)"}, "properties": {"repobilityId": "47b85e741c3d0344", "scanner": "scanner-primary", "fingerprint": "d080ece39da68680", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d8c563e00eace3d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/contact/${n} (public/assets/js/austin-host-mock.min.js:2)"}, "properties": {"repobilityId": "64c845800cf444da", "scanner": "scanner-primary", "fingerprint": "7d8c563e00eace3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-454e547a6bbcbf6c", "level": "error", "message": {"text": "Dangling fetch: GET /data/franchises/austin-tx.json (public/assets/js/iframe-bridge-v2.min.js:2)"}, "properties": {"repobilityId": "8d32b6a986f540b8", "scanner": "scanner-primary", "fingerprint": "454e547a6bbcbf6c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b15cb02c4da3e838", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/franchises (public/assets/js/austin-host-mock.js:564)"}, "properties": {"repobilityId": "490c04037332f716", "scanner": "scanner-primary", "fingerprint": "b15cb02c4da3e838", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea5da3ef24942b5d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/contact/${slug} (public/assets/js/austin-host-mock.js:1032)"}, "properties": {"repobilityId": "4a394b9e2e1a5994", "scanner": "scanner-primary", "fingerprint": "ea5da3ef24942b5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2dda8e4273489b59", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/contact/${encodeURIComponent(slug)} (public/assets/js/austin-contact-init.js:549)"}, "properties": {"repobilityId": "83941f044f31e535", "scanner": "scanner-primary", "fingerprint": "2dda8e4273489b59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c7e216d8a7eb223d", "level": "error", "message": {"text": "Dangling fetch: GET /content/site-pages.json (public/assets/js/site-page-loader.js:35)"}, "properties": {"repobilityId": "7d0ae80608526cfe", "scanner": "scanner-primary", "fingerprint": "c7e216d8a7eb223d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76889df7c8e240c5", "level": "note", "message": {"text": "Unused endpoint: USE /api/"}, "properties": {"repobilityId": "fcfd35d703bcb479", "scanner": "scanner-primary", "fingerprint": "76889df7c8e240c5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f02a079c69b52f2d", "level": "note", "message": {"text": "Unused endpoint: USE /"}, "properties": {"repobilityId": "11b055fa2670dbdf", "scanner": "scanner-primary", "fingerprint": "f02a079c69b52f2d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-136d028465bc06e8", "level": "note", "message": {"text": "Unused endpoint: USE /monitoring"}, "properties": {"repobilityId": "cd4d41cd60b24d4e", "scanner": "scanner-primary", "fingerprint": "136d028465bc06e8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-139471a5d05fa3b3", "level": "note", "message": {"text": "Unused endpoint: GET /monitoring-dashboard.html"}, "properties": {"repobilityId": "fc27c6c0530f6f9d", "scanner": "scanner-primary", "fingerprint": "139471a5d05fa3b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-20144fa84f3d5515", "level": "note", "message": {"text": "Unused endpoint: GET /api/austin-tx/places-config"}, "properties": {"repobilityId": "24b768358144ddcf", "scanner": "scanner-primary", "fingerprint": "20144fa84f3d5515", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1175442e9a670850", "level": "note", "message": {"text": "Unused endpoint: GET /dev/austin-host-mock.html"}, "properties": {"repobilityId": "a622c62990a796f2", "scanner": "scanner-primary", "fingerprint": "1175442e9a670850", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b59435b3211a9df", "level": "note", "message": {"text": "Unused endpoint: USE /assets"}, "properties": {"repobilityId": "1b8fb48245d8339a", "scanner": "scanner-primary", "fingerprint": "3b59435b3211a9df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b82f2c3c8954bf1c", "level": "note", "message": {"text": "Unused endpoint: USE /docs"}, "properties": {"repobilityId": "9122492f6990dcee", "scanner": "scanner-primary", "fingerprint": "b82f2c3c8954bf1c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cfde86172b5da762", "level": "note", "message": {"text": "Unused endpoint: POST /api/concierge"}, "properties": {"repobilityId": "6adf76456c387ab3", "scanner": "scanner-primary", "fingerprint": "cfde86172b5da762", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-88cfb8d201ac4d2d", "level": "note", "message": {"text": "Unused endpoint: GET /franchises"}, "properties": {"repobilityId": "e72166fee31e029e", "scanner": "scanner-primary", "fingerprint": "88cfb8d201ac4d2d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b5ebb8a05191c7cf", "level": "note", "message": {"text": "Unused endpoint: GET /environment"}, "properties": {"repobilityId": "4ac47a0b99c71259", "scanner": "scanner-primary", "fingerprint": "b5ebb8a05191c7cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b28d92215a503990", "level": "note", "message": {"text": "Unused endpoint: USE /auth"}, "properties": {"repobilityId": "3d8cc00505339c17", "scanner": "scanner-primary", "fingerprint": "b28d92215a503990", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-782ea3f2dad212c8", "level": "note", "message": {"text": "Unused endpoint: USE /affiliates"}, "properties": {"repobilityId": "b149d14cae225ee9", "scanner": "scanner-primary", "fingerprint": "782ea3f2dad212c8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-33436767987361b3", "level": "note", "message": {"text": "Unused endpoint: USE /affiliate-invites"}, "properties": {"repobilityId": "2dea6cb64724b6ca", "scanner": "scanner-primary", "fingerprint": "33436767987361b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1d4770ee18d4e210", "level": "note", "message": {"text": "Unused endpoint: USE /customers"}, "properties": {"repobilityId": "8900934665fa695c", "scanner": "scanner-primary", "fingerprint": "1d4770ee18d4e210", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a74c387f130f7f6d", "level": "note", "message": {"text": "Unused endpoint: USE /bags"}, "properties": {"repobilityId": "a35b1de9fbe1ae79", "scanner": "scanner-primary", "fingerprint": "a74c387f130f7f6d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-79ebee1b808cc8cc", "level": "note", "message": {"text": "Unused endpoint: USE /orders"}, "properties": {"repobilityId": "cee35061ce4232ee", "scanner": "scanner-primary", "fingerprint": "79ebee1b808cc8cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6224ae096aecafab", "level": "note", "message": {"text": "Unused endpoint: USE /administrators"}, "properties": {"repobilityId": "5761f78fb1a1a092", "scanner": "scanner-primary", "fingerprint": "6224ae096aecafab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b609cef94372d11", "level": "note", "message": {"text": "Unused endpoint: USE /operators"}, "properties": {"repobilityId": "40bc2b1d0f31ecfd", "scanner": "scanner-primary", "fingerprint": "3b609cef94372d11", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-19467b84881cebb8", "level": "note", "message": {"text": "Unused endpoint: USE /system/config"}, "properties": {"repobilityId": "c03523ded156764d", "scanner": "scanner-primary", "fingerprint": "19467b84881cebb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2c7ecfb522edab91", "level": "note", "message": {"text": "Unused endpoint: USE /service-area"}, "properties": {"repobilityId": "77230643b0e61a96", "scanner": "scanner-primary", "fingerprint": "2c7ecfb522edab91", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2a29045d06d47db8", "level": "note", "message": {"text": "Unused endpoint: USE /location"}, "properties": {"repobilityId": "03ced4fcf4ebffed", "scanner": "scanner-primary", "fingerprint": "2a29045d06d47db8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4517d88e3e4bbf4e", "level": "note", "message": {"text": "Unused endpoint: USE /contact"}, "properties": {"repobilityId": "6157d827ab9be6e5", "scanner": "scanner-primary", "fingerprint": "4517d88e3e4bbf4e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d053925ebbaa206", "level": "note", "message": {"text": "Unused endpoint: USE /test"}, "properties": {"repobilityId": "6c5c021fba4589a8", "scanner": "scanner-primary", "fingerprint": "6d053925ebbaa206", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-efcdcb1b5b4a0348", "level": "note", "message": {"text": "Unused endpoint: GET /monitoring/status"}, "properties": {"repobilityId": "955469a248155f28", "scanner": "scanner-primary", "fingerprint": "efcdcb1b5b4a0348", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-94da1aaaf36cc41f", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1"}, "properties": {"repobilityId": "c6ac99b2873045fd", "scanner": "scanner-primary", "fingerprint": "94da1aaaf36cc41f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "a3eddf5065ffbf6c", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9df76717b41aef91", "level": "note", "message": {"text": "Unused endpoint: GET /admin/*"}, "properties": {"repobilityId": "5a6260e01a3e57ff", "scanner": "scanner-primary", "fingerprint": "9df76717b41aef91", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6c75407e0e70886", "level": "note", "message": {"text": "Unused endpoint: GET /api/docs"}, "properties": {"repobilityId": "1a2676c70afc8a7c", "scanner": "scanner-primary", "fingerprint": "a6c75407e0e70886", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-deccd5917f35e10b", "level": "note", "message": {"text": "Unused endpoint: GET /terms-of-service"}, "properties": {"repobilityId": "aa2af2e2e059ff9e", "scanner": "scanner-primary", "fingerprint": "deccd5917f35e10b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fa08f6fbc82f045d", "level": "note", "message": {"text": "Unused endpoint: GET /terms-and-conditions"}, "properties": {"repobilityId": "b9073d955ae298fc", "scanner": "scanner-primary", "fingerprint": "fa08f6fbc82f045d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fc1bb281e8849e7c", "level": "note", "message": {"text": "Unused endpoint: GET /privacy-policy"}, "properties": {"repobilityId": "aa38591e32789789", "scanner": "scanner-primary", "fingerprint": "fc1bb281e8849e7c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6479104f24b9a5f2", "level": "note", "message": {"text": "Unused endpoint: GET /refund-policy"}, "properties": {"repobilityId": "4d4d1ef806d8ece5", "scanner": "scanner-primary", "fingerprint": "6479104f24b9a5f2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-01b6e869f461ef7c", "level": "note", "message": {"text": "Unused endpoint: POST /:slug"}, "properties": {"repobilityId": "df0cf7686479bcaa", "scanner": "scanner-primary", "fingerprint": "01b6e869f461ef7c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-83aeb5b0ece128a7", "level": "note", "message": {"text": "Unused endpoint: GET /customer"}, "properties": {"repobilityId": "41dad1a53c0e3fb2", "scanner": "scanner-primary", "fingerprint": "83aeb5b0ece128a7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-79c5a4a60239688e", "level": "note", "message": {"text": "Unused endpoint: POST /customer"}, "properties": {"repobilityId": "e17d5f6bd1cc164c", "scanner": "scanner-primary", "fingerprint": "79c5a4a60239688e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3f67c2aa577abfa7", "level": "note", "message": {"text": "Unused endpoint: POST /order"}, "properties": {"repobilityId": "498595a92f649586", "scanner": "scanner-primary", "fingerprint": "3f67c2aa577abfa7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bf748852f8bfdc26", "level": "note", "message": {"text": "Unused endpoint: GET /order/:orderId"}, "properties": {"repobilityId": "73ad2cfde717b8f8", "scanner": "scanner-primary", "fingerprint": "bf748852f8bfdc26", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-70122c79abfc2dfb", "level": "note", "message": {"text": "Unused endpoint: POST /order/advance-stage"}, "properties": {"repobilityId": "d3d77ede9099f398", "scanner": "scanner-primary", "fingerprint": "70122c79abfc2dfb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a09e3cbf2b26ea55", "level": "note", "message": {"text": "Unused endpoint: DELETE /cleanup"}, "properties": {"repobilityId": "91f33e7850217772", "scanner": "scanner-primary", "fingerprint": "a09e3cbf2b26ea55", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4ba3ea8eb248030a", "level": "note", "message": {"text": "Unused endpoint: GET /available"}, "properties": {"repobilityId": "f57545198f5367cb", "scanner": "scanner-primary", "fingerprint": "4ba3ea8eb248030a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "e884f205fb1c8ebf", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca5756175765b49d", "level": "note", "message": {"text": "Unused endpoint: GET /:id"}, "properties": {"repobilityId": "fc9b98d3437f3103", "scanner": "scanner-primary", "fingerprint": "ca5756175765b49d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5fbc954f63526821", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id"}, "properties": {"repobilityId": "d30faf71c7c4e175", "scanner": "scanner-primary", "fingerprint": "5fbc954f63526821", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a61c112b611f4bb", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id"}, "properties": {"repobilityId": "2be2973f35d097d5", "scanner": "scanner-primary", "fingerprint": "7a61c112b611f4bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1e281f1de2a558c8", "level": "note", "message": {"text": "Unused endpoint: POST /:id/reset-password"}, "properties": {"repobilityId": "bd8caddc0dc326ef", "scanner": "scanner-primary", "fingerprint": "1e281f1de2a558c8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-94c994d56160a0bc", "level": "note", "message": {"text": "Unused endpoint: POST /:operatorId/scan-code/reset"}, "properties": {"repobilityId": "cc2b0eb273137705", "scanner": "scanner-primary", "fingerprint": "94c994d56160a0bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aa683b36a3920a34", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/stats"}, "properties": {"repobilityId": "8f079261137fb84d", "scanner": "scanner-primary", "fingerprint": "aa683b36a3920a34", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7409b2219a9c1ef6", "level": "note", "message": {"text": "Unused endpoint: GET /orders/queue"}, "properties": {"repobilityId": "46557b060ca4e91c", "scanner": "scanner-primary", "fingerprint": "7409b2219a9c1ef6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a89fb66ae7aa2421", "level": "note", "message": {"text": "Unused endpoint: POST /orders/:orderId/claim"}, "properties": {"repobilityId": "b55e26e3aab8cf8c", "scanner": "scanner-primary", "fingerprint": "a89fb66ae7aa2421", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}