{"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-b2d9343e8955d924", "name": "Stray `console.log` in TS/JS \u2014 src/serviceWorker.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/serviceWorker.js:44"}, "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-837dd8c4ba07fc19", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/fix-permissions-bulk.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/fix-permissions-bulk.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-16573fe3b3a17337", "name": "Stray `console.log` in TS/JS \u2014 src/routes/route.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/routes/route.js:44"}, "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-3d2fdcabac7049d3", "name": "Stray `console.log` in TS/JS \u2014 src/helpers/permissions.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/helpers/permissions.js:57"}, "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-128118924026ee60", "name": "Stray `console.log` in TS/JS \u2014 src/helpers/location_management_helper.js:284", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/helpers/location_management_helper.js:284"}, "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-4ce8b0fac608547c", "name": "Stray `console.log` in TS/JS \u2014 src/helpers/AuthType/fakeBackend.js:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/helpers/AuthType/fakeBackend.js:181"}, "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-dfcb3c4be63406c0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/AutomobileWelcomeComp.js:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/AutomobileWelcomeComp.js:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-14dcd980bed8785c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/AutomobileDashboard.js:335", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/AutomobileDashboard.js:335"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-feb10241b2941051", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/CarSearchesModel.js:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/CarSearchesModel.js:54"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-407d2d24fa67a854", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariants.js:221", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariants.js:221"}, "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-f265899c4f16a59d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarVariants/CarVariantModel.js:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarVariants/CarVariantModel.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bef005b553382b9", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariantPricingModal.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariantPricingModal.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-73985b225eecb035", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariantDetail.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariantDetail.js:24"}, "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-f7bc7218efe622ff", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariant.js:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariant.js:118"}, "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-1de2b344ac3a7a15", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/EditCarVariant.js:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/EditCarVariant.js:133"}, "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-f086f6e384357cda", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/EngineAndTransmissionVariant.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/EngineAndTransmissionVariant.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-913a47c68b1e7d23", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/DimensionAndCapacityVariant.js:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/DimensionAndCapacityVariant.js:94"}, "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-456e58768cda529f", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/FuelPerformanceVariant.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/FuelPerformanceVariant.js:83"}, "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-e5caafe190b68bad", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/CollectionTile.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/CollectionTile.js:27"}, "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-73bf270f6f7bd4fe", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/AddCarCollection.js:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/AddCarCollection.js:138"}, "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-2618c36bb9eb7d9e", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/CarModelCollectionDetails.js:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/CarModelCollectionDetails.js:112"}, "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-191219e4964432bc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarCustomers/CarCustomerModel.js:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarCustomers/CarCustomerModel.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-429a50011c115dc6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarBlogs/CarBlogModel.js:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarBlogs/CarBlogModel.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f71d0ce850ae92e", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarBlogs/CarBlogs.js:188", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarBlogs/CarBlogs.js:188"}, "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-1988b4479209d2e5", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarDealers/CarDealers.js:223", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarDealers/CarDealers.js:223"}, "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-205fbd8582f72e89", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarModels/CarModelDetail.js:80", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarModels/CarModelDetail.js:80"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d30246ca66df36c9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarModels/CarModelModel.js:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarModels/CarModelModel.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29fd97c936f4bd29", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarModels/CarModels.js:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarModels/CarModels.js:140"}, "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-5c8ccc387b99d4fe", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarBrands/CarBrandModel.js:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarBrands/CarBrandModel.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39b8c2be803fa22f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Charts/ChartjsChart.js:33", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Charts/ChartjsChart.js:33"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cc27d323c03702a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard/index.js:354", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard/index.js:354"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8106a4c22e22e44a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard/WelcomeComp.js:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard/WelcomeComp.js:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08eefd1fe074f469", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Blog/BlogList/RightBar.js:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Blog/BlogList/RightBar.js:117"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7486d2488a3d174", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/card-project.js:30", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/card-project.js:30"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ace287b26d54ee03", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/projects-list.js:242", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/projects-list.js:242"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff0fc7bb319e72b8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/ProjectOverview/projectDetail.js:15", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/ProjectOverview/projectDetail.js:15"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23ee9dfb05c27576", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Chat/Chat.js:340", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Chat/Chat.js:340"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd4bace5f7b18ac4", "name": "Stray `console.log` in TS/JS \u2014 src/pages/LocationManagement/Cities/Cities.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/LocationManagement/Cities/Cities.js:71"}, "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-63e1ae3907e438c1", "name": "Stray `console.log` in TS/JS \u2014 src/pages/LocationManagement/Country/Country.js:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/LocationManagement/Country/Country.js:110"}, "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-b96ac6a7b0236485", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Settings/aboutus.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Settings/aboutus.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-a6b7d00a1884e2bf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Content-marketing/FaqPreview.js:32", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Content-marketing/FaqPreview.js:32"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-809b50dfdfb187ec", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Content-marketing/Faqs.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Content-marketing/Faqs.js:25"}, "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-f4d602072874d33b", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Travel/EditTravelCategory.js:244", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Travel/EditTravelCategory.js:244"}, "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-59150a11c59821c8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/Settings.js:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/Settings.js:68"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fcbf5d1c173b545", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/PopularPost.js:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/PopularPost.js:111"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59ac5b781a43e7f6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/Posts.js:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/Posts.js:89"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3f91bf7e169ba34", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-crypto/mini-widget.js:29", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-crypto/mini-widget.js:29"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d157c716a93a0a7", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/sales-analytics.js:45", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/sales-analytics.js:45"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ac5d61eac0fe30d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/card-user.js:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/card-user.js:52"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a27e7dfd97c906f8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/tasks.js:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/tasks.js:81"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18ad09ba91cb4bf1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/mini-widget.js:34", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/mini-widget.js:34"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8fd65b756e7848c", "name": "Stray `console.log` in TS/JS \u2014 src/pages/product-management/PMCollections/AddCollectionForm.jsx:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/product-management/PMCollections/AddCollectionForm.jsx:80"}, "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-867d6ea72e8c807b", "name": "Stray `console.log` in TS/JS \u2014 src/pages/product-management/PMCollections/index.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/product-management/PMCollections/index.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-bb9916b678213764", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Contacts/ContactsProfile/contacts-profile.js:141", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Contacts/ContactsProfile/contacts-profile.js:141"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37a82251d7ee3a58", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceCheckout.js:663", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceCheckout.js:663"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-273f82b17a73173a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceCart.js:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceCart.js:85"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c301233057bbbf14", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceShops/CardShop.js:30", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceShops/CardShop.js:30"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a82b944f166f76f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProducts/RecentProducts.js:30", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProducts/RecentProducts.js:30"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69bffc0d948a452c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProducts/index.js:400", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProducts/index.js:400"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed9f6da1d3e7743e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceOrdersModal.js:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceOrdersModal.js:54"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24a048c73a9055bb", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/OrderDetail.js:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/OrderDetail.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39e9b42854929e84", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/index.js:302", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/index.js:302"}, "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-532abf3ef25b831f", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/NoteContent.js:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/NoteContent.js:79"}, "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-83409d1cba0608cc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/OrderDe", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/OrderDetail.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4f0189d4257bfa5", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/TaskRemainder.js:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/TaskRemainder.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-23019d6470b626c6", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/Overview.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/Overview.js:44"}, "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-c8a951f1c3ee2f2e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/index.j", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/index.js:91"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-508c7e4bbe6bd4ce", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceProductList/index.js:255", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceProductList/index.js:255"}, "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-df5c495edb9e707d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProductList/EcommerceProductListModal.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProductList/EcommerceProductListModal.js:54"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a7e7bdda2b83830", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ui/UiTypography.js:309", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ui/UiTypography.js:309"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fde309b8ef7923e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ui/UiDropdown.js:490", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ui/UiDropdown.js:490"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c05ef1b15982c00", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Register.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Register.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-be922a4903c18de4", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/ForgetPassword.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/ForgetPassword.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-8cef9d371f87de79", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Login.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Login.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-73a3db8fd9010ae2", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Recoverpw.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Recoverpw.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-2dde4572743700fd", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Login2.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Login2.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-0373627f009c21a8", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/ForgetPassword2.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/ForgetPassword2.js:29"}, "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-2f3d68e0a4be886a", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/auth-lock-screen.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/auth-lock-screen.js:32"}, "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-6707c0f197c55462", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Register2.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Register2.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-2f729e959a622a61", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/auth-lock-screen-2.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/auth-lock-screen-2.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-bcf6911af245fe48", "name": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Recoverpw2.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Recoverpw2.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-d6720d762e1a94a6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Invoices/card-invoice.js:39", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Invoices/card-invoice.js:39"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05b61a05616d81e3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Invoices/InvoiceModal.js:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Invoices/InvoiceModal.js:52"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2949447525ae058", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Invoices/AddInvoice.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Invoices/AddInvoice.js:62"}, "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-452d725971d7652f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/EmailTemplates/EmailBuilder.js:369", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/EmailTemplates/EmailBuilder.js:369"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2db716e4022db08a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/EmailTemplates/index.js:462", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/EmailTemplates/index.js:462"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1817e75d3c4a3496", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Testimonials/TesrimonialModel.js:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Testimonials/TesrimonialModel.js:74"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a1eb800434bcbf3", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Testimonials/Testimonials.js:117", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Testimonials/Testimonials.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-2a953fd42767b771", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/Globaltix/GlobaltixBookings.js:2107", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/Globaltix/GlobaltixBookings.js:2107"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc04bfbc7e89441b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/CustomerConsole.js:168", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/CustomerConsole.js:168"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1acb93991f936435", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/Waitlist.js:54", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/Waitlist.js:54"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e82131196c81f08", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/ProviderCredentials.js:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/ProviderCredentials.js:98"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83d88292826b903a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/AuditLog.js:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/AuditLog.js:111"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32a32153d20566e0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/OpsOverview.js:97", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/OpsOverview.js:97"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b229ea0e2af0bdf", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/MarkupConfigModal.js:270", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/MarkupConfigModal.js:270"}, "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-0b872a7a162af878", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/LiveKlookPricing.js:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/LiveKlookPricing.js:80"}, "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-8f6fabef940d9aac", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ConnectKlookModal.js:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ConnectKlookModal.js:111"}, "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-1ddc5d5be520f879", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/NewTourModel.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/NewTourModel.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-922ade508256aa41", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/index.js:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/index.js:156"}, "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-57d83b7bceaa8702", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ViewTourGroup.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ViewTourGroup.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-1d59a9a3f8651f34", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ViewTourGroupComponents/BookingTable.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ViewTourGroupComponents/BookingTable.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-cf1e1ef5ede324be", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/PricingForm/CalendarPreview.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/PricingForm/CalendarPreview.js:60"}, "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-6b2abbffca9d8e09", "name": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/PricingForm/NormalPricingForm.js:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/PricingForm/NormalPricingForm.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-8b234868bd62e701", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Tasks/tasks-list.js:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Tasks/tasks-list.js:63"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-830201c11bbd924f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Tasks/card-tasks.js:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Tasks/card-tasks.js:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87d406c6e096a84c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Email/email-inbox.js:360", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Email/email-inbox.js:360"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2b58d1be898ae02", "name": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariants/tourGroupVariant.js:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariants/tourGroupVariant.js:82"}, "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-d3e70f879144bb05", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/CalendarPricingAndAvailability/index.js:305", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/CalendarPricingAndAvailability/index.js:305"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f467835d869c09a", "name": "Stray `console.log` in TS/JS \u2014 src/pages/CalendarPricingAndAvailability/index.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/CalendarPricingAndAvailability/index.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-668f6d19759cceb6", "name": "Stray `console.log` in TS/JS \u2014 src/pages/CalendarPricingAndAvailability/onBulkUpdate.js:364", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/CalendarPricingAndAvailability/onBulkUpdate.js:364"}, "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-62de063de3c41a9f", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Product_Management/SubCategory/NewSubCategoryForm.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Product_Management/SubCategory/NewSubCategoryForm.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-a640227ee168f003", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Product_Management/SubCategory/TravelSubCategoryDetailsModal.jsx:281", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Product_Management/SubCategory/TravelSubCategoryDetailsModal.jsx:281"}, "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-a339fc1f93e929f2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/JobPages/CandidateOverview/AboutUs.js:94", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/JobPages/CandidateOverview/AboutUs.js:94"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53c0e44014b2b748", "name": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/ViewDetail.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/ViewDetail.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-b746cace08258f73", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/TourGroupVariantData/ViewDetail.js:298", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/TourGroupVariantData/ViewDetail.js:298"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa051e079fdac74a", "name": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/index.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/index.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-bedf28fd85e8cd22", "name": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/AddTourGroupVariants.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/AddTourGroupVariants.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-8890cf0da5e2b2f3", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/AddCollection.js:145", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/AddCollection.js:145"}, "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-5781c16b94490c81", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/CollectionDetails.js:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/CollectionDetails.js:111"}, "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-03b22e775a8d19aa", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/CollectionTile.js:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/CollectionTile.js:43"}, "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-2051b288f6f7af92", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Authentication/Login.js:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Authentication/Login.js:45"}, "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-01438377b7391a7a", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Authentication/ForgotPasswordEmailVerification.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Authentication/ForgotPasswordEmailVerification.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-c3e6f27b76cea3c9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Customers/CustomersList.js:849", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Customers/CustomersList.js:849"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4321d3948ed12039", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Forms/FormValidations.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Forms/FormValidations.js:50"}, "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-ac8497deeb4b40f1", "name": "Stray `console.log` in TS/JS \u2014 src/pages/Forms/FormEditors.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Forms/FormEditors.js:27"}, "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-bb0d5ba5fe3007d6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/FileManager/Storage.js:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/FileManager/Storage.js:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-94bf91c66e6135cc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/FileManager/FileList.js:105", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/FileManager/FileList.js:105"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f139281eb0dbc20c", "name": "Stray `console.log` in TS/JS \u2014 src/pages/DashboardJob/StatisticsApplications.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/DashboardJob/StatisticsApplications.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-2b6ffb4212dc3618", "name": "Stray `console.log` in TS/JS \u2014 src/store/layout/saga.js:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/layout/saga.js:74"}, "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-101df51c4a6ff392", "name": "Stray `console.log` in TS/JS \u2014 src/store/auth/login/saga.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/auth/login/saga.js:50"}, "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-2cea4ff55e1c2c8e", "name": "Stray `console.log` in TS/JS \u2014 src/store/travelCategories/saga.js:269", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/travelCategories/saga.js:269"}, "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-3ee3319485d4e6be", "name": "Stray `console.log` in TS/JS \u2014 src/store/product-management/collections/saga.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/product-management/collections/saga.js:50"}, "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-0e558f49304cfa91", "name": "Stray `console.log` in TS/JS \u2014 src/store/TourGroupVariant/saga.js:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/TourGroupVariant/saga.js:75"}, "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-613d997487ccde9d", "name": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carModelCollections/saga.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carModelCollections/saga.js:83"}, "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-d5346d8f81995a18", "name": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carVariants/saga.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carVariants/saga.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-162061753cc318e8", "name": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carCustomers/saga.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carCustomers/saga.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-880e7a2b0276ae5e", "name": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carBlogs/reducer.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carBlogs/reducer.js:71"}, "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-107c83ea06516a0b", "name": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carBlogs/saga.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carBlogs/saga.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-624e2714efab2cd8", "name": "Stray `console.log` in TS/JS \u2014 src/store/collections/saga.js:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/collections/saga.js:59"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f356c5ad2bd46202", "name": "Stray `console.log` in TS/JS \u2014 src/store/dashboard-sub-admin/saga.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/dashboard-sub-admin/saga.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-3cfdfac8e90f60da", "name": "Stray `console.log` in TS/JS \u2014 src/store/faqs/saga.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/faqs/saga.js:31"}, "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-b8a5bad21515d116", "name": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/reducer.js:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/reducer.js:128"}, "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-64e50ea469879892", "name": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/saga.js:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/saga.js:137"}, "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-9e76a442067ab064", "name": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/action.js:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/action.js:96"}, "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-10f9d85286647f85", "name": "Stray `console.log` in TS/JS \u2014 src/store/travelCurrency/saga.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/travelCurrency/saga.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-e98a2d23eec8cd76", "name": "TODO/FIXME marker in shipping code \u2014 src/store/e-commerce/saga.js:233", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/store/e-commerce/saga.js:233"}, "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-85e3b61e5a0ecab3", "name": "Stray `console.log` in TS/JS \u2014 src/store/e-commerce/saga.js:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/e-commerce/saga.js:128"}, "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-6acaaf69c00e8df7", "name": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/reducer.js:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/reducer.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-09082bf5e02a5dbd", "name": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/actions.js:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/actions.js:74"}, "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-1aaef2e479aed8ea", "name": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/saga.js:127", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/saga.js:127"}, "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-9edd0333b9e21f51", "name": "Stray `console.log` in TS/JS \u2014 src/store/countries/saga.js:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/store/countries/saga.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-7176e5d95d18d844", "name": "Runtime dotenv file present in repo: .env", "shortDescription": {"text": "Runtime dotenv file present in repo: .env"}, "fullDescription": {"text": "`.env` looks like a runtime dotenv file. It contains secret-looking assignments for REACT_APP_APIKEY. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-ca7eecd80ff31281", "name": "Possible secret in src/helpers/url_helper.js", "shortDescription": {"text": "Possible secret in src/helpers/url_helper.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-8aff4cd1a8c09a1a", "name": "Insecure pattern 'local_storage_auth_token' in src/helpers/firebase_helper.js:14", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/helpers/firebase_helper.js:14"}, "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-0756773f54cad310", "name": "Insecure pattern 'local_storage_auth_token' in src/helpers/AuthType/fakeBackend.js:166", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/helpers/AuthType/fakeBackend.js:166"}, "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-9104fe9543215d06", "name": "Possible secret in src/helpers/jwt-token-access/apiKey.js", "shortDescription": {"text": "Possible secret in src/helpers/jwt-token-access/apiKey.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-8eeb5554df70c52d", "name": "Possible secret in src/pages/Maps/MapsGoogle.js", "shortDescription": {"text": "Possible secret in src/pages/Maps/MapsGoogle.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-4347198419e118f2", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/AdvertiseWithUs.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/AdvertiseWithUs.js:107"}, "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-e514e64774fe65c8", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/investors.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/investors.js:107"}, "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-e6ad3ff9479c115f", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/faqs.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/faqs.js:107"}, "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-ca6c375f5cec918c", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/corporatePolicy.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/corporatePolicy.js:107"}, "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-7e5a0cd3ac8b5361", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/termsandconditions.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/termsandconditions.js:107"}, "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-9aa6f69d64ac0c3a", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/privacyPolicy.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/privacyPolicy.js:107"}, "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-a0736c233d175b9c", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/contactus.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/contactus.js:107"}, "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-efb0a5c0b0441581", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/careerwithus.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/careerwithus.js:107"}, "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-fafab1f873315179", "name": "Insecure pattern 'dangerous_innerhtml' in src/pages/Content-marketing/FaqPreview.js:32", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/Content-marketing/FaqPreview.js:32"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82075bd0573db96d", "name": "Possible secret in src/pages/Ui/UiLightbox.js", "shortDescription": {"text": "Possible secret in src/pages/Ui/UiLightbox.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-06abfba9eeba38bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/pages/Icons/IconFontawesome.js:56", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/pages/Icons/IconFontawesome.js:56"}, "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-180ac5519b234b03", "name": "Insecure pattern 'dangerous_innerhtml' in src/pages/Email/email-inbox.js:360", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/Email/email-inbox.js:360"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a83fa9714cdccc6", "name": "Insecure pattern 'dangerous_innerhtml' in src/pages/TourGroupVariantData/ViewDetail.js:298", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/TourGroupVariantData/ViewDetail.js:298"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-760b952f788665ad", "name": "Insecure pattern 'local_storage_auth_token' in src/pages/Authentication/user-profile.js:107", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Authentication/user-profile.js:107"}, "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-f19469d30f10bea7", "name": "Insecure pattern 'dangerous_innerhtml' in src/pages/Customers/CustomersList.js:849", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/Customers/CustomersList.js:849"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b226d28dca7dd8b", "name": "Insecure pattern 'local_storage_auth_token' in src/store/auth/login/saga.js:26", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/store/auth/login/saga.js:26"}, "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-07f7d83055c3e282", "name": "Very large file: src/pages/Automobile/AutomobileCollections/IconSelector.js (29349 lines)", "shortDescription": {"text": "Very large file: src/pages/Automobile/AutomobileCollections/IconSelector.js (29349 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-56373a0d9e0ebd6a", "name": "Very large file: src/pages/Automobile/CarModels/CarModels.js (1749 lines)", "shortDescription": {"text": "Very large file: src/pages/Automobile/CarModels/CarModels.js (1749 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-ecda003b19dff2c4", "name": "Very large file: src/pages/LocationManagement/Country/Country.js (1320 lines)", "shortDescription": {"text": "Very large file: src/pages/LocationManagement/Country/Country.js (1320 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-ba5c562a338d251e", "name": "Very large file: src/pages/product-management/PMCollections/AddCollectionForm.jsx (1340 lines)", "shortDescription": {"text": "Very large file: src/pages/product-management/PMCollections/AddCollectionForm.jsx (1340 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-fbab16aae9fd0607", "name": "Very large file: src/pages/Ecommerce/EcommerceOrders/index.js (1477 lines)", "shortDescription": {"text": "Very large file: src/pages/Ecommerce/EcommerceOrders/index.js (1477 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-7bb406916c3cc655", "name": "Very large file: src/pages/Ui/UiTabsAccordions.js (1175 lines)", "shortDescription": {"text": "Very large file: src/pages/Ui/UiTabsAccordions.js (1175 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-3a8cf93fb06ac689", "name": "Very large file: src/pages/Icons/IconBoxicons.js (3471 lines)", "shortDescription": {"text": "Very large file: src/pages/Icons/IconBoxicons.js (3471 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-a269433587d7dd35", "name": "Very large file: src/pages/Icons/IconMaterialdesign.js (23598 lines)", "shortDescription": {"text": "Very large file: src/pages/Icons/IconMaterialdesign.js (23598 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-39d6c25f7f87046d", "name": "Very large file: src/pages/EmailTemplates/WorkflowEditor.js (1367 lines)", "shortDescription": {"text": "Very large file: src/pages/EmailTemplates/WorkflowEditor.js (1367 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-3bcab5497c8a3252", "name": "Very large file: src/pages/tickyourlist/Globaltix/GlobaltixBookings.js (2635 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/Globaltix/GlobaltixBookings.js (2635 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-2afe8c1d459861eb", "name": "Very large file: src/pages/tickyourlist/TravelTourGroup/MarkupConfigModal.js (2173 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/MarkupConfigModal.js (2173 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-c9b9dcb5eacc6163", "name": "Very large file: src/pages/tickyourlist/TravelTourGroup/LiveKlookPricing.js (1311 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/LiveKlookPricing.js (1311 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-4c3135cc302c6105", "name": "Very large file: src/pages/tickyourlist/TravelTourGroup/ConnectProviderModal.js (1307 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/ConnectProviderModal.js (1307 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-9fb1b0fe130d7bab", "name": "Very large file: src/pages/tickyourlist/TravelTourGroup/EditKlookMappingModal.js (1434 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/EditKlookMappingModal.js (1434 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-934723bb9146f86b", "name": "Very large file: src/pages/tickyourlist/TravelTourGroup/NewTourModel.js (1854 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/NewTourModel.js (1854 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-2ba0f1110bef74c5", "name": "Very large file: src/pages/tickyourlist/TravelTourGroup/ImportKlookPackagesModal.js (955 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/ImportKlookPackagesModal.js (955 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-dab18986f58f9671", "name": "Very large file: src/pages/tickyourlist/TravelTourGroup/PricingForm/RuleBasedPricingBuilder.js (1481 lines)", "shortDescription": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/PricingForm/RuleBasedPricingBuilder.js (1481 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-041d8e37477e6a12", "name": "Very large file: src/pages/Collections/IconSelector.js (29349 lines)", "shortDescription": {"text": "Very large file: src/pages/Collections/IconSelector.js (29349 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-81b2b1ec4d664959", "name": "Very large file: src/pages/Customers/CustomersList.js (1545 lines)", "shortDescription": {"text": "Very large file: src/pages/Customers/CustomersList.js (1545 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-299d2152e674feba", "name": "Very large file: src/pages/Forms/FormAdvanced.js (1501 lines)", "shortDescription": {"text": "Very large file: src/pages/Forms/FormAdvanced.js (1501 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "14 test file(s) for 866 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 321 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 988 placeholder/mock markers across 190 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "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-14856cd2abaed38e", "name": "Commented-code block (10 lines) in src/App.js:28", "shortDescription": {"text": "Commented-code block (10 lines) in src/App.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-24b15a575c2ad0f1", "name": "Commented-code block (5 lines) in src/serviceWorker.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/serviceWorker.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-ba8d165c7f23d524", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/serviceWorker.js:103", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/serviceWorker.js:103"}, "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-af7448c5461a738e", "name": "Commented-code block (6 lines) in src/pages/Automobile/Dashboard/AutomobileDashboard.js:145", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/Automobile/Dashboard/AutomobileDashboard.js:145"}, "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-854022519ab52b09", "name": "Commented-code block (10 lines) in src/pages/Automobile/Dashboard/LatestCarSearches.js:67", "shortDescription": {"text": "Commented-code block (10 lines) in src/pages/Automobile/Dashboard/LatestCarSearches.js:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-234ebdd05ee0ddb0", "name": "Commented-code block (41 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/EngineAndTransmissionVariant.js:5", "shortDescription": {"text": "Commented-code block (41 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/EngineAndTransmissionVariant.js:52"}, "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-f48f9d571d172b7e", "name": "Commented-code block (27 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/BasicCarVariant.js:47", "shortDescription": {"text": "Commented-code block (27 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/BasicCarVariant.js:47"}, "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-706d5fcf10fd120f", "name": "Commented-code block (15 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/WarrantyVariant.js:125", "shortDescription": {"text": "Commented-code block (15 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/WarrantyVariant.js:125"}, "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-e2462b3e5c23b2dd", "name": "Commented-code block (44 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/SuspensionSteeringBrakesVariant.j", "shortDescription": {"text": "Commented-code block (44 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/SuspensionSteeringBrakesVariant.js:54"}, "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-1ae254a696f86157", "name": "Commented-code block (36 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/DimensionAndCapacityVariant.js:56", "shortDescription": {"text": "Commented-code block (36 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/DimensionAndCapacityVariant.js:56"}, "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-21c40623648ca3dd", "name": "Commented-code block (14 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/FuelPerformanceVariant.js:66", "shortDescription": {"text": "Commented-code block (14 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/FuelPerformanceVariant.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-2c12e52a443bdb19", "name": "Commented-code block (12 lines) in src/pages/Automobile/AutomobileCollections/AddCarCollection.js:164", "shortDescription": {"text": "Commented-code block (12 lines) in src/pages/Automobile/AutomobileCollections/AddCarCollection.js:164"}, "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-b1e56a1d54f9d640", "name": "Commented-code block (15 lines) in src/pages/Automobile/AutomobileCollections/CarModelCollectionDetails.js:228", "shortDescription": {"text": "Commented-code block (15 lines) in src/pages/Automobile/AutomobileCollections/CarModelCollectionDetails.js:228"}, "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-df54caa00e970de4", "name": "Commented-code block (29 lines) in src/pages/Automobile/CarBlogs/CarBlogs.js:69", "shortDescription": {"text": "Commented-code block (29 lines) in src/pages/Automobile/CarBlogs/CarBlogs.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-c0093080385da55a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/LocationManagement/Cities/CityDetails.js:213", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/LocationManagement/Cities/CityDetails.js:213"}, "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-c4014da0bf309c89", "name": "Commented-code block (7 lines) in src/pages/LocationManagement/Country/CountryDetailModal.js:193", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/LocationManagement/Country/CountryDetailModal.js:193"}, "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-f97afdc6a1dec220", "name": "Commented-code block (5 lines) in src/pages/LocationManagement/Country/Country.js:108", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/LocationManagement/Country/Country.js:108"}, "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-fa76c7f6d660e874", "name": "Commented-code block (13 lines) in src/pages/Travel/Settings.js:171", "shortDescription": {"text": "Commented-code block (13 lines) in src/pages/Travel/Settings.js:171"}, "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-2a558a75c47966dd", "name": "Commented-code block (5 lines) in src/pages/product-management/PMCollections/AddCollectionForm.jsx:59", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/product-management/PMCollections/AddCollectionForm.jsx:59"}, "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-7774cb2cbcbf3e7e", "name": "Commented-code block (6 lines) in src/pages/Ecommerce/EcommerceAddProduct.js:22", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/Ecommerce/EcommerceAddProduct.js:22"}, "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-ee6ea3a3ad7a41b0", "name": "Commented-code block (15 lines) in src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/Overview.js:1", "shortDescription": {"text": "Commented-code block (15 lines) in src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/Overview.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-69cef7286ffe1984", "name": "Commented-code block (15 lines) in src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/InvoiceDetailModal.js:47", "shortDescription": {"text": "Commented-code block (15 lines) in src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/InvoiceDetailModal.js:47"}, "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-aeaf5267eb384291", "name": "Commented-code block (5 lines) in src/pages/Ui/CarouselTypes/slide.js:48", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/Ui/CarouselTypes/slide.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-bb8bdf3edd4d5f2e", "name": "Commented-code block (10 lines) in src/pages/EmailTemplates/WorkflowEditor_FINAL_UPDATES.js:15", "shortDescription": {"text": "Commented-code block (10 lines) in src/pages/EmailTemplates/WorkflowEditor_FINAL_UPDATES.js:15"}, "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-c1c8b056a3f65037", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/tickyourlist/Globaltix/GlobtixPricingCalendar.js:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/tickyourlist/Globaltix/GlobtixPricingCalendar.js:60"}, "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-8cb1ba31917d54bf", "name": "Commented-code block (23 lines) in src/pages/tickyourlist/TravelTourGroup/NewTourModel.js:251", "shortDescription": {"text": "Commented-code block (23 lines) in src/pages/tickyourlist/TravelTourGroup/NewTourModel.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-ffa62a625b549d63", "name": "Commented-code block (6 lines) in src/pages/Product_Management/SubCategory/EditSubCategory.jsx:216", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/Product_Management/SubCategory/EditSubCategory.jsx:216"}, "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-87b8fac0b7434f6a", "name": "Commented-code block (5 lines) in src/pages/TourGroupVariantData/AddTourGroupVariants.js:132", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/TourGroupVariantData/AddTourGroupVariants.js:132"}, "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-c9f2d68dfe677713", "name": "Commented-code block (12 lines) in src/pages/Collections/AddCollection.js:164", "shortDescription": {"text": "Commented-code block (12 lines) in src/pages/Collections/AddCollection.js:164"}, "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-8d08beb57cfae0c4", "name": "Commented-code block (15 lines) in src/pages/Collections/CollectionDetails.js:212", "shortDescription": {"text": "Commented-code block (15 lines) in src/pages/Collections/CollectionDetails.js:212"}, "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-d2ec326d4578c842", "name": "Commented-code block (6 lines) in src/pages/Forms/FormElements.js:999", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/Forms/FormElements.js:999"}, "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-5c4ac1e105f36b9b", "name": "Commented-code block (7 lines) in src/pages/Forms/FormValidations.js:865", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/Forms/FormValidations.js:865"}, "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-badac19dfb5aa5bf", "name": "Commented-code block (8 lines) in src/store/travelCity/saga.js:200", "shortDescription": {"text": "Commented-code block (8 lines) in src/store/travelCity/saga.js:200"}, "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-7603989e6e99109a", "name": "Commented-code block (6 lines) in src/store/product-management/collections/saga.js:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/store/product-management/collections/saga.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}}]}}, "automationDetails": {"id": "repobility/21278"}, "properties": {"repository": "TickYourList/tickyourlist-dashboard", "repoUrl": "https://github.com/TickYourList/tickyourlist-dashboard", "branch": "main"}, "results": [{"ruleId": "scanner-b2d9343e8955d924", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/serviceWorker.js:44"}, "properties": {"repobilityId": "6338c6e2a0d2ebd2", "scanner": "scanner-primary", "fingerprint": "b2d9343e8955d924", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-837dd8c4ba07fc19", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/fix-permissions-bulk.js:26"}, "properties": {"repobilityId": "cb72b7ad44134a90", "scanner": "scanner-primary", "fingerprint": "837dd8c4ba07fc19", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16573fe3b3a17337", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/routes/route.js:44"}, "properties": {"repobilityId": "b855bf03b6002bdb", "scanner": "scanner-primary", "fingerprint": "16573fe3b3a17337", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d2fdcabac7049d3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/helpers/permissions.js:57"}, "properties": {"repobilityId": "80cba5066d18428d", "scanner": "scanner-primary", "fingerprint": "3d2fdcabac7049d3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-128118924026ee60", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/helpers/location_management_helper.js:284"}, "properties": {"repobilityId": "4dad36683f6871d6", "scanner": "scanner-primary", "fingerprint": "128118924026ee60", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ce8b0fac608547c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/helpers/AuthType/fakeBackend.js:181"}, "properties": {"repobilityId": "a9213543f8822358", "scanner": "scanner-primary", "fingerprint": "4ce8b0fac608547c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dfcb3c4be63406c0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/AutomobileWelcomeComp.js:37"}, "properties": {"repobilityId": "72d0628b9018b132", "scanner": "scanner-primary", "fingerprint": "dfcb3c4be63406c0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-14dcd980bed8785c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/AutomobileDashboard.js:335"}, "properties": {"repobilityId": "8de4b00fb55dcf87", "scanner": "scanner-primary", "fingerprint": "14dcd980bed8785c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-feb10241b2941051", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/Dashboard/CarSearchesModel.js:54"}, "properties": {"repobilityId": "aebee20d7888e892", "scanner": "scanner-primary", "fingerprint": "feb10241b2941051", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-407d2d24fa67a854", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariants.js:221"}, "properties": {"repobilityId": "9dc51c6b2a5d7026", "scanner": "scanner-primary", "fingerprint": "407d2d24fa67a854", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f265899c4f16a59d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarVariants/CarVariantModel.js:74"}, "properties": {"repobilityId": "804806db6efe1da6", "scanner": "scanner-primary", "fingerprint": "f265899c4f16a59d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3bef005b553382b9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariantPricingModal.js:104"}, "properties": {"repobilityId": "e4a519edcfe05700", "scanner": "scanner-primary", "fingerprint": "3bef005b553382b9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73985b225eecb035", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/CarVariantDetail.js:24"}, "properties": {"repobilityId": "9cc86fee85d1ed87", "scanner": "scanner-primary", "fingerprint": "73985b225eecb035", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7bc7218efe622ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariant.js:118"}, "properties": {"repobilityId": "b8618ea272e9e68b", "scanner": "scanner-primary", "fingerprint": "f7bc7218efe622ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1de2b344ac3a7a15", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/EditCarVariant.js:133"}, "properties": {"repobilityId": "fdb00e4818d07758", "scanner": "scanner-primary", "fingerprint": "1de2b344ac3a7a15", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f086f6e384357cda", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/EngineAndTransmissionVariant.js:97"}, "properties": {"repobilityId": "f3214fc1e21f4b18", "scanner": "scanner-primary", "fingerprint": "f086f6e384357cda", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-913a47c68b1e7d23", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/DimensionAndCapacityVariant.js:94"}, "properties": {"repobilityId": "1751a7ead7d01e97", "scanner": "scanner-primary", "fingerprint": "913a47c68b1e7d23", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-456e58768cda529f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarVariants/AddCarVariantPages/FuelPerformanceVariant.js:83"}, "properties": {"repobilityId": "8e318f809248b6c1", "scanner": "scanner-primary", "fingerprint": "456e58768cda529f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5caafe190b68bad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/CollectionTile.js:27"}, "properties": {"repobilityId": "d738a441413d6f43", "scanner": "scanner-primary", "fingerprint": "e5caafe190b68bad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73bf270f6f7bd4fe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/AddCarCollection.js:138"}, "properties": {"repobilityId": "790d7bb4d07211fa", "scanner": "scanner-primary", "fingerprint": "73bf270f6f7bd4fe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2618c36bb9eb7d9e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/AutomobileCollections/CarModelCollectionDetails.js:112"}, "properties": {"repobilityId": "2f562363001ec16a", "scanner": "scanner-primary", "fingerprint": "2618c36bb9eb7d9e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-191219e4964432bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarCustomers/CarCustomerModel.js:74"}, "properties": {"repobilityId": "71820493cfaeb394", "scanner": "scanner-primary", "fingerprint": "191219e4964432bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-429a50011c115dc6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarBlogs/CarBlogModel.js:74"}, "properties": {"repobilityId": "7fcd0d8419fc4033", "scanner": "scanner-primary", "fingerprint": "429a50011c115dc6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f71d0ce850ae92e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarBlogs/CarBlogs.js:188"}, "properties": {"repobilityId": "ad97be6e6f1be538", "scanner": "scanner-primary", "fingerprint": "9f71d0ce850ae92e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1988b4479209d2e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarDealers/CarDealers.js:223"}, "properties": {"repobilityId": "f30c1e3b59122c4d", "scanner": "scanner-primary", "fingerprint": "1988b4479209d2e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-205fbd8582f72e89", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarModels/CarModelDetail.js:80"}, "properties": {"repobilityId": "c129bf98c5610723", "scanner": "scanner-primary", "fingerprint": "205fbd8582f72e89", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d30246ca66df36c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarModels/CarModelModel.js:74"}, "properties": {"repobilityId": "29de3102f3e2aeef", "scanner": "scanner-primary", "fingerprint": "d30246ca66df36c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-29fd97c936f4bd29", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Automobile/CarModels/CarModels.js:140"}, "properties": {"repobilityId": "8824e96ffbd50691", "scanner": "scanner-primary", "fingerprint": "29fd97c936f4bd29", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5c8ccc387b99d4fe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Automobile/CarBrands/CarBrandModel.js:74"}, "properties": {"repobilityId": "201d652a1d956de5", "scanner": "scanner-primary", "fingerprint": "5c8ccc387b99d4fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39b8c2be803fa22f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Charts/ChartjsChart.js:33"}, "properties": {"repobilityId": "ec06d6d27cdce544", "scanner": "scanner-primary", "fingerprint": "39b8c2be803fa22f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1cc27d323c03702a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard/index.js:354"}, "properties": {"repobilityId": "4fb5688fdca93fbd", "scanner": "scanner-primary", "fingerprint": "1cc27d323c03702a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8106a4c22e22e44a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard/WelcomeComp.js:37"}, "properties": {"repobilityId": "59d21e61263a746a", "scanner": "scanner-primary", "fingerprint": "8106a4c22e22e44a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-08eefd1fe074f469", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Blog/BlogList/RightBar.js:117"}, "properties": {"repobilityId": "60868738c2efe212", "scanner": "scanner-primary", "fingerprint": "08eefd1fe074f469", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c7486d2488a3d174", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/card-project.js:30"}, "properties": {"repobilityId": "cb6053f83119b041", "scanner": "scanner-primary", "fingerprint": "c7486d2488a3d174", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ace287b26d54ee03", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/projects-list.js:242"}, "properties": {"repobilityId": "47d7b89e81d2a599", "scanner": "scanner-primary", "fingerprint": "ace287b26d54ee03", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ff0fc7bb319e72b8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Projects/ProjectOverview/projectDetail.js:15"}, "properties": {"repobilityId": "11811021d4618a0a", "scanner": "scanner-primary", "fingerprint": "ff0fc7bb319e72b8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-23ee9dfb05c27576", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Chat/Chat.js:340"}, "properties": {"repobilityId": "6b90d1c9fc28f5e1", "scanner": "scanner-primary", "fingerprint": "23ee9dfb05c27576", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dd4bace5f7b18ac4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/LocationManagement/Cities/Cities.js:71"}, "properties": {"repobilityId": "9b94d16c4f1b22e3", "scanner": "scanner-primary", "fingerprint": "dd4bace5f7b18ac4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63e1ae3907e438c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/LocationManagement/Country/Country.js:110"}, "properties": {"repobilityId": "885914a10d4e722f", "scanner": "scanner-primary", "fingerprint": "63e1ae3907e438c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b96ac6a7b0236485", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Settings/aboutus.js:46"}, "properties": {"repobilityId": "e81ea5b90a3a5e4f", "scanner": "scanner-primary", "fingerprint": "b96ac6a7b0236485", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a6b7d00a1884e2bf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Content-marketing/FaqPreview.js:32"}, "properties": {"repobilityId": "d3155d59d1c4f27d", "scanner": "scanner-primary", "fingerprint": "a6b7d00a1884e2bf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-809b50dfdfb187ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Content-marketing/Faqs.js:25"}, "properties": {"repobilityId": "9caa821350f54f52", "scanner": "scanner-primary", "fingerprint": "809b50dfdfb187ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f4d602072874d33b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Travel/EditTravelCategory.js:244"}, "properties": {"repobilityId": "f1ceed9296418bbc", "scanner": "scanner-primary", "fingerprint": "f4d602072874d33b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-59150a11c59821c8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/Settings.js:68"}, "properties": {"repobilityId": "79f5a330a92d7ee5", "scanner": "scanner-primary", "fingerprint": "59150a11c59821c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3fcbf5d1c173b545", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/PopularPost.js:111"}, "properties": {"repobilityId": "e7c7dcbf0ddd72b1", "scanner": "scanner-primary", "fingerprint": "3fcbf5d1c173b545", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-59ac5b781a43e7f6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-Blog/Posts.js:89"}, "properties": {"repobilityId": "da673fe8552b3176", "scanner": "scanner-primary", "fingerprint": "59ac5b781a43e7f6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e3f91bf7e169ba34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-crypto/mini-widget.js:29"}, "properties": {"repobilityId": "66f63551ac0de23a", "scanner": "scanner-primary", "fingerprint": "e3f91bf7e169ba34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d157c716a93a0a7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/sales-analytics.js:45"}, "properties": {"repobilityId": "d0414000df9f32d8", "scanner": "scanner-primary", "fingerprint": "3d157c716a93a0a7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ac5d61eac0fe30d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/card-user.js:52"}, "properties": {"repobilityId": "f84ead28d4eeaecd", "scanner": "scanner-primary", "fingerprint": "5ac5d61eac0fe30d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a27e7dfd97c906f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/tasks.js:81"}, "properties": {"repobilityId": "db558a0ec0c47295", "scanner": "scanner-primary", "fingerprint": "a27e7dfd97c906f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-18ad09ba91cb4bf1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard-saas/mini-widget.js:34"}, "properties": {"repobilityId": "2001213423cdc2ab", "scanner": "scanner-primary", "fingerprint": "18ad09ba91cb4bf1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e8fd65b756e7848c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/product-management/PMCollections/AddCollectionForm.jsx:80"}, "properties": {"repobilityId": "3677ce1a247625cd", "scanner": "scanner-primary", "fingerprint": "e8fd65b756e7848c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-867d6ea72e8c807b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/product-management/PMCollections/index.js:33"}, "properties": {"repobilityId": "909f053b4a6af0b0", "scanner": "scanner-primary", "fingerprint": "867d6ea72e8c807b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb9916b678213764", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Contacts/ContactsProfile/contacts-profile.js:141"}, "properties": {"repobilityId": "3a3fbe675ea23c5c", "scanner": "scanner-primary", "fingerprint": "bb9916b678213764", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-37a82251d7ee3a58", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceCheckout.js:663"}, "properties": {"repobilityId": "1b2b6f283d59f110", "scanner": "scanner-primary", "fingerprint": "37a82251d7ee3a58", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-273f82b17a73173a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceCart.js:85"}, "properties": {"repobilityId": "acc9ad199d9c9de9", "scanner": "scanner-primary", "fingerprint": "273f82b17a73173a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c301233057bbbf14", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceShops/CardShop.js:30"}, "properties": {"repobilityId": "f8c91ea9ec523acd", "scanner": "scanner-primary", "fingerprint": "c301233057bbbf14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5a82b944f166f76f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProducts/RecentProducts.js:30"}, "properties": {"repobilityId": "f26735b64b5d2bb9", "scanner": "scanner-primary", "fingerprint": "5a82b944f166f76f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-69bffc0d948a452c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProducts/index.js:400"}, "properties": {"repobilityId": "f78cbe0c43f87aad", "scanner": "scanner-primary", "fingerprint": "69bffc0d948a452c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed9f6da1d3e7743e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceOrdersModal.js:54"}, "properties": {"repobilityId": "5408da6051bfe02f", "scanner": "scanner-primary", "fingerprint": "ed9f6da1d3e7743e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-24a048c73a9055bb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/OrderDetail.js:74"}, "properties": {"repobilityId": "87ca6a30848eeac1", "scanner": "scanner-primary", "fingerprint": "24a048c73a9055bb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39e9b42854929e84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/index.js:302"}, "properties": {"repobilityId": "929699a24ed7b903", "scanner": "scanner-primary", "fingerprint": "39e9b42854929e84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-532abf3ef25b831f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/NoteContent.js:79"}, "properties": {"repobilityId": "8ae58272a4049108", "scanner": "scanner-primary", "fingerprint": "532abf3ef25b831f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-83409d1cba0608cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/OrderDetail.js:74"}, "properties": {"repobilityId": "e90bf2de71c26096", "scanner": "scanner-primary", "fingerprint": "83409d1cba0608cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f4f0189d4257bfa5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/TaskRemainder.js:66"}, "properties": {"repobilityId": "41e3c38ddbf809df", "scanner": "scanner-primary", "fingerprint": "f4f0189d4257bfa5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-23019d6470b626c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/Overview.js:44"}, "properties": {"repobilityId": "fbb522dee4bda5b2", "scanner": "scanner-primary", "fingerprint": "23019d6470b626c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c8a951f1c3ee2f2e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/index.js:91"}, "properties": {"repobilityId": "999c9693c41fe00f", "scanner": "scanner-primary", "fingerprint": "c8a951f1c3ee2f2e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-508c7e4bbe6bd4ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Ecommerce/EcommerceProductList/index.js:255"}, "properties": {"repobilityId": "52e016f4338c979f", "scanner": "scanner-primary", "fingerprint": "508c7e4bbe6bd4ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df5c495edb9e707d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ecommerce/EcommerceProductList/EcommerceProductListModal.js:54"}, "properties": {"repobilityId": "bdd27641b515c27b", "scanner": "scanner-primary", "fingerprint": "df5c495edb9e707d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a7e7bdda2b83830", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ui/UiTypography.js:309"}, "properties": {"repobilityId": "2286eef6d412ce0a", "scanner": "scanner-primary", "fingerprint": "3a7e7bdda2b83830", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0fde309b8ef7923e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Ui/UiDropdown.js:490"}, "properties": {"repobilityId": "88b0c6bf6ab16ebd", "scanner": "scanner-primary", "fingerprint": "0fde309b8ef7923e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0c05ef1b15982c00", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Register.js:37"}, "properties": {"repobilityId": "481e270a7035af04", "scanner": "scanner-primary", "fingerprint": "0c05ef1b15982c00", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be922a4903c18de4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/ForgetPassword.js:26"}, "properties": {"repobilityId": "a76baba1b6188d3c", "scanner": "scanner-primary", "fingerprint": "be922a4903c18de4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8cef9d371f87de79", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Login.js:37"}, "properties": {"repobilityId": "c64bfb7dd1d12334", "scanner": "scanner-primary", "fingerprint": "8cef9d371f87de79", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73a3db8fd9010ae2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Recoverpw.js:39"}, "properties": {"repobilityId": "677a56112782fe5c", "scanner": "scanner-primary", "fingerprint": "73a3db8fd9010ae2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2dde4572743700fd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Login2.js:34"}, "properties": {"repobilityId": "268408daba313e5d", "scanner": "scanner-primary", "fingerprint": "2dde4572743700fd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0373627f009c21a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/ForgetPassword2.js:29"}, "properties": {"repobilityId": "1c994ac01a6b2050", "scanner": "scanner-primary", "fingerprint": "0373627f009c21a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f3d68e0a4be886a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/auth-lock-screen.js:32"}, "properties": {"repobilityId": "3313d613097e13e1", "scanner": "scanner-primary", "fingerprint": "2f3d68e0a4be886a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6707c0f197c55462", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Register2.js:35"}, "properties": {"repobilityId": "7393d0ddf2dbd00f", "scanner": "scanner-primary", "fingerprint": "6707c0f197c55462", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f729e959a622a61", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/auth-lock-screen-2.js:33"}, "properties": {"repobilityId": "3c82a959ac11f51d", "scanner": "scanner-primary", "fingerprint": "2f729e959a622a61", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcf6911af245fe48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/AuthenticationInner/Recoverpw2.js:28"}, "properties": {"repobilityId": "9de6498d90e59131", "scanner": "scanner-primary", "fingerprint": "bcf6911af245fe48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6720d762e1a94a6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Invoices/card-invoice.js:39"}, "properties": {"repobilityId": "da8950e4d8831705", "scanner": "scanner-primary", "fingerprint": "d6720d762e1a94a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-05b61a05616d81e3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Invoices/InvoiceModal.js:52"}, "properties": {"repobilityId": "b3208c8530aaab6a", "scanner": "scanner-primary", "fingerprint": "05b61a05616d81e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2949447525ae058", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Invoices/AddInvoice.js:62"}, "properties": {"repobilityId": "871dce182358584a", "scanner": "scanner-primary", "fingerprint": "c2949447525ae058", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-452d725971d7652f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/EmailTemplates/EmailBuilder.js:369"}, "properties": {"repobilityId": "bd077c2c51fc5945", "scanner": "scanner-primary", "fingerprint": "452d725971d7652f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2db716e4022db08a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/EmailTemplates/index.js:462"}, "properties": {"repobilityId": "f653281060ecd6ff", "scanner": "scanner-primary", "fingerprint": "2db716e4022db08a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1817e75d3c4a3496", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Testimonials/TesrimonialModel.js:74"}, "properties": {"repobilityId": "f21d48acffb5ff30", "scanner": "scanner-primary", "fingerprint": "1817e75d3c4a3496", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6a1eb800434bcbf3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Testimonials/Testimonials.js:117"}, "properties": {"repobilityId": "cd07500afcdfdf51", "scanner": "scanner-primary", "fingerprint": "6a1eb800434bcbf3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a953fd42767b771", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/Globaltix/GlobaltixBookings.js:2107"}, "properties": {"repobilityId": "969d4038e0e05b1e", "scanner": "scanner-primary", "fingerprint": "2a953fd42767b771", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc04bfbc7e89441b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/CustomerConsole.js:168"}, "properties": {"repobilityId": "9610813b994fac0d", "scanner": "scanner-primary", "fingerprint": "bc04bfbc7e89441b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1acb93991f936435", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/Waitlist.js:54"}, "properties": {"repobilityId": "fba2c5b18ab5ec7f", "scanner": "scanner-primary", "fingerprint": "1acb93991f936435", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2e82131196c81f08", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/ProviderCredentials.js:98"}, "properties": {"repobilityId": "7db201e88730ab97", "scanner": "scanner-primary", "fingerprint": "2e82131196c81f08", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-83d88292826b903a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/AuditLog.js:111"}, "properties": {"repobilityId": "1d8f882317d0d095", "scanner": "scanner-primary", "fingerprint": "83d88292826b903a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-32a32153d20566e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/tickyourlist/AdminOps/OpsOverview.js:97"}, "properties": {"repobilityId": "8dcbb092c9218785", "scanner": "scanner-primary", "fingerprint": "32a32153d20566e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0b229ea0e2af0bdf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/MarkupConfigModal.js:270"}, "properties": {"repobilityId": "836d138010a08677", "scanner": "scanner-primary", "fingerprint": "0b229ea0e2af0bdf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b872a7a162af878", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/LiveKlookPricing.js:80"}, "properties": {"repobilityId": "cef93bbdce37f640", "scanner": "scanner-primary", "fingerprint": "0b872a7a162af878", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f6fabef940d9aac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ConnectKlookModal.js:111"}, "properties": {"repobilityId": "498b51b28429edd2", "scanner": "scanner-primary", "fingerprint": "8f6fabef940d9aac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1ddc5d5be520f879", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/NewTourModel.js:56"}, "properties": {"repobilityId": "dd2594a3a12b48d8", "scanner": "scanner-primary", "fingerprint": "1ddc5d5be520f879", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-922ade508256aa41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/index.js:156"}, "properties": {"repobilityId": "9edb15d2b1b51644", "scanner": "scanner-primary", "fingerprint": "922ade508256aa41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-57d83b7bceaa8702", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ViewTourGroup.js:58"}, "properties": {"repobilityId": "13e6daceb9867a27", "scanner": "scanner-primary", "fingerprint": "57d83b7bceaa8702", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d59a9a3f8651f34", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/ViewTourGroupComponents/BookingTable.js:19"}, "properties": {"repobilityId": "8d626239efc833b7", "scanner": "scanner-primary", "fingerprint": "1d59a9a3f8651f34", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cf1e1ef5ede324be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/PricingForm/CalendarPreview.js:60"}, "properties": {"repobilityId": "01848a641902678f", "scanner": "scanner-primary", "fingerprint": "cf1e1ef5ede324be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b2abbffca9d8e09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/tickyourlist/TravelTourGroup/PricingForm/NormalPricingForm.js:47"}, "properties": {"repobilityId": "62644d54ca83c57b", "scanner": "scanner-primary", "fingerprint": "6b2abbffca9d8e09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b234868bd62e701", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Tasks/tasks-list.js:63"}, "properties": {"repobilityId": "c47dd8b175dc3c80", "scanner": "scanner-primary", "fingerprint": "8b234868bd62e701", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-830201c11bbd924f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Tasks/card-tasks.js:40"}, "properties": {"repobilityId": "264933214d78802f", "scanner": "scanner-primary", "fingerprint": "830201c11bbd924f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-87d406c6e096a84c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Email/email-inbox.js:360"}, "properties": {"repobilityId": "ee47e3f24216c808", "scanner": "scanner-primary", "fingerprint": "87d406c6e096a84c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f2b58d1be898ae02", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariants/tourGroupVariant.js:82"}, "properties": {"repobilityId": "44753e9dabba70cd", "scanner": "scanner-primary", "fingerprint": "f2b58d1be898ae02", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d3e70f879144bb05", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/CalendarPricingAndAvailability/index.js:305"}, "properties": {"repobilityId": "a807f2143a3cad7e", "scanner": "scanner-primary", "fingerprint": "d3e70f879144bb05", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f467835d869c09a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/CalendarPricingAndAvailability/index.js:61"}, "properties": {"repobilityId": "10af51c846923e52", "scanner": "scanner-primary", "fingerprint": "9f467835d869c09a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-668f6d19759cceb6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/CalendarPricingAndAvailability/onBulkUpdate.js:364"}, "properties": {"repobilityId": "4e91d5089d76a099", "scanner": "scanner-primary", "fingerprint": "668f6d19759cceb6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-62de063de3c41a9f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Product_Management/SubCategory/NewSubCategoryForm.js:42"}, "properties": {"repobilityId": "27dba5f9b5bf5357", "scanner": "scanner-primary", "fingerprint": "62de063de3c41a9f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a640227ee168f003", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Product_Management/SubCategory/TravelSubCategoryDetailsModal.jsx:281"}, "properties": {"repobilityId": "e24a9deaf13d21cb", "scanner": "scanner-primary", "fingerprint": "a640227ee168f003", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a339fc1f93e929f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/JobPages/CandidateOverview/AboutUs.js:94"}, "properties": {"repobilityId": "8965baf577f6a36a", "scanner": "scanner-primary", "fingerprint": "a339fc1f93e929f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-53c0e44014b2b748", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/ViewDetail.js:30"}, "properties": {"repobilityId": "02a82b0d90656b57", "scanner": "scanner-primary", "fingerprint": "53c0e44014b2b748", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b746cace08258f73", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/TourGroupVariantData/ViewDetail.js:298"}, "properties": {"repobilityId": "c3dd2bd7bbfa1d10", "scanner": "scanner-primary", "fingerprint": "b746cace08258f73", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fa051e079fdac74a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/index.js:33"}, "properties": {"repobilityId": "c227b50fcceeaca7", "scanner": "scanner-primary", "fingerprint": "fa051e079fdac74a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bedf28fd85e8cd22", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/TourGroupVariantData/AddTourGroupVariants.js:97"}, "properties": {"repobilityId": "72ae0caece6e2cc3", "scanner": "scanner-primary", "fingerprint": "bedf28fd85e8cd22", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8890cf0da5e2b2f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/AddCollection.js:145"}, "properties": {"repobilityId": "06e06c2e3bcc962b", "scanner": "scanner-primary", "fingerprint": "8890cf0da5e2b2f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5781c16b94490c81", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/CollectionDetails.js:111"}, "properties": {"repobilityId": "2db99cace9b94aef", "scanner": "scanner-primary", "fingerprint": "5781c16b94490c81", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03b22e775a8d19aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Collections/CollectionTile.js:43"}, "properties": {"repobilityId": "298ebf1b7b8c856e", "scanner": "scanner-primary", "fingerprint": "03b22e775a8d19aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2051b288f6f7af92", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Authentication/Login.js:45"}, "properties": {"repobilityId": "9f534b33cf4b28b0", "scanner": "scanner-primary", "fingerprint": "2051b288f6f7af92", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01438377b7391a7a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Authentication/ForgotPasswordEmailVerification.js:58"}, "properties": {"repobilityId": "11bc0bd4578ab404", "scanner": "scanner-primary", "fingerprint": "01438377b7391a7a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c3e6f27b76cea3c9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/pages/Customers/CustomersList.js:849"}, "properties": {"repobilityId": "f0ddbbf05e80ae4c", "scanner": "scanner-primary", "fingerprint": "c3e6f27b76cea3c9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4321d3948ed12039", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Forms/FormValidations.js:50"}, "properties": {"repobilityId": "6aa6278c1886c676", "scanner": "scanner-primary", "fingerprint": "4321d3948ed12039", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac8497deeb4b40f1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/Forms/FormEditors.js:27"}, "properties": {"repobilityId": "12569a75e39608c8", "scanner": "scanner-primary", "fingerprint": "ac8497deeb4b40f1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb0d5ba5fe3007d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/FileManager/Storage.js:40"}, "properties": {"repobilityId": "8deaaa67cf865db5", "scanner": "scanner-primary", "fingerprint": "bb0d5ba5fe3007d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-94bf91c66e6135cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/FileManager/FileList.js:105"}, "properties": {"repobilityId": "7c68f55ae05cd93f", "scanner": "scanner-primary", "fingerprint": "94bf91c66e6135cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f139281eb0dbc20c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/pages/DashboardJob/StatisticsApplications.js:26"}, "properties": {"repobilityId": "e70a1700cf7a61e5", "scanner": "scanner-primary", "fingerprint": "f139281eb0dbc20c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b6ffb4212dc3618", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/layout/saga.js:74"}, "properties": {"repobilityId": "9cd55c9b33d43e6c", "scanner": "scanner-primary", "fingerprint": "2b6ffb4212dc3618", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-101df51c4a6ff392", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/auth/login/saga.js:50"}, "properties": {"repobilityId": "3cbd4c8609006123", "scanner": "scanner-primary", "fingerprint": "101df51c4a6ff392", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2cea4ff55e1c2c8e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/travelCategories/saga.js:269"}, "properties": {"repobilityId": "222522137a999d61", "scanner": "scanner-primary", "fingerprint": "2cea4ff55e1c2c8e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3ee3319485d4e6be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/product-management/collections/saga.js:50"}, "properties": {"repobilityId": "dbd4c1dc0a5c2e47", "scanner": "scanner-primary", "fingerprint": "3ee3319485d4e6be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0e558f49304cfa91", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/TourGroupVariant/saga.js:75"}, "properties": {"repobilityId": "87013ab743f525b2", "scanner": "scanner-primary", "fingerprint": "0e558f49304cfa91", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-613d997487ccde9d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carModelCollections/saga.js:83"}, "properties": {"repobilityId": "b17c8986cdee4fdd", "scanner": "scanner-primary", "fingerprint": "613d997487ccde9d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5346d8f81995a18", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carVariants/saga.js:34"}, "properties": {"repobilityId": "607444d8bd251513", "scanner": "scanner-primary", "fingerprint": "d5346d8f81995a18", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-162061753cc318e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carCustomers/saga.js:12"}, "properties": {"repobilityId": "1a22dd8c2a526a83", "scanner": "scanner-primary", "fingerprint": "162061753cc318e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-880e7a2b0276ae5e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carBlogs/reducer.js:71"}, "properties": {"repobilityId": "859d9f1e859ed6e3", "scanner": "scanner-primary", "fingerprint": "880e7a2b0276ae5e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-107c83ea06516a0b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/automobiles/carBlogs/saga.js:21"}, "properties": {"repobilityId": "5348992b5cc59245", "scanner": "scanner-primary", "fingerprint": "107c83ea06516a0b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-624e2714efab2cd8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/collections/saga.js:59"}, "properties": {"repobilityId": "eaf77829464604be", "scanner": "scanner-primary", "fingerprint": "624e2714efab2cd8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f356c5ad2bd46202", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/dashboard-sub-admin/saga.js:17"}, "properties": {"repobilityId": "ea241eaa18539436", "scanner": "scanner-primary", "fingerprint": "f356c5ad2bd46202", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3cfdfac8e90f60da", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/faqs/saga.js:31"}, "properties": {"repobilityId": "e420d24db9b31264", "scanner": "scanner-primary", "fingerprint": "3cfdfac8e90f60da", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b8a5bad21515d116", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/reducer.js:128"}, "properties": {"repobilityId": "76011838f2b3972d", "scanner": "scanner-primary", "fingerprint": "b8a5bad21515d116", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64e50ea469879892", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/saga.js:137"}, "properties": {"repobilityId": "8252a9639718b862", "scanner": "scanner-primary", "fingerprint": "64e50ea469879892", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e76a442067ab064", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/tickyourlist/travelTourGroup/action.js:96"}, "properties": {"repobilityId": "ad1581b0fa5cbcc2", "scanner": "scanner-primary", "fingerprint": "9e76a442067ab064", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-10f9d85286647f85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/travelCurrency/saga.js:7"}, "properties": {"repobilityId": "141605b4594fffd7", "scanner": "scanner-primary", "fingerprint": "10f9d85286647f85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e98a2d23eec8cd76", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/store/e-commerce/saga.js:233"}, "properties": {"repobilityId": "75425e7f41ab8115", "scanner": "scanner-primary", "fingerprint": "e98a2d23eec8cd76", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-85e3b61e5a0ecab3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/e-commerce/saga.js:128"}, "properties": {"repobilityId": "17251e561c295480", "scanner": "scanner-primary", "fingerprint": "85e3b61e5a0ecab3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6acaaf69c00e8df7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/reducer.js:206"}, "properties": {"repobilityId": "b5fb5170939e7d95", "scanner": "scanner-primary", "fingerprint": "6acaaf69c00e8df7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-09082bf5e02a5dbd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/actions.js:74"}, "properties": {"repobilityId": "e604c350ecb5c63b", "scanner": "scanner-primary", "fingerprint": "09082bf5e02a5dbd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1aaef2e479aed8ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/productManagement/subcategories/saga.js:127"}, "properties": {"repobilityId": "040680ab4a0b3c53", "scanner": "scanner-primary", "fingerprint": "1aaef2e479aed8ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9edd0333b9e21f51", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/store/countries/saga.js:97"}, "properties": {"repobilityId": "93c8767dd2fc3a6b", "scanner": "scanner-primary", "fingerprint": "9edd0333b9e21f51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7176e5d95d18d844", "level": "error", "message": {"text": "Runtime dotenv file present in repo: .env"}, "properties": {"repobilityId": "4b9c737a445874ba", "scanner": "scanner-primary", "fingerprint": "7176e5d95d18d844", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets", "config", "env-file", "runtime-env", "env_file_with_secret"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".env"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca7eecd80ff31281", "level": "error", "message": {"text": "Possible secret in src/helpers/url_helper.js"}, "properties": {"repobilityId": "a46ad6050df3463e", "scanner": "scanner-primary", "fingerprint": "ca7eecd80ff31281", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/helpers/url_helper.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-8aff4cd1a8c09a1a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/helpers/firebase_helper.js:14"}, "properties": {"repobilityId": "22623cfd405e089b", "scanner": "scanner-primary", "fingerprint": "8aff4cd1a8c09a1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/helpers/firebase_helper.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-0756773f54cad310", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/helpers/AuthType/fakeBackend.js:166"}, "properties": {"repobilityId": "aa1914c7f4dd36ba", "scanner": "scanner-primary", "fingerprint": "0756773f54cad310", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/helpers/AuthType/fakeBackend.js"}, "region": {"startLine": 166}}}]}, {"ruleId": "scanner-9104fe9543215d06", "level": "error", "message": {"text": "Possible secret in src/helpers/jwt-token-access/apiKey.js"}, "properties": {"repobilityId": "fe5cafef1a91dbf2", "scanner": "scanner-primary", "fingerprint": "9104fe9543215d06", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/helpers/jwt-token-access/apiKey.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8eeb5554df70c52d", "level": "error", "message": {"text": "Possible secret in src/pages/Maps/MapsGoogle.js"}, "properties": {"repobilityId": "cb417bf019624868", "scanner": "scanner-primary", "fingerprint": "8eeb5554df70c52d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Maps/MapsGoogle.js"}, "region": {"startLine": 180}}}]}, {"ruleId": "scanner-4347198419e118f2", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/AdvertiseWithUs.js:107"}, "properties": {"repobilityId": "09074a406e7468c5", "scanner": "scanner-primary", "fingerprint": "4347198419e118f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/AdvertiseWithUs.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-e514e64774fe65c8", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/investors.js:107"}, "properties": {"repobilityId": "59d677aae51987aa", "scanner": "scanner-primary", "fingerprint": "e514e64774fe65c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/investors.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-e6ad3ff9479c115f", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/faqs.js:107"}, "properties": {"repobilityId": "e7dc429bccddd250", "scanner": "scanner-primary", "fingerprint": "e6ad3ff9479c115f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/faqs.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-ca6c375f5cec918c", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/corporatePolicy.js:107"}, "properties": {"repobilityId": "0aa44570d8677f49", "scanner": "scanner-primary", "fingerprint": "ca6c375f5cec918c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/corporatePolicy.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-7e5a0cd3ac8b5361", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/termsandconditions.js:107"}, "properties": {"repobilityId": "b8f7b78afaf0e707", "scanner": "scanner-primary", "fingerprint": "7e5a0cd3ac8b5361", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/termsandconditions.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-9aa6f69d64ac0c3a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/privacyPolicy.js:107"}, "properties": {"repobilityId": "3f999ff258e9101d", "scanner": "scanner-primary", "fingerprint": "9aa6f69d64ac0c3a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/privacyPolicy.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-a0736c233d175b9c", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/contactus.js:107"}, "properties": {"repobilityId": "f1cc36a51534c72e", "scanner": "scanner-primary", "fingerprint": "a0736c233d175b9c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/contactus.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-efb0a5c0b0441581", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Settings/careerwithus.js:107"}, "properties": {"repobilityId": "3f502979d95f224c", "scanner": "scanner-primary", "fingerprint": "efb0a5c0b0441581", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Settings/careerwithus.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-fafab1f873315179", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/Content-marketing/FaqPreview.js:32"}, "properties": {"repobilityId": "69d297a25ba2a5e4", "scanner": "scanner-primary", "fingerprint": "fafab1f873315179", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Content-marketing/FaqPreview.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-82075bd0573db96d", "level": "error", "message": {"text": "Possible secret in src/pages/Ui/UiLightbox.js"}, "properties": {"repobilityId": "312f3773a1c7173b", "scanner": "scanner-primary", "fingerprint": "82075bd0573db96d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Ui/UiLightbox.js"}, "region": {"startLine": 482}}}]}, {"ruleId": "scanner-06abfba9eeba38bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/pages/Icons/IconFontawesome.js:56"}, "properties": {"repobilityId": "162093cc181dffbd", "scanner": "scanner-primary", "fingerprint": "06abfba9eeba38bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Icons/IconFontawesome.js"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-180ac5519b234b03", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/Email/email-inbox.js:360"}, "properties": {"repobilityId": "b09cc3e4f3a26c88", "scanner": "scanner-primary", "fingerprint": "180ac5519b234b03", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Email/email-inbox.js"}, "region": {"startLine": 360}}}]}, {"ruleId": "scanner-2a83fa9714cdccc6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/TourGroupVariantData/ViewDetail.js:298"}, "properties": {"repobilityId": "b4b300e59624fdfe", "scanner": "scanner-primary", "fingerprint": "2a83fa9714cdccc6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/TourGroupVariantData/ViewDetail.js"}, "region": {"startLine": 298}}}]}, {"ruleId": "scanner-760b952f788665ad", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/pages/Authentication/user-profile.js:107"}, "properties": {"repobilityId": "83d82e77966eecba", "scanner": "scanner-primary", "fingerprint": "760b952f788665ad", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Authentication/user-profile.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-f19469d30f10bea7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/pages/Customers/CustomersList.js:849"}, "properties": {"repobilityId": "ba588c71b79c4a17", "scanner": "scanner-primary", "fingerprint": "f19469d30f10bea7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/pages/Customers/CustomersList.js"}, "region": {"startLine": 849}}}]}, {"ruleId": "scanner-5b226d28dca7dd8b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/store/auth/login/saga.js:26"}, "properties": {"repobilityId": "994168567426af2b", "scanner": "scanner-primary", "fingerprint": "5b226d28dca7dd8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/store/auth/login/saga.js"}, "region": {"startLine": 26}}}]}, {"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-07f7d83055c3e282", "level": "note", "message": {"text": "Very large file: src/pages/Automobile/AutomobileCollections/IconSelector.js (29349 lines)"}, "properties": {"repobilityId": "51d9d13f8f5e5ddf", "scanner": "scanner-primary", "fingerprint": "07f7d83055c3e282", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-56373a0d9e0ebd6a", "level": "note", "message": {"text": "Very large file: src/pages/Automobile/CarModels/CarModels.js (1749 lines)"}, "properties": {"repobilityId": "5573ea236e73ddd7", "scanner": "scanner-primary", "fingerprint": "56373a0d9e0ebd6a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ecda003b19dff2c4", "level": "note", "message": {"text": "Very large file: src/pages/LocationManagement/Country/Country.js (1320 lines)"}, "properties": {"repobilityId": "04158b41c7e29910", "scanner": "scanner-primary", "fingerprint": "ecda003b19dff2c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ba5c562a338d251e", "level": "note", "message": {"text": "Very large file: src/pages/product-management/PMCollections/AddCollectionForm.jsx (1340 lines)"}, "properties": {"repobilityId": "7c9bb2993fd25143", "scanner": "scanner-primary", "fingerprint": "ba5c562a338d251e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fbab16aae9fd0607", "level": "note", "message": {"text": "Very large file: src/pages/Ecommerce/EcommerceOrders/index.js (1477 lines)"}, "properties": {"repobilityId": "6856ed98a60cfdcc", "scanner": "scanner-primary", "fingerprint": "fbab16aae9fd0607", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7bb406916c3cc655", "level": "note", "message": {"text": "Very large file: src/pages/Ui/UiTabsAccordions.js (1175 lines)"}, "properties": {"repobilityId": "46c41c3f0ec6d2fe", "scanner": "scanner-primary", "fingerprint": "7bb406916c3cc655", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3a8cf93fb06ac689", "level": "note", "message": {"text": "Very large file: src/pages/Icons/IconBoxicons.js (3471 lines)"}, "properties": {"repobilityId": "cd7b676a7f79db6c", "scanner": "scanner-primary", "fingerprint": "3a8cf93fb06ac689", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a269433587d7dd35", "level": "note", "message": {"text": "Very large file: src/pages/Icons/IconMaterialdesign.js (23598 lines)"}, "properties": {"repobilityId": "f4295bf14c7856c0", "scanner": "scanner-primary", "fingerprint": "a269433587d7dd35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-39d6c25f7f87046d", "level": "note", "message": {"text": "Very large file: src/pages/EmailTemplates/WorkflowEditor.js (1367 lines)"}, "properties": {"repobilityId": "b88b28eb91f63a3f", "scanner": "scanner-primary", "fingerprint": "39d6c25f7f87046d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3bcab5497c8a3252", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/Globaltix/GlobaltixBookings.js (2635 lines)"}, "properties": {"repobilityId": "8e496b741239c33b", "scanner": "scanner-primary", "fingerprint": "3bcab5497c8a3252", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2afe8c1d459861eb", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/MarkupConfigModal.js (2173 lines)"}, "properties": {"repobilityId": "40e2164d20a9f8cc", "scanner": "scanner-primary", "fingerprint": "2afe8c1d459861eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c9b9dcb5eacc6163", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/LiveKlookPricing.js (1311 lines)"}, "properties": {"repobilityId": "ffd1b96969bd88b5", "scanner": "scanner-primary", "fingerprint": "c9b9dcb5eacc6163", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4c3135cc302c6105", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/ConnectProviderModal.js (1307 lines)"}, "properties": {"repobilityId": "5a8c3d92e8222db0", "scanner": "scanner-primary", "fingerprint": "4c3135cc302c6105", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9fb1b0fe130d7bab", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/EditKlookMappingModal.js (1434 lines)"}, "properties": {"repobilityId": "be755f7ff9ce2947", "scanner": "scanner-primary", "fingerprint": "9fb1b0fe130d7bab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-934723bb9146f86b", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/NewTourModel.js (1854 lines)"}, "properties": {"repobilityId": "4fc80ddf18e9fccb", "scanner": "scanner-primary", "fingerprint": "934723bb9146f86b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2ba0f1110bef74c5", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/ImportKlookPackagesModal.js (955 lines)"}, "properties": {"repobilityId": "ed0c77b8816b480a", "scanner": "scanner-primary", "fingerprint": "2ba0f1110bef74c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dab18986f58f9671", "level": "note", "message": {"text": "Very large file: src/pages/tickyourlist/TravelTourGroup/PricingForm/RuleBasedPricingBuilder.js (1481 lines)"}, "properties": {"repobilityId": "25f147f05d34d51a", "scanner": "scanner-primary", "fingerprint": "dab18986f58f9671", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-041d8e37477e6a12", "level": "note", "message": {"text": "Very large file: src/pages/Collections/IconSelector.js (29349 lines)"}, "properties": {"repobilityId": "d9ff44341b0ca38f", "scanner": "scanner-primary", "fingerprint": "041d8e37477e6a12", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-81b2b1ec4d664959", "level": "note", "message": {"text": "Very large file: src/pages/Customers/CustomersList.js (1545 lines)"}, "properties": {"repobilityId": "7afdbc0e5e9092b0", "scanner": "scanner-primary", "fingerprint": "81b2b1ec4d664959", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-299d2152e674feba", "level": "note", "message": {"text": "Very large file: src/pages/Forms/FormAdvanced.js (1501 lines)"}, "properties": {"repobilityId": "f2e19e5ed68ad232", "scanner": "scanner-primary", "fingerprint": "299d2152e674feba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "5ebaa4efabd358a9", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "d777773d572992d9", "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": "89dbf45bae232e75", "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": "e709a66680207249", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "b496a69cecff7795", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "58999533be942eb1", "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": "52c98bc77a600e3e", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-14856cd2abaed38e", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/App.js:28"}, "properties": {"repobilityId": "177a918151845082", "scanner": "scanner-primary", "fingerprint": "14856cd2abaed38e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24b15a575c2ad0f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/serviceWorker.js:4"}, "properties": {"repobilityId": "ea5fc99605a6eca5", "scanner": "scanner-primary", "fingerprint": "24b15a575c2ad0f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba8d165c7f23d524", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/serviceWorker.js:103"}, "properties": {"repobilityId": "658079dd93136a12", "scanner": "scanner-primary", "fingerprint": "ba8d165c7f23d524", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-af7448c5461a738e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/Automobile/Dashboard/AutomobileDashboard.js:145"}, "properties": {"repobilityId": "ff02180da4e3eac3", "scanner": "scanner-primary", "fingerprint": "af7448c5461a738e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-854022519ab52b09", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/pages/Automobile/Dashboard/LatestCarSearches.js:67"}, "properties": {"repobilityId": "c6602d2f0900f314", "scanner": "scanner-primary", "fingerprint": "854022519ab52b09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-234ebdd05ee0ddb0", "level": "none", "message": {"text": "Commented-code block (41 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/EngineAndTransmissionVariant.js:52"}, "properties": {"repobilityId": "ca4c71f27ddafc96", "scanner": "scanner-primary", "fingerprint": "234ebdd05ee0ddb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f48f9d571d172b7e", "level": "none", "message": {"text": "Commented-code block (27 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/BasicCarVariant.js:47"}, "properties": {"repobilityId": "376afe6dbf8d507d", "scanner": "scanner-primary", "fingerprint": "f48f9d571d172b7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-706d5fcf10fd120f", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/WarrantyVariant.js:125"}, "properties": {"repobilityId": "018b60553114a2d1", "scanner": "scanner-primary", "fingerprint": "706d5fcf10fd120f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2462b3e5c23b2dd", "level": "none", "message": {"text": "Commented-code block (44 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/SuspensionSteeringBrakesVariant.js:54"}, "properties": {"repobilityId": "20ad2754c0683421", "scanner": "scanner-primary", "fingerprint": "e2462b3e5c23b2dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ae254a696f86157", "level": "none", "message": {"text": "Commented-code block (36 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/DimensionAndCapacityVariant.js:56"}, "properties": {"repobilityId": "a3e1cc146114d0e9", "scanner": "scanner-primary", "fingerprint": "1ae254a696f86157", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21c40623648ca3dd", "level": "none", "message": {"text": "Commented-code block (14 lines) in src/pages/Automobile/CarVariants/AddCarVariantPages/FuelPerformanceVariant.js:66"}, "properties": {"repobilityId": "cbce69352582701b", "scanner": "scanner-primary", "fingerprint": "21c40623648ca3dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c12e52a443bdb19", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/pages/Automobile/AutomobileCollections/AddCarCollection.js:164"}, "properties": {"repobilityId": "0b6944fb33b6a061", "scanner": "scanner-primary", "fingerprint": "2c12e52a443bdb19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1e56a1d54f9d640", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/pages/Automobile/AutomobileCollections/CarModelCollectionDetails.js:228"}, "properties": {"repobilityId": "78ef5996441b5a15", "scanner": "scanner-primary", "fingerprint": "b1e56a1d54f9d640", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df54caa00e970de4", "level": "none", "message": {"text": "Commented-code block (29 lines) in src/pages/Automobile/CarBlogs/CarBlogs.js:69"}, "properties": {"repobilityId": "9c4a838b6169c55d", "scanner": "scanner-primary", "fingerprint": "df54caa00e970de4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0093080385da55a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/LocationManagement/Cities/CityDetails.js:213"}, "properties": {"repobilityId": "f4302b04820dd3b5", "scanner": "scanner-primary", "fingerprint": "c0093080385da55a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4014da0bf309c89", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/LocationManagement/Country/CountryDetailModal.js:193"}, "properties": {"repobilityId": "92d49f85f3230d7d", "scanner": "scanner-primary", "fingerprint": "c4014da0bf309c89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f97afdc6a1dec220", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/LocationManagement/Country/Country.js:108"}, "properties": {"repobilityId": "a745ab8108e96440", "scanner": "scanner-primary", "fingerprint": "f97afdc6a1dec220", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa76c7f6d660e874", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/pages/Travel/Settings.js:171"}, "properties": {"repobilityId": "36287c7d78c05d93", "scanner": "scanner-primary", "fingerprint": "fa76c7f6d660e874", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a558a75c47966dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/product-management/PMCollections/AddCollectionForm.jsx:59"}, "properties": {"repobilityId": "bd0bd1d46805a805", "scanner": "scanner-primary", "fingerprint": "2a558a75c47966dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7774cb2cbcbf3e7e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/Ecommerce/EcommerceAddProduct.js:22"}, "properties": {"repobilityId": "c5cd435d665f2f3a", "scanner": "scanner-primary", "fingerprint": "7774cb2cbcbf3e7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee6ea3a3ad7a41b0", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/Overview.js:1"}, "properties": {"repobilityId": "a7f898977582ef51", "scanner": "scanner-primary", "fingerprint": "ee6ea3a3ad7a41b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69cef7286ffe1984", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/pages/Ecommerce/EcommerceOrders/EcommerceCustomerDetail/InvoiceDetailModal.js:47"}, "properties": {"repobilityId": "0ed930442379018d", "scanner": "scanner-primary", "fingerprint": "69cef7286ffe1984", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aeaf5267eb384291", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/Ui/CarouselTypes/slide.js:48"}, "properties": {"repobilityId": "aab8d415c8ca6bc0", "scanner": "scanner-primary", "fingerprint": "aeaf5267eb384291", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb8bdf3edd4d5f2e", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/pages/EmailTemplates/WorkflowEditor_FINAL_UPDATES.js:15"}, "properties": {"repobilityId": "f65162de6266f36c", "scanner": "scanner-primary", "fingerprint": "bb8bdf3edd4d5f2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1c8b056a3f65037", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/pages/tickyourlist/Globaltix/GlobtixPricingCalendar.js:60"}, "properties": {"repobilityId": "acdf21d63aa2d0b4", "scanner": "scanner-primary", "fingerprint": "c1c8b056a3f65037", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8cb1ba31917d54bf", "level": "none", "message": {"text": "Commented-code block (23 lines) in src/pages/tickyourlist/TravelTourGroup/NewTourModel.js:251"}, "properties": {"repobilityId": "02db01b344ac121e", "scanner": "scanner-primary", "fingerprint": "8cb1ba31917d54bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffa62a625b549d63", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/Product_Management/SubCategory/EditSubCategory.jsx:216"}, "properties": {"repobilityId": "471e94d9b8efa7f4", "scanner": "scanner-primary", "fingerprint": "ffa62a625b549d63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87b8fac0b7434f6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/TourGroupVariantData/AddTourGroupVariants.js:132"}, "properties": {"repobilityId": "6b98a3985f1ac9ac", "scanner": "scanner-primary", "fingerprint": "87b8fac0b7434f6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9f2d68dfe677713", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/pages/Collections/AddCollection.js:164"}, "properties": {"repobilityId": "304ab6f3fa76bff0", "scanner": "scanner-primary", "fingerprint": "c9f2d68dfe677713", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d08beb57cfae0c4", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/pages/Collections/CollectionDetails.js:212"}, "properties": {"repobilityId": "599fd78850d0812f", "scanner": "scanner-primary", "fingerprint": "8d08beb57cfae0c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2ec326d4578c842", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/Forms/FormElements.js:999"}, "properties": {"repobilityId": "dbfc5df71c02370b", "scanner": "scanner-primary", "fingerprint": "d2ec326d4578c842", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c4ac1e105f36b9b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/Forms/FormValidations.js:865"}, "properties": {"repobilityId": "6eb95c91aae21626", "scanner": "scanner-primary", "fingerprint": "5c4ac1e105f36b9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-badac19dfb5aa5bf", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/store/travelCity/saga.js:200"}, "properties": {"repobilityId": "5e539cd5916de490", "scanner": "scanner-primary", "fingerprint": "badac19dfb5aa5bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7603989e6e99109a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/store/product-management/collections/saga.js:25"}, "properties": {"repobilityId": "b02046c1f13fc32a", "scanner": "scanner-primary", "fingerprint": "7603989e6e99109a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}