{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:08.530942Z","repo":{"ref":{"host":"github.com","owner":"xavi129","name":"escribetucancion-dashboard"},"default_branch":"main","clone_url":"https://github.com/xavi129/escribetucancion-dashboard.git","html_url":"https://github.com/xavi129/escribetucancion-dashboard","description":"Dashboard operativo 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":398,"primary_language":"TypeScript","license_spdx":null,"created_at":"2026-07-16T01:34:27Z","pushed_at":"2026-07-16T01:40:41Z","security_policy_url":null,"distribution":{"owner_created_at":"2021-09-14T07:05:18Z","owner_type":"User","release_assets":[]}},"commit_sha":"ec1d3e425e3e020d727afa359e94b70d4640a79d","profile":{"lines_by_language":{"TypeScript":33601,"JavaScript":282,"SQL":50},"files_by_category":{"source":186,"config":5,"other":4,"test":4,"docs":3,"binary":3,"generated":1},"source_lines":33113,"test_lines":820},"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.96},"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":35.3,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":28.7,"duplication":49.1,"lint":12.4,"testing":31.2,"docs":40.0,"type_safety":100.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.02, no CI test run detected; 42% of function code in complex or long functions; 12% duplicated lines. Weakest area: lint."},"security":{"score":59.9,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":98.6,"dependencies":0.9,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 135 known vulnerabilities in 37 dependencies. 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":71.0,"checked":71.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":33933.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":33933,"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":33933.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["ec1d3e425e3e020d727afa359e94b70d4640a79d"]},"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":33113.0,"index":2.96,"count:narrated_steps":3.0,"per_kloc:narrated_steps":0.091,"files:narrated_steps":3.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":190.0,"per_kloc:emoji_in_code":5.738,"files:emoji_in_code":18.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, fetch the order to get spotify_upload and video flags","ref":"app/api/dlocal/webhook/route.ts:285","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/dlocal/webhook/route.ts#L285","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // First, fetch the order to get spotify_upload and video flags","ref":"app/api/stripe/webhook/route.ts:73","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/stripe/webhook/route.ts#L73","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // First, get the media URL","ref":"lib/whatsapp-business.ts:768","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/lib/whatsapp-business.ts#L768","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":13.0,"findings_high":0.0,"findings_medium":3.0,"findings_low":10.0,"weighted_findings":1.375,"scanned_lines":33063.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"app/api/email/send/route.ts","line":27,"fingerprint":"javascript.lang.security.html-in-template-string:app/api/email/send/route.ts:27"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `genreType` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-contr [confidence low]","path":"app/api/gemini/generate-style/route.ts","line":351,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:app/api/gemini/generate-style/route.ts:351"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"components/transactions-table.tsx","line":1160,"fingerprint":"javascript.lang.security.html-in-template-string:components/transactions-table.tsx:1160"},{"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/api/cron/generate-songs/route.ts","line":153,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/cron/generate-songs/route.ts:153"},{"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/api/cron/generate-songs/route.ts","line":162,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/cron/generate-songs/route.ts:162"},{"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/api/suno/tasks/route.ts","line":46,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/suno/tasks/route.ts:46"},{"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/api/video/webhook/route.ts","line":98,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/video/webhook/route.ts:98"},{"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/api/whatsapp/send-to-leads/route.ts","line":35,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/whatsapp/send-to-leads/route.ts:35"},{"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/api/whatsapp/send-to-leads/route.ts","line":41,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/whatsapp/send-to-leads/route.ts:41"},{"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/api/whatsapp/send-to-leads/route.ts","line":43,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/whatsapp/send-to-leads/route.ts:43"},{"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/api/whatsapp/send-to-leads/route.ts","line":48,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/whatsapp/send-to-leads/route.ts:48"},{"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/api/whatsapp/send-to-leads/route.ts","line":609,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:app/api/whatsapp/send-to-leads/route.ts:609"},{"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":"components/transactions-table.tsx","line":194,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:components/transactions-table.tsx:194"}],"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":37.0,"vulnerabilities":135.0,"vulns_critical":7.0,"vulns_high":67.0,"vulns_medium":52.0,"vulns_low":9.0,"vulns_unknown":0.0,"penalty":282.0},"findings":[{"rule_id":"osv/GHSA-vqx2-fgx2-5wq9","severity":"critical","message":"@clerk/nextjs@6.18.5 (npm) is affected by GHSA-vqx2-fgx2-5wq9","path":"pnpm-lock.yaml","line":null,"fingerprint":"@clerk/nextjs@6.18.5 (npm):GHSA-vqx2-fgx2-5wq9"},{"rule_id":"osv/GHSA-vqx2-fgx2-5wq9","severity":"critical","message":"@clerk/shared@3.7.8 (npm) is affected by GHSA-vqx2-fgx2-5wq9","path":"pnpm-lock.yaml","line":null,"fingerprint":"@clerk/shared@3.7.8 (npm):GHSA-vqx2-fgx2-5wq9"},{"rule_id":"osv/GHSA-m7jm-9gc2-mpf2","severity":"critical","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-m7jm-9gc2-mpf2","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-m7jm-9gc2-mpf2"},{"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-5xrq-8626-4rwp","severity":"critical","message":"vitest@4.0.15 (npm) is affected by GHSA-5xrq-8626-4rwp","path":"pnpm-lock.yaml","line":null,"fingerprint":"vitest@4.0.15 (npm):GHSA-5xrq-8626-4rwp"},{"rule_id":"osv/GHSA-w24r-5266-9c3c","severity":"high","message":"@clerk/clerk-react@5.30.4 (npm) is affected by GHSA-w24r-5266-9c3c","path":"pnpm-lock.yaml","line":null,"fingerprint":"@clerk/clerk-react@5.30.4 (npm):GHSA-w24r-5266-9c3c"},{"rule_id":"osv/GHSA-9mp4-77wg-rwx9","severity":"high","message":"@clerk/nextjs@6.18.5 (npm) is affected by GHSA-9mp4-77wg-rwx9","path":"pnpm-lock.yaml","line":null,"fingerprint":"@clerk/nextjs@6.18.5 (npm):GHSA-9mp4-77wg-rwx9"},{"rule_id":"osv/GHSA-w24r-5266-9c3c","severity":"high","message":"@clerk/nextjs@6.18.5 (npm) is affected by GHSA-w24r-5266-9c3c","path":"pnpm-lock.yaml","line":null,"fingerprint":"@clerk/nextjs@6.18.5 (npm):GHSA-w24r-5266-9c3c"},{"rule_id":"osv/GHSA-w24r-5266-9c3c","severity":"high","message":"@clerk/shared@3.7.8 (npm) is affected by GHSA-w24r-5266-9c3c","path":"pnpm-lock.yaml","line":null,"fingerprint":"@clerk/shared@3.7.8 (npm):GHSA-w24r-5266-9c3c"},{"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-37qj-frw5-hhjh","severity":"high","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-37qj-frw5-hhjh","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-37qj-frw5-hhjh"},{"rule_id":"osv/GHSA-8gc5-j5rx-235r","severity":"high","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-8gc5-j5rx-235r","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-8gc5-j5rx-235r"},{"rule_id":"osv/GHSA-jmr7-xgp7-cmfj","severity":"high","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-jmr7-xgp7-cmfj","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-jmr7-xgp7-cmfj"},{"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-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-qjx8-664m-686j","severity":"high","message":"js-cookie@3.0.5 (npm) is affected by GHSA-qjx8-664m-686j","path":"pnpm-lock.yaml","line":null,"fingerprint":"js-cookie@3.0.5 (npm):GHSA-qjx8-664m-686j"},{"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-6g55-p6wh-862q","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-6g55-p6wh-862q","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-r28c-9q8g-f849","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-mw96-cpmx-2vgc","severity":"high","message":"rollup@4.53.3 (npm) is affected by GHSA-mw96-cpmx-2vgc","path":"pnpm-lock.yaml","line":null,"fingerprint":"rollup@4.53.3 (npm):GHSA-mw96-cpmx-2vgc"},{"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-587h-7wmj-h5pm","severity":"high","message":"vite@7.2.6 (npm) is affected by GHSA-587h-7wmj-h5pm","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-p9ff-h696-f583","severity":"high","message":"vite@7.2.6 (npm) is affected by GHSA-p9ff-h696-f583","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-p9ff-h696-f583"},{"rule_id":"osv/GHSA-v2wj-q39q-566r","severity":"high","message":"vite@7.2.6 (npm) is affected by GHSA-v2wj-q39q-566r","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-v2wj-q39q-566r"},{"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.13 (npm) is affected by GHSA-866g-f22w-33x8","path":"pnpm-lock.yaml","line":null,"fingerprint":"@ai-sdk/provider-utils@4.0.13 (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-82fw-gwwq-j7x9","severity":"medium","message":"@vitest/mocker@4.0.15 (npm) is affected by GHSA-82fw-gwwq-j7x9","path":"pnpm-lock.yaml","line":null,"fingerprint":"@vitest/mocker@4.0.15 (npm):GHSA-82fw-gwwq-j7x9"},{"rule_id":"osv/GHSA-qxg6-89mg-rqv8","severity":"medium","message":"@vitest/mocker@4.0.15 (npm) is affected by GHSA-qxg6-89mg-rqv8","path":"pnpm-lock.yaml","line":null,"fingerprint":"@vitest/mocker@4.0.15 (npm):GHSA-qxg6-89mg-rqv8"},{"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-gh4j-gqv2-49f6","severity":"medium","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-gh4j-gqv2-49f6","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-gh4j-gqv2-49f6"},{"rule_id":"osv/GHSA-jp2q-39xq-3w4g","severity":"medium","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-jp2q-39xq-3w4g","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-jp2q-39xq-3w4g"},{"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-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"pnpm-lock.yaml","line":null,"fingerprint":"postcss@8.5.6 (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-4w7w-66w2-5vf9","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-4w7w-66w2-5vf9","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-4w7w-66w2-5vf9"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-698v-4r3x-3vcv","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-fx2h-pf6j-xcff","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-fx2h-pf6j-xcff","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-fx2h-pf6j-xcff"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-r825-w8mm-5pxw","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-rq7h-c2jc-7f22","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-rq7h-c2jc-7f22","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-rq7h-c2jc-7f22"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-v6wh-96g9-6wx3","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-82fw-gwwq-j7x9","severity":"medium","message":"vitest@4.0.15 (npm) is affected by GHSA-82fw-gwwq-j7x9","path":"pnpm-lock.yaml","line":null,"fingerprint":"vitest@4.0.15 (npm):GHSA-82fw-gwwq-j7x9"},{"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-474x-hrwr-fgx4","severity":"low","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-474x-hrwr-fgx4","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-474x-hrwr-fgx4"},{"rule_id":"osv/GHSA-fj3w-jwp8-x2g3","severity":"low","message":"fast-xml-parser@5.2.5 (npm) is affected by GHSA-fj3w-jwp8-x2g3","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-xml-parser@5.2.5 (npm):GHSA-fj3w-jwp8-x2g3"},{"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"},{"rule_id":"osv/GHSA-9jrq-w75r-8gcw","severity":"low","message":"vite@7.2.6 (npm) is affected by GHSA-9jrq-w75r-8gcw","path":"pnpm-lock.yaml","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-9jrq-w75r-8gcw"}],"evidence":[],"data":{"ecosystems":["npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"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":1051.0,"function_nloc":21652.0,"mean_ccn":4.05,"p90_ccn":9.0,"complex_functions":52.0,"long_functions":48.0,"many_param_functions":2.0,"risky_nloc_share":0.4157},"findings":[],"evidence":[{"kind":"complex-function","description":"POST in app/api/webhook/suno/route.ts: complexity 98, 356 lines","ref":"app/api/webhook/suno/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/webhook/suno/route.ts#L619","weight":1.0},{"kind":"complex-function","description":"POST in app/api/suno/song-operations/route.ts: complexity 79, 268 lines","ref":"app/api/suno/song-operations/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/suno/song-operations/route.ts#L84","weight":1.0},{"kind":"complex-function","description":"TransactionsTable in components/transactions-table.tsx: complexity 68, 565 lines","ref":"components/transactions-table.tsx","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/components/transactions-table.tsx#L31","weight":1.0},{"kind":"complex-function","description":"POST in app/api/whatsapp/send-to-leads/route.ts: complexity 61, 318 lines","ref":"app/api/whatsapp/send-to-leads/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/whatsapp/send-to-leads/route.ts#L114","weight":1.0},{"kind":"complex-function","description":"POST in app/api/dlocal/webhook/route.ts: complexity 52, 299 lines","ref":"app/api/dlocal/webhook/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/dlocal/webhook/route.ts#L160","weight":0.8666666666666667},{"kind":"complex-function","description":"POST in app/api/gemini/generate-style/route.ts: complexity 47, 480 lines","ref":"app/api/gemini/generate-style/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/gemini/generate-style/route.ts#L567","weight":0.7833333333333333},{"kind":"complex-function","description":"POST in app/api/orders/generate-song/route.ts: complexity 45, 194 lines","ref":"app/api/orders/generate-song/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/orders/generate-song/route.ts#L17","weight":0.75},{"kind":"complex-function","description":"detectGenre in app/api/gemini/generate-style/route.ts: complexity 42, 122 lines","ref":"app/api/gemini/generate-style/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/gemini/generate-style/route.ts#L372","weight":0.7},{"kind":"complex-function","description":"POST in app/api/orders/edit-lyric/route.ts: complexity 42, 207 lines","ref":"app/api/orders/edit-lyric/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/orders/edit-lyric/route.ts#L5","weight":0.7},{"kind":"complex-function","description":"GET in app/api/orders/[orderId]/route.ts: complexity 39, 113 lines","ref":"app/api/orders/[orderId]/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/orders/[orderId]/route.ts#L31","weight":0.65}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":23417.0,"duplicated_lines":2773.0,"duplicated_share":0.1184,"files":186.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/dlocal/create-checkout/route.ts:9 and app/api/stripe/create-checkout/route.ts:10","ref":"app/api/dlocal/create-checkout/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/dlocal/create-checkout/route.ts#L9","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/dlocal/create-checkout/route.ts:115 and app/api/orders/[orderId]/route.ts:48","ref":"app/api/dlocal/create-checkout/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/dlocal/create-checkout/route.ts#L115","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/dlocal/webhook/route.ts:279 and app/api/stripe/webhook/route.ts:67","ref":"app/api/dlocal/webhook/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/dlocal/webhook/route.ts#L279","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/dlocal/webhook/route.ts:355 and app/api/orders/upsell/route.ts:296","ref":"app/api/dlocal/webhook/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/dlocal/webhook/route.ts#L355","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/dlocal/webhook/route.ts:383 and app/api/dlocal/webhook/route.ts:453","ref":"app/api/dlocal/webhook/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/dlocal/webhook/route.ts#L383","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/gemini/generate-lyrics/route.ts:18 and app/api/orders/generate-and-save-lyric/route.ts:99","ref":"app/api/gemini/generate-lyrics/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/gemini/generate-lyrics/route.ts#L18","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/orders/[orderId]/route.ts:8 and app/api/stripe/create-checkout/route.ts:14","ref":"app/api/orders/[orderId]/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/orders/[orderId]/route.ts#L8","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/orders/complete-order/route.ts:19 and app/api/orders/generate-song/route.ts:33","ref":"app/api/orders/complete-order/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/orders/complete-order/route.ts#L19","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/orders/complete-order/route.ts:64 and app/api/orders/spotify-addon/route.ts:288","ref":"app/api/orders/complete-order/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/orders/complete-order/route.ts#L64","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/api/orders/edit-lyric/route.ts:43 and app/api/orders/generate-and-save-lyric/route.ts:26","ref":"app/api/orders/edit-lyric/route.ts","url":"https://github.com/xavi129/escribetucancion-dashboard/blob/ec1d3e425e3e020d727afa359e94b70d4640a79d/app/api/orders/edit-lyric/route.ts#L43","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":276.0,"weighted_findings":276.0,"scanned_lines":33063.0,"category:best-practice":271.0,"category:correctness":5.0},"findings":[{"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":"components/suno-generation-form.tsx","line":327,"fingerprint":"javascript.lang.correctness.no-stringify-keys:components/suno-generation-form.tsx:327"},{"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/suno-generation-form.tsx","line":449,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/suno-generation-form.tsx:449"},{"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/suno-generation-form.tsx","line":501,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/suno-generation-form.tsx:501"},{"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/suno-generation-form.tsx","line":523,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/suno-generation-form.tsx:523"},{"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/suno-generation-form.tsx","line":538,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/suno-generation-form.tsx:538"},{"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/suno-generation-form.tsx","line":582,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/suno-generation-form.tsx:582"},{"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/transaction-form.tsx","line":170,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:170"},{"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/transaction-form.tsx","line":190,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:190"},{"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/transaction-form.tsx","line":205,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:205"},{"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/transaction-form.tsx","line":219,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:219"},{"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/transaction-form.tsx","line":233,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:233"},{"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/transaction-form.tsx","line":247,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.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/transaction-form.tsx","line":353,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:353"},{"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/transaction-form.tsx","line":368,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:368"},{"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/transaction-form.tsx","line":439,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:439"},{"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/transaction-form.tsx","line":455,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:455"},{"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/transaction-form.tsx","line":473,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:473"},{"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/transaction-form.tsx","line":546,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:546"},{"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/transaction-form.tsx","line":570,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:570"},{"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/transaction-form.tsx","line":594,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:594"},{"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/transaction-form.tsx","line":640,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:640"},{"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/transaction-form.tsx","line":655,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:655"},{"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/transaction-form.tsx","line":693,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:693"},{"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/transaction-form.tsx","line":712,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/transaction-form.tsx:712"},{"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":"components/transactions-table.tsx","line":218,"fingerprint":"javascript.lang.correctness.no-stringify-keys:components/transactions-table.tsx:218"},{"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":"components/transactions-table.tsx","line":219,"fingerprint":"javascript.lang.correctness.no-stringify-keys:components/transactions-table.tsx:219"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":590,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:590"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":707,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:707"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":709,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:709"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":713,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:713"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":723,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:723"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":737,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:737"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":743,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:743"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":749,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:749"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":772,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:772"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":777,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:777"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":781,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:781"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":788,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:788"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-confirm","severity":"medium","message":"found confirm() call; should this be in production code?","path":"components/transactions-table.tsx","line":794,"fingerprint":"javascript.lang.best-practice.javascript-confirm:components/transactions-table.tsx:794"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":818,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:818"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":827,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:827"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":831,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:831"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":837,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:837"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":842,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:842"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":859,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:859"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":861,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:861"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":865,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:865"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":879,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:879"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":885,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:885"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":890,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:890"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":895,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:895"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1016,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1016"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1024,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1024"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1028,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1028"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1043,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1043"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1048,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1048"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1053,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1053"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1074,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1074"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1080,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1080"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1084,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1084"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1149,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1149"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1187,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1187"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1192,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1192"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1196,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1196"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1215,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1215"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1220,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1220"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1227,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1227"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1259,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1259"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1281,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1281"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1287,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1287"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1291,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1291"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1310,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1310"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-confirm","severity":"medium","message":"found confirm() call; should this be in production code?","path":"components/transactions-table.tsx","line":1316,"fingerprint":"javascript.lang.best-practice.javascript-confirm:components/transactions-table.tsx:1316"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-prompt","severity":"medium","message":"found prompt() call; should this be in production code?","path":"components/transactions-table.tsx","line":1333,"fingerprint":"javascript.lang.best-practice.javascript-prompt:components/transactions-table.tsx:1333"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1335,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1335"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-prompt","severity":"medium","message":"found prompt() call; should this be in production code?","path":"components/transactions-table.tsx","line":1339,"fingerprint":"javascript.lang.best-practice.javascript-prompt:components/transactions-table.tsx:1339"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1341,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1341"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1365,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1365"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1374,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1374"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"components/transactions-table.tsx","line":1378,"fingerprint":"javascript.lang.best-practice.javascript-alert:components/transactions-table.tsx:1378"},{"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":56,"fingerprint":"typescript.react.best-practice.react-props-spreading:components/ui/calendar.tsx:56"},{"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"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0495,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":820.0,"source_lines":33113.0,"test_ratio":0.0248,"ci_files":0.0,"cochange_share":1.0,"cochange_commits":1.0},"findings":[],"evidence":[],"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":67.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":33.0,"escapes_per_kloc":1.007},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: tsconfig.json","ref":"tsconfig.json","url":null,"weight":0.0}],"data":{},"error":null}],"flags":[]}