{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:08.559222Z","repo":{"ref":{"host":"github.com","owner":"xavi129","name":"escribetucancion-landing"},"default_branch":"main","clone_url":"https://github.com/xavi129/escribetucancion-landing.git","html_url":"https://github.com/xavi129/escribetucancion-landing","description":"Landing y checkout de Escribe Tu Canción — proyecto construido 100% con IA.","stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":336,"primary_language":"TypeScript","license_spdx":null,"created_at":"2026-07-16T01:34:23Z","pushed_at":"2026-07-16T01:40:37Z","security_policy_url":null,"distribution":{"owner_created_at":"2021-09-14T07:05:18Z","owner_type":"User","release_assets":[]}},"commit_sha":"86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6","profile":{"lines_by_language":{"TypeScript":24206,"SQL":88,"JavaScript":57},"files_by_category":{"source":152,"other":8,"config":7,"binary":3,"docs":1,"generated":1,"test":1},"source_lines":24095,"test_lines":256},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.4,"coverage":1.0,"label":"possible","breakdown":{"attributed_share":0.0,"suspected_share":0.0,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":null,"style_index":2.137},"summary":"Weak signals consistent with AI-assisted development. Comments and strings use phrasing typical of LLM-written code (see the coding style evidence)."},"quality":{"score":37.5,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":36.1,"duplication":32.5,"lint":8.5,"testing":45.5,"docs":40.0,"type_safety":100.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.01, no CI test run detected; 34% of function code in complex or long functions; 19% duplicated lines. Weakest area: lint."},"security":{"score":57.7,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":99.5,"dependencies":3.4,"ci_actions":42.3,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 104 known vulnerabilities in 30 dependencies; 4 high-severity workflow issues. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":73.0,"checked":73.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":1.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":24351.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2026-07":{"loc":24351,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":0.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":0.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":0.0,"median_loc_per_hour":0.0,"pr_timed_units":0.0,"excluded_import_loc":24351.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":24095.0,"index":2.137,"count:narrated_steps":1.0,"per_kloc:narrated_steps":0.042,"files:narrated_steps":1.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":101.0,"per_kloc:emoji_in_code":4.192,"files:emoji_in_code":22.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // First, try to get the price directly from songTypePrice","ref":"app/crear-cancion/confirmacion/page.tsx:44","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/confirmacion/page.tsx#L44","weight":0.0}],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":5.0,"findings_high":0.0,"findings_medium":0.0,"findings_low":5.0,"weighted_findings":0.312,"scanned_lines":24007.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/javascript.browser.security.js-open-redirect-from-function","severity":"low","message":"The application accepts potentially user-controlled input `{\r\n  whatsappLink,\r\n  referenceNumber,\r\n  formData,\r\n  className,\r\n}: EnhancedWhatsappTransferProps` which can control the location of the current window context. This can lead two types of vulnerabilities open-redirection and Cross-Site-Scr [confidence low]","path":"app/components/enhanced-whatsapp-transfer.tsx","line":120,"fingerprint":"javascript.browser.security.js-open-redirect-from-function:app/components/enhanced-whatsapp-transfer.tsx:120"},{"rule_id":"opengrep/javascript.browser.security.js-open-redirect-from-function","severity":"low","message":"The application accepts potentially user-controlled input `{\r\n  songType,\r\n  deliveryType,\r\n  customerName,\r\n  email,\r\n  formData,\r\n  onCheckout,\r\n}: StripeCheckoutProps` which can control the location of the current window context. This can lead two types of vulnerabilities open-redirection and Cro [confidence low]","path":"app/components/stripe-checkout.tsx","line":73,"fingerprint":"javascript.browser.security.js-open-redirect-from-function:app/components/stripe-checkout.tsx:73"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low]","path":"app/utils/analytics.ts","line":94,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/utils/analytics.ts:94"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low]","path":"app/utils/analytics.ts","line":186,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/utils/analytics.ts:186"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-formatstring","severity":"low","message":"Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string. [confidence low]","path":"app/utils/statsig.ts","line":87,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/utils/statsig.ts:87"}],"evidence":[],"data":{"rulesets":["typescript","javascript"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":30.0,"vulnerabilities":104.0,"vulns_critical":3.0,"vulns_high":56.0,"vulns_medium":39.0,"vulns_low":6.0,"vulns_unknown":0.0,"penalty":203.0},"findings":[{"rule_id":"osv/GHSA-2464-fhr4-w9xw","severity":"critical","message":"next@15.5.9 (npm) is affected by GHSA-2464-fhr4-w9xw","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-2464-fhr4-w9xw"},{"rule_id":"osv/GHSA-2xp9-vwfh-vxw4","severity":"critical","message":"next@15.5.9 (npm) is affected by GHSA-2xp9-vwfh-vxw4","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-2xp9-vwfh-vxw4"},{"rule_id":"osv/GHSA-p293-qw3h-jr36","severity":"critical","message":"next@15.5.9 (npm) is affected by GHSA-p293-qw3h-jr36","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-p293-qw3h-jr36"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-73wf-gq98-2v4g","severity":"high","message":"browserslist@4.24.4 (npm) is affected by GHSA-73wf-gq98-2v4g","path":"pnpm-lock.yaml","line":null,"fingerprint":"browserslist@4.24.4 (npm):GHSA-73wf-gq98-2v4g"},{"rule_id":"osv/GHSA-c83g-rgw3-j3cx","severity":"high","message":"browserslist@4.24.4 (npm) is affected by GHSA-c83g-rgw3-j3cx","path":"pnpm-lock.yaml","line":null,"fingerprint":"browserslist@4.24.4 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-px8p-9vwx-vf98","severity":"high","message":"fflate@0.4.8 (npm) is affected by GHSA-px8p-9vwx-vf98","path":"pnpm-lock.yaml","line":null,"fingerprint":"fflate@0.4.8 (npm):GHSA-px8p-9vwx-vf98"},{"rule_id":"osv/GHSA-25h7-pfq9-p65f","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-25h7-pfq9-p65f","path":"pnpm-lock.yaml","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-25h7-pfq9-p65f"},{"rule_id":"osv/GHSA-rf6f-7fwh-wjgh","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-rf6f-7fwh-wjgh","path":"pnpm-lock.yaml","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-rf6f-7fwh-wjgh"},{"rule_id":"osv/GHSA-hmw2-7cc7-3qxx","severity":"high","message":"form-data@4.0.5 (npm) is affected by GHSA-hmw2-7cc7-3qxx","path":"pnpm-lock.yaml","line":null,"fingerprint":"form-data@4.0.5 (npm):GHSA-hmw2-7cc7-3qxx"},{"rule_id":"osv/GHSA-5j98-mcp5-4vw2","severity":"high","message":"glob@10.4.5 (npm) is affected by GHSA-5j98-mcp5-4vw2","path":"pnpm-lock.yaml","line":null,"fingerprint":"glob@10.4.5 (npm):GHSA-5j98-mcp5-4vw2"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"pnpm-lock.yaml","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-52cp-r559-cp3m","path":"pnpm-lock.yaml","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-5p4m-2wfm-xmqj","path":"pnpm-lock.yaml","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-r5fr-rjxr-66jc","severity":"high","message":"lodash@4.17.21 (npm) is affected by GHSA-r5fr-rjxr-66jc","path":"pnpm-lock.yaml","line":null,"fingerprint":"lodash@4.17.21 (npm):GHSA-r5fr-rjxr-66jc"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"pnpm-lock.yaml","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"pnpm-lock.yaml","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"pnpm-lock.yaml","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"pnpm-lock.yaml","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"pnpm-lock.yaml","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"pnpm-lock.yaml","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-28wg-ghj8-5hjv","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-28wg-ghj8-5hjv","path":"pnpm-lock.yaml","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-28wg-ghj8-5hjv"},{"rule_id":"osv/GHSA-2v37-7h3g-55p8","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-2v37-7h3g-55p8","path":"pnpm-lock.yaml","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-2v37-7h3g-55p8"},{"rule_id":"osv/GHSA-xwg4-73v4-xw9w","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-xwg4-73v4-xw9w","path":"pnpm-lock.yaml","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-xwg4-73v4-xw9w"},{"rule_id":"osv/GHSA-267c-6grr-h53f","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-267c-6grr-h53f","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-267c-6grr-h53f"},{"rule_id":"osv/GHSA-26hh-7cqf-hhc6","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-26hh-7cqf-hhc6","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-26hh-7cqf-hhc6"},{"rule_id":"osv/GHSA-36qx-fr4f-26g5","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-36qx-fr4f-26g5","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-36qx-fr4f-26g5"},{"rule_id":"osv/GHSA-492v-c6pp-mqqv","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-492v-c6pp-mqqv","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-492v-c6pp-mqqv"},{"rule_id":"osv/GHSA-89xv-2m56-2m9x","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-89xv-2m56-2m9x","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-89xv-2m56-2m9x"},{"rule_id":"osv/GHSA-8h8q-6873-q5fj","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-8h8q-6873-q5fj","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-8h8q-6873-q5fj"},{"rule_id":"osv/GHSA-c4j6-fc7j-m34r","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-c4j6-fc7j-m34r","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-c4j6-fc7j-m34r"},{"rule_id":"osv/GHSA-h25m-26qc-wcjf","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-h25m-26qc-wcjf","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-h25m-26qc-wcjf"},{"rule_id":"osv/GHSA-m99w-x7hq-7vfj","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-m99w-x7hq-7vfj","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-m99w-x7hq-7vfj"},{"rule_id":"osv/GHSA-mg66-mrh9-m8jx","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-mg66-mrh9-m8jx","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-mg66-mrh9-m8jx"},{"rule_id":"osv/GHSA-p3m5-59mp-jv5r","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-p3m5-59mp-jv5r","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-p3m5-59mp-jv5r"},{"rule_id":"osv/GHSA-p9j2-gv94-2wf4","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-p9j2-gv94-2wf4","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-p9j2-gv94-2wf4"},{"rule_id":"osv/GHSA-q4gf-8mx6-v5v3","severity":"high","message":"next@15.5.9 (npm) is affected by GHSA-q4gf-8mx6-v5v3","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-q4gf-8mx6-v5v3"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@2.3.1 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"pnpm-lock.yaml","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@4.0.3 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"pnpm-lock.yaml","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.4.31 (npm) is affected by GHSA-6g55-p6wh-862q","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.4.31 (npm) is affected by GHSA-r28c-9q8g-f849","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.5.3 (npm) is affected by GHSA-6g55-p6wh-862q","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.3 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.5.3 (npm) is affected by GHSA-r28c-9q8g-f849","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.3 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-f88m-g3jw-g9cj","severity":"high","message":"sharp@0.34.5 (npm) is affected by GHSA-f88m-g3jw-g9cj","path":"pnpm-lock.yaml","line":null,"fingerprint":"sharp@0.34.5 (npm):GHSA-f88m-g3jw-g9cj"},{"rule_id":"osv/GHSA-rgj7-g3m4-5g8c","severity":"high","message":"sharp@0.34.5 (npm) is affected by GHSA-rgj7-g3m4-5g8c","path":"pnpm-lock.yaml","line":null,"fingerprint":"sharp@0.34.5 (npm):GHSA-rgj7-g3m4-5g8c"},{"rule_id":"osv/GHSA-wq5f-xc86-pv6w","severity":"high","message":"sharp@0.34.5 (npm) is affected by GHSA-wq5f-xc86-pv6w","path":"pnpm-lock.yaml","line":null,"fingerprint":"sharp@0.34.5 (npm):GHSA-wq5f-xc86-pv6w"},{"rule_id":"osv/GHSA-68fv-2mgg-jv7q","severity":"high","message":"source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q","path":"pnpm-lock.yaml","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-w5hq-g745-h8pq","severity":"high","message":"uuid@9.0.1 (npm) is affected by GHSA-w5hq-g745-h8pq","path":"pnpm-lock.yaml","line":null,"fingerprint":"uuid@9.0.1 (npm):GHSA-w5hq-g745-h8pq"},{"rule_id":"osv/GHSA-96hv-2xvq-fx4p","severity":"high","message":"ws@8.18.1 (npm) is affected by GHSA-96hv-2xvq-fx4p","path":"pnpm-lock.yaml","line":null,"fingerprint":"ws@8.18.1 (npm):GHSA-96hv-2xvq-fx4p"},{"rule_id":"osv/GHSA-mrhx-c7xc-m3w5","severity":"high","message":"zod@3.25.76 (npm) is affected by GHSA-mrhx-c7xc-m3w5","path":"pnpm-lock.yaml","line":null,"fingerprint":"zod@3.25.76 (npm):GHSA-mrhx-c7xc-m3w5"},{"rule_id":"osv/GHSA-866g-f22w-33x8","severity":"medium","message":"@ai-sdk/provider-utils@4.0.9 (npm) is affected by GHSA-866g-f22w-33x8","path":"pnpm-lock.yaml","line":null,"fingerprint":"@ai-sdk/provider-utils@4.0.9 (npm):GHSA-866g-f22w-33x8"},{"rule_id":"osv/GHSA-p498-v437-472g","severity":"medium","message":"@humanfs/node@0.16.7 (npm) is affected by GHSA-p498-v437-472g","path":"pnpm-lock.yaml","line":null,"fingerprint":"@humanfs/node@0.16.7 (npm):GHSA-p498-v437-472g"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@6.12.6 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"pnpm-lock.yaml","line":null,"fingerprint":"ajv@6.12.6 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-3g3m-2fjr-6pw4","severity":"medium","message":"glob@10.4.5 (npm) is affected by GHSA-3g3m-2fjr-6pw4","path":"pnpm-lock.yaml","line":null,"fingerprint":"glob@10.4.5 (npm):GHSA-3g3m-2fjr-6pw4"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@4.1.1 (npm) is affected by GHSA-h67p-54hq-rp68","path":"pnpm-lock.yaml","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-xxjr-mmjv-4gpg","severity":"medium","message":"lodash@4.17.21 (npm) is affected by GHSA-xxjr-mmjv-4gpg","path":"pnpm-lock.yaml","line":null,"fingerprint":"lodash@4.17.21 (npm):GHSA-xxjr-mmjv-4gpg"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.5 (npm) is affected by GHSA-g3hv-75wg-m249","path":"pnpm-lock.yaml","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-3x4c-7xq6-9pq8","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-3x4c-7xq6-9pq8","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-3x4c-7xq6-9pq8"},{"rule_id":"osv/GHSA-4633-3j49-mh5q","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-4633-3j49-mh5q","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-4633-3j49-mh5q"},{"rule_id":"osv/GHSA-4c39-4ccg-62r3","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-4c39-4ccg-62r3","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-4c39-4ccg-62r3"},{"rule_id":"osv/GHSA-4jqv-mc3x-m676","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-4jqv-mc3x-m676","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-4jqv-mc3x-m676"},{"rule_id":"osv/GHSA-68g3-v927-f742","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-68g3-v927-f742","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-68g3-v927-f742"},{"rule_id":"osv/GHSA-955p-x3mx-jcvp","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-955p-x3mx-jcvp","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-955p-x3mx-jcvp"},{"rule_id":"osv/GHSA-9g9p-9gw9-jx7f","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-9g9p-9gw9-jx7f","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-9g9p-9gw9-jx7f"},{"rule_id":"osv/GHSA-ffhc-5mcf-pf4q","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-ffhc-5mcf-pf4q","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-ffhc-5mcf-pf4q"},{"rule_id":"osv/GHSA-ggv3-7p47-pfv8","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-ggv3-7p47-pfv8","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-ggv3-7p47-pfv8"},{"rule_id":"osv/GHSA-gx5p-jg67-6x7h","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-gx5p-jg67-6x7h","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-gx5p-jg67-6x7h"},{"rule_id":"osv/GHSA-h64f-5h5j-jqjh","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-h64f-5h5j-jqjh","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-h64f-5h5j-jqjh"},{"rule_id":"osv/GHSA-mcj8-r9mp-w47p","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-mcj8-r9mp-w47p","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-mcj8-r9mp-w47p"},{"rule_id":"osv/GHSA-q8wf-6r8g-63ch","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-q8wf-6r8g-63ch","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-q8wf-6r8g-63ch"},{"rule_id":"osv/GHSA-wfc6-r584-vfw7","severity":"medium","message":"next@15.5.9 (npm) is affected by GHSA-wfc6-r584-vfw7","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-wfc6-r584-vfw7"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@2.3.1 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"pnpm-lock.yaml","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@4.0.3 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"pnpm-lock.yaml","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.4.31 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.4.31 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.4.31 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.3 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.3 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.5.3 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.3 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-rj75-hqrm-r3gf","severity":"medium","message":"postcss-selector-parser@6.1.2 (npm) is affected by GHSA-rj75-hqrm-r3gf","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss-selector-parser@6.1.2 (npm):GHSA-rj75-hqrm-r3gf"},{"rule_id":"osv/GHSA-w9m9-85wc-3x92","severity":"medium","message":"postcss-selector-parser@6.1.2 (npm) is affected by GHSA-w9m9-85wc-3x92","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss-selector-parser@6.1.2 (npm):GHSA-w9m9-85wc-3x92"},{"rule_id":"osv/GHSA-4mjr-xmp4-gh2g","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-4mjr-xmp4-gh2g","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-4mjr-xmp4-gh2g"},{"rule_id":"osv/GHSA-6pq8-jhm2-2vcw","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-6pq8-jhm2-2vcw","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-6pq8-jhm2-2vcw"},{"rule_id":"osv/GHSA-6rw7-vpxm-498p","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-6rw7-vpxm-498p","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-6rw7-vpxm-498p"},{"rule_id":"osv/GHSA-q8mj-m7cp-5q26","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-q8mj-m7cp-5q26","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-q8mj-m7cp-5q26"},{"rule_id":"osv/GHSA-58qx-3vcg-4xpx","severity":"medium","message":"ws@8.18.1 (npm) is affected by GHSA-58qx-3vcg-4xpx","path":"pnpm-lock.yaml","line":null,"fingerprint":"ws@8.18.1 (npm):GHSA-58qx-3vcg-4xpx"},{"rule_id":"osv/GHSA-48c2-rrv3-qjmp","severity":"medium","message":"yaml@2.7.1 (npm) is affected by GHSA-48c2-rrv3-qjmp","path":"pnpm-lock.yaml","line":null,"fingerprint":"yaml@2.7.1 (npm):GHSA-48c2-rrv3-qjmp"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.28.5 (npm) is affected by GHSA-4x5r-pxfx-6jf8","path":"pnpm-lock.yaml","line":null,"fingerprint":"@babel/core@7.28.5 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-8r88-6cj9-9fh5","severity":"low","message":"@supabase/auth-js@2.69.1 (npm) is affected by GHSA-8r88-6cj9-9fh5","path":"pnpm-lock.yaml","line":null,"fingerprint":"@supabase/auth-js@2.69.1 (npm):GHSA-8r88-6cj9-9fh5"},{"rule_id":"osv/GHSA-v6h2-p8h4-qcjw","severity":"low","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-v6h2-p8h4-qcjw","path":"pnpm-lock.yaml","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-v6h2-p8h4-qcjw"},{"rule_id":"osv/GHSA-3g8h-86w9-wvmq","severity":"low","message":"next@15.5.9 (npm) is affected by GHSA-3g8h-86w9-wvmq","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-3g8h-86w9-wvmq"},{"rule_id":"osv/GHSA-vfv6-92ff-j949","severity":"low","message":"next@15.5.9 (npm) is affected by GHSA-vfv6-92ff-j949","path":"pnpm-lock.yaml","line":null,"fingerprint":"next@15.5.9 (npm):GHSA-vfv6-92ff-j949"},{"rule_id":"osv/GHSA-w7fw-mjwx-w883","severity":"low","message":"qs@6.14.0 (npm) is affected by GHSA-w7fw-mjwx-w883","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-w7fw-mjwx-w883"}],"evidence":[],"data":{"ecosystems":["npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":1.0,"findings":6.0,"findings_high":4.0,"findings_medium":2.0,"findings_low":0.0,"penalty":51.6},"findings":[{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/playwright.yml","line":16,"fingerprint":"unpinned-uses:.github/workflows/playwright.yml:16"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/playwright.yml","line":18,"fingerprint":"unpinned-uses:.github/workflows/playwright.yml:18"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/playwright.yml","line":23,"fingerprint":"unpinned-uses:.github/workflows/playwright.yml:23"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/playwright.yml","line":41,"fingerprint":"unpinned-uses:.github/workflows/playwright.yml:41"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/playwright.yml","line":16,"fingerprint":"artipacked:.github/workflows/playwright.yml:16"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/playwright.yml","line":12,"fingerprint":"excessive-permissions:.github/workflows/playwright.yml:12"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.0,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":899.0,"function_nloc":13929.0,"mean_ccn":2.82,"p90_ccn":6.0,"complex_functions":22.0,"long_functions":16.0,"many_param_functions":0.0,"risky_nloc_share":0.3393},"findings":[],"evidence":[{"kind":"complex-function","description":"handleWhatsappClick in app/crear-cancion/confirmacion/page.tsx: complexity 47, 120 lines","ref":"app/crear-cancion/confirmacion/page.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/confirmacion/page.tsx#L702","weight":0.7833333333333333},{"kind":"complex-function","description":"formatWhatsAppMessageFreemium in app/crear-cancion/utils.ts: complexity 46, 63 lines","ref":"app/crear-cancion/utils.ts","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/utils.ts#L102","weight":0.7666666666666667},{"kind":"complex-function","description":"extractTwoLyrics in app/api/generate-lyrics/route.ts: complexity 40, 105 lines","ref":"app/api/generate-lyrics/route.ts","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/api/generate-lyrics/route.ts#L119","weight":0.6666666666666666},{"kind":"complex-function","description":"handleFinishEditing in app/crear-cancion/confirmacion/page.tsx: complexity 37, 90 lines","ref":"app/crear-cancion/confirmacion/page.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/confirmacion/page.tsx#L566","weight":0.6166666666666667},{"kind":"complex-function","description":"handleNext in app/crear-cancion/page.tsx: complexity 33, 110 lines","ref":"app/crear-cancion/page.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/page.tsx#L319","weight":0.55},{"kind":"complex-function","description":"EditarLetra in app/editar/[id]/page.tsx: complexity 32, 299 lines","ref":"app/editar/[id]/page.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/editar/[id]/page.tsx#L131","weight":0.5333333333333333},{"kind":"complex-function","description":"Confirmacion in app/crear-cancion/confirmacion/page.tsx: complexity 29, 261 lines","ref":"app/crear-cancion/confirmacion/page.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/confirmacion/page.tsx#L72","weight":0.48333333333333334},{"kind":"complex-function","description":"validateStep in app/crear-cancion/utils.ts: complexity 27, 123 lines","ref":"app/crear-cancion/utils.ts","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/utils.ts#L181","weight":0.45},{"kind":"complex-function","description":"saveOrderToSupabase in app/utils/supabase.ts: complexity 25, 79 lines","ref":"app/utils/supabase.ts","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/utils/supabase.ts#L10","weight":0.4166666666666667},{"kind":"complex-function","description":"(anonymous) in app/crear-cancion/confirmacion/page.tsx: complexity 23, 90 lines","ref":"app/crear-cancion/confirmacion/page.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/crear-cancion/confirmacion/page.tsx#L340","weight":0.38333333333333336}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":18193.0,"duplicated_lines":3407.0,"duplicated_share":0.1873,"files":152.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageChristmas.tsx:38 and app/components/LandingPageOriginal.tsx:38","ref":"app/components/LandingPageChristmas.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageChristmas.tsx#L38","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageChristmas.tsx:41 and app/components/LandingPageNewYear.tsx:47","ref":"app/components/LandingPageChristmas.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageChristmas.tsx#L41","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageChristmas.tsx:116 and app/components/LandingPageChristmas.tsx:119","ref":"app/components/LandingPageChristmas.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageChristmas.tsx#L116","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageChristmas.tsx:187 and app/components/LandingPageValentine.tsx:122","ref":"app/components/LandingPageChristmas.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageChristmas.tsx#L187","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageNewYear.tsx:117 and app/components/LandingPageNewYear.tsx:118","ref":"app/components/LandingPageNewYear.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageNewYear.tsx#L117","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageOriginal.tsx:466 and app/components/LandingPageValentine.tsx:363","ref":"app/components/LandingPageOriginal.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageOriginal.tsx#L466","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageOriginal.tsx:610 and app/components/LandingPageOriginal.tsx:635","ref":"app/components/LandingPageOriginal.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageOriginal.tsx#L610","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/LandingPageValentine.tsx:237 and app/components/LandingPageValentine.tsx:258","ref":"app/components/LandingPageValentine.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/LandingPageValentine.tsx#L237","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/audio-player.tsx:27 and app/components/nano-player.tsx:59","ref":"app/components/audio-player.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/audio-player.tsx#L27","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/components/enhanced-whatsapp-transfer.tsx:187 and app/components/enhanced-whatsapp-transfer.tsx:211","ref":"app/components/enhanced-whatsapp-transfer.tsx","url":"https://github.com/xavi129/escribetucancion-landing/blob/86a15d9b7c3f5ee97e08fbf45bc7d7e51ba27bf6/app/components/enhanced-whatsapp-transfer.tsx#L187","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":250.0,"weighted_findings":236.25,"scanned_lines":24007.0,"category:best-practice":223.0,"category:correctness":27.0},"findings":[{"rule_id":"opengrep/typescript.lang.correctness.useless-ternary","severity":"high","message":"It looks like no matter how formData.deliveryType === \"standard\" is evaluated, this expression returns \"text-white\". This is probably a copy-paste error.","path":"app/crear-cancion/components/steps/step-11-delivery.tsx","line":86,"fingerprint":"typescript.lang.correctness.useless-ternary:app/crear-cancion/components/steps/step-11-delivery.tsx:86"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":24,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:24"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":42,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:42"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":49,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:49"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:54"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":62,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:62"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":70,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:70"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":78,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:78"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert-dialog.tsx","line":89,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert-dialog.tsx:89"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert.tsx","line":25,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert.tsx:25"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert.tsx","line":31,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert.tsx:31"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/alert.tsx","line":38,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/alert.tsx:38"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/badge.tsx","line":26,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/badge.tsx:26"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/slider.tsx","line":15,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/slider.tsx:15"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/tabs.tsx","line":20,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/tabs.tsx:20"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/tabs.tsx","line":35,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/tabs.tsx:35"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/components/ui/tabs.tsx","line":50,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/components/ui/tabs.tsx:50"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/components/whatsapp-form.tsx","line":72,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/components/whatsapp-form.tsx:72"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/crear-cancion/components/form-navigation.tsx","line":131,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/crear-cancion/components/form-navigation.tsx:131"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"app/crear-cancion/components/form-navigation.tsx","line":132,"fingerprint":"typescript.react.best-practice.react-props-spreading:app/crear-cancion/components/form-navigation.tsx:132"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"app/crear-cancion/confirmacion/page.tsx","line":321,"fingerprint":"javascript.lang.correctness.no-stringify-keys:app/crear-cancion/confirmacion/page.tsx:321"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/crear-cancion/confirmacion/page.tsx","line":467,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/crear-cancion/confirmacion/page.tsx:467"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/crear-cancion/confirmacion/page.tsx","line":502,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/crear-cancion/confirmacion/page.tsx:502"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/crear-cancion/confirmacion/page.tsx","line":510,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/crear-cancion/confirmacion/page.tsx:510"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"app/crear-cancion/confirmacion/page.tsx","line":516,"fingerprint":"javascript.lang.correctness.no-stringify-keys:app/crear-cancion/confirmacion/page.tsx:516"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/crear-cancion/confirmacion/page.tsx","line":521,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/crear-cancion/confirmacion/page.tsx:521"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/crear-cancion/confirmacion/page.tsx","line":560,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/crear-cancion/confirmacion/page.tsx:560"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"app/crear-cancion/confirmacion/page.tsx","line":688,"fingerprint":"javascript.lang.correctness.no-stringify-keys:app/crear-cancion/confirmacion/page.tsx:688"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"app/crear-cancion/confirmacion/page.tsx","line":802,"fingerprint":"javascript.lang.correctness.no-stringify-keys:app/crear-cancion/confirmacion/page.tsx:802"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/editar/[id]/page.tsx","line":264,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/editar/[id]/page.tsx:264"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/editar/[id]/page.tsx","line":310,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/editar/[id]/page.tsx:310"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/editar/[id]/page.tsx","line":317,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/editar/[id]/page.tsx:317"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"app/editar/[id]/page.tsx","line":322,"fingerprint":"javascript.lang.correctness.no-stringify-keys:app/editar/[id]/page.tsx:322"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/editar/[id]/page.tsx","line":325,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/editar/[id]/page.tsx:325"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"app/editar/[id]/page.tsx","line":358,"fingerprint":"javascript.lang.best-practice.javascript-alert:app/editar/[id]/page.tsx:358"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-in-state","severity":"medium","message":"Copying a prop into state in React -- this is bad practice as all updates to it are ignored. Instead, read props directly in your component and avoid copying props into state.","path":"app/hooks/use-geo-country.ts","line":20,"fingerprint":"typescript.react.best-practice.react-props-in-state:app/hooks/use-geo-country.ts:20"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/theme-provider.tsx","line":10,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/theme-provider.tsx:10"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/accordion.tsx","line":18,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/accordion.tsx:18"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/accordion.tsx","line":34,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/accordion.tsx:34"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/accordion.tsx","line":50,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/accordion.tsx:50"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":24,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:24"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":42,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:42"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":57,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:57"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":71,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:71"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":83,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:83"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":95,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:95"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":108,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:108"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert-dialog.tsx","line":124,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert-dialog.tsx:124"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert.tsx","line":30,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert.tsx:30"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert.tsx","line":42,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert.tsx:42"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/alert.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/alert.tsx:54"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/avatar.tsx","line":18,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/avatar.tsx:18"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/avatar.tsx","line":30,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/avatar.tsx:30"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/avatar.tsx","line":45,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/avatar.tsx:45"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/badge.tsx","line":32,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/badge.tsx:32"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/breadcrumb.tsx","line":12,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/breadcrumb.tsx:12"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/breadcrumb.tsx","line":25,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/breadcrumb.tsx:25"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/breadcrumb.tsx","line":37,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/breadcrumb.tsx:37"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/breadcrumb.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/breadcrumb.tsx:54"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/breadcrumb.tsx","line":70,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/breadcrumb.tsx:70"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/breadcrumb.tsx","line":84,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/breadcrumb.tsx:84"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/breadcrumb.tsx","line":99,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/breadcrumb.tsx:99"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/button.tsx","line":49,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/button.tsx:49"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/calendar.tsx","line":60,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/calendar.tsx:60"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/card.tsx","line":15,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/card.tsx:15"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/card.tsx","line":27,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/card.tsx:27"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/card.tsx","line":42,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/card.tsx:42"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/card.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/card.tsx:54"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/card.tsx","line":63,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/card.tsx:63"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/card.tsx","line":74,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/card.tsx:74"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/carousel.tsx","line":143,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/carousel.tsx:143"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/carousel.tsx","line":168,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/carousel.tsx:168"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/carousel.tsx","line":191,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/carousel.tsx:191"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/carousel.tsx","line":217,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/carousel.tsx:217"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/carousel.tsx","line":246,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/carousel.tsx:246"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/chart.tsx","line":58,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/chart.tsx:58"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/checkbox.tsx","line":19,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/checkbox.tsx:19"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":21,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:21"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":28,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:28"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":50,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:50"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":64,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:64"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":77,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:77"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":93,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:93"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":106,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:106"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":121,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:121"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/command.tsx","line":137,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/command.tsx:137"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":34,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:34"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":52,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:52"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":68,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:68"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":87,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:87"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":103,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:103"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":126,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:126"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":151,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:151"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":163,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:163"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/context-menu.tsx","line":178,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/context-menu.tsx:178"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dialog.tsx","line":27,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dialog.tsx:27"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dialog.tsx","line":44,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dialog.tsx:44"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dialog.tsx","line":65,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dialog.tsx:65"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dialog.tsx","line":79,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dialog.tsx:79"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dialog.tsx","line":94,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dialog.tsx:94"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dialog.tsx","line":106,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dialog.tsx:106"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/drawer.tsx","line":14,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/drawer.tsx:14"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/drawer.tsx","line":32,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/drawer.tsx:32"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/drawer.tsx","line":49,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/drawer.tsx:49"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/drawer.tsx","line":64,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/drawer.tsx:64"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/drawer.tsx","line":75,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/drawer.tsx:75"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/drawer.tsx","line":90,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/drawer.tsx:90"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/drawer.tsx","line":102,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/drawer.tsx:102"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":34,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:34"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":53,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:53"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":71,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:71"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":90,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:90"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":106,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:106"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":129,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:129"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":154,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:154"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":166,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:166"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/dropdown-menu.tsx","line":178,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/dropdown-menu.tsx:178"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/form.tsx","line":39,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/form.tsx:39"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/form.tsx","line":83,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/form.tsx:83"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/form.tsx","line":100,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/form.tsx:100"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/form.tsx","line":122,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/form.tsx:122"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/form.tsx","line":139,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/form.tsx:139"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/form.tsx","line":161,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/form.tsx:161"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/hover-card.tsx","line":24,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/hover-card.tsx:24"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/input-otp.tsx","line":20,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/input-otp.tsx:20"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/input-otp.tsx","line":29,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/input-otp.tsx:29"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/input-otp.tsx","line":48,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/input-otp.tsx:48"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/input-otp.tsx","line":65,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/input-otp.tsx:65"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/input.tsx","line":15,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/input.tsx:15"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/label.tsx","line":21,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/label.tsx:21"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":29,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:29"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":44,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:44"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":62,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:62"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":80,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:80"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":103,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:103"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":123,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:123"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":139,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:139"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":161,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:161"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":186,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:186"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":198,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:198"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/menubar.tsx","line":213,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/menubar.tsx:213"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/navigation-menu.tsx","line":18,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/navigation-menu.tsx:18"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/navigation-menu.tsx","line":36,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/navigation-menu.tsx:36"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/navigation-menu.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/navigation-menu.tsx:54"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/navigation-menu.tsx","line":75,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/navigation-menu.tsx:75"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/navigation-menu.tsx","line":93,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/navigation-menu.tsx:93"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/navigation-menu.tsx","line":110,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/navigation-menu.tsx:110"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/pagination.tsx","line":12,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/pagination.tsx:12"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/pagination.tsx","line":24,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/pagination.tsx:24"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/pagination.tsx","line":33,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/pagination.tsx:33"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/pagination.tsx","line":57,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/pagination.tsx:57"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/pagination.tsx","line":70,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/pagination.tsx:70"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/pagination.tsx","line":86,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/pagination.tsx:86"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/pagination.tsx","line":101,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/pagination.tsx:101"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/popover.tsx","line":25,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/popover.tsx:25"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/progress.tsx","line":18,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/progress.tsx:18"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/radio-group.tsx","line":16,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/radio-group.tsx:16"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/radio-group.tsx","line":34,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/radio-group.tsx:34"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/resizable.tsx","line":17,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/resizable.tsx:17"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/resizable.tsx","line":35,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/resizable.tsx:35"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/scroll-area.tsx","line":15,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/scroll-area.tsx:15"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/scroll-area.tsx","line":41,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/scroll-area.tsx:41"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/select.tsx","line":25,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/select.tsx:25"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/select.tsx","line":45,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/select.tsx:45"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/select.tsx","line":62,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/select.tsx:62"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/select.tsx","line":84,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/select.tsx:84"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/select.tsx","line":109,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/select.tsx:109"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/select.tsx","line":124,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/select.tsx:124"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/select.tsx","line":144,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/select.tsx:144"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/separator.tsx","line":25,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/separator.tsx:25"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sheet.tsx","line":27,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sheet.tsx:27"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sheet.tsx","line":65,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sheet.tsx:65"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sheet.tsx","line":86,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sheet.tsx:86"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sheet.tsx","line":100,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sheet.tsx:100"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sheet.tsx","line":112,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sheet.tsx:112"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sheet.tsx","line":124,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sheet.tsx:124"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":148,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:148"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":188,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:188"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":197,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:197"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":247,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:247"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":279,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:279"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":311,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:311"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":329,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:329"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":347,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:347"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":362,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:362"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":377,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:377"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":392,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:392"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":410,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:410"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":425,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:425"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":446,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:446"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":469,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:469"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":483,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:483"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":496,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:496"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":509,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:509"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":566,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:566"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":587,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:587"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":620,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:620"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":642,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:642"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":663,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:663"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"components/ui/sidebar.tsx","line":697,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/sidebar.tsx:697"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0212,"check:ci_present":1.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":256.0,"source_lines":24095.0,"test_ratio":0.0106,"ci_files":1.0,"cochange_share":1.0,"cochange_commits":1.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/playwright.yml","ref":".github/workflows/playwright.yml","url":null,"weight":0.0}],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":57.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":1.0,"check:low_escape_density":1.0,"escapes":23.0,"escapes_per_kloc":0.96},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: tsconfig.json","ref":"tsconfig.json","url":null,"weight":0.0}],"data":{},"error":null}],"flags":[]}