{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:05.656070Z","repo":{"ref":{"host":"github.com","owner":"jotanarciso","name":"azion-sql-dashboard-function"},"default_branch":"main","clone_url":"https://github.com/jotanarciso/azion-sql-dashboard-function.git","html_url":"https://github.com/jotanarciso/azion-sql-dashboard-function","description":null,"stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":21245,"primary_language":"TypeScript","license_spdx":null,"created_at":"2025-05-23T20:41:45Z","pushed_at":"2025-05-24T22:03:28Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-06-04T01:43:00Z","owner_type":"User","release_assets":[]}},"commit_sha":"13c6bffddc48cdbc46c91af3fe63282db303098a","profile":{"lines_by_language":{"TypeScript":2661,"JavaScript":17},"files_by_category":{"source":27,"config":11,"other":3,"docs":1,"generated":1,"binary":1},"source_lines":2678,"test_lines":0},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.41,"coverage":1.0,"label":"none-detected","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":0.187},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":33.6,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":56.5,"duplication":36.9,"lint":4.6,"testing":15.0,"docs":40.0,"type_safety":100.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 19% of function code in complex or long functions; 17% duplicated lines. Weakest area: lint."},"security":{"score":59.4,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":93.6,"sast":100.0,"dependencies":1.1,"ci_actions":65.7,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 139 known vulnerabilities in 37 dependencies; 2 high-severity workflow issues. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":22.0,"checked":22.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":2.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":18264.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2025-05":{"loc":18264,"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":1.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":1129.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":282.25,"median_loc_per_hour":282.25,"pr_timed_units":0.0,"excluded_import_loc":17135.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["d3a77bc42576a8356664c7592ba47ca7131a0366"]},"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":2678.0,"index":0.187,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":1.0,"per_kloc:emoji_in_code":0.373,"files:emoji_in_code":1.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"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":2.0},"findings":[{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree","path":"azion/azion.json","line":33,"fingerprint":"azion/azion.json:generic-api-key:33"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit d3a77bc425); removed from the current tree but still retrievable","path":"other/server/server-reference-manifest.json","line":4,"fingerprint":"d3a77bc42576a8356664c7592ba47ca7131a0366:other/server/server-reference-manifest.json:generic-api-key:4"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"findings_high":0.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":0.0,"scanned_lines":2678.0,"parse_errors":0.0},"findings":[],"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":139.0,"vulns_critical":9.0,"vulns_high":66.0,"vulns_medium":51.0,"vulns_low":13.0,"vulns_unknown":0.0,"penalty":270.0},"findings":[{"rule_id":"osv/GHSA-hrh2-vp3x-79xf","severity":"critical","message":"decompress@4.2.1 (npm) is affected by GHSA-hrh2-vp3x-79xf","path":"package-lock.json","line":null,"fingerprint":"decompress@4.2.1 (npm):GHSA-hrh2-vp3x-79xf"},{"rule_id":"osv/GHSA-mp2f-45pm-3cg9","severity":"critical","message":"decompress@4.2.1 (npm) is affected by GHSA-mp2f-45pm-3cg9","path":"package-lock.json","line":null,"fingerprint":"decompress@4.2.1 (npm):GHSA-mp2f-45pm-3cg9"},{"rule_id":"osv/GHSA-2464-fhr4-w9xw","severity":"critical","message":"next@13.5.3 (npm) is affected by GHSA-2464-fhr4-w9xw","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-2464-fhr4-w9xw"},{"rule_id":"osv/GHSA-2xp9-vwfh-vxw4","severity":"critical","message":"next@13.5.3 (npm) is affected by GHSA-2xp9-vwfh-vxw4","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-2xp9-vwfh-vxw4"},{"rule_id":"osv/GHSA-f82v-jwr5-mffw","severity":"critical","message":"next@13.5.3 (npm) is affected by GHSA-f82v-jwr5-mffw","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-f82v-jwr5-mffw"},{"rule_id":"osv/GHSA-p293-qw3h-jr36","severity":"critical","message":"next@13.5.3 (npm) is affected by GHSA-p293-qw3h-jr36","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-p293-qw3h-jr36"},{"rule_id":"osv/GHSA-h7cp-r72f-jxh6","severity":"critical","message":"pbkdf2@3.1.2 (npm) is affected by GHSA-h7cp-r72f-jxh6","path":"package-lock.json","line":null,"fingerprint":"pbkdf2@3.1.2 (npm):GHSA-h7cp-r72f-jxh6"},{"rule_id":"osv/GHSA-v62p-rq8g-8h59","severity":"critical","message":"pbkdf2@3.1.2 (npm) is affected by GHSA-v62p-rq8g-8h59","path":"package-lock.json","line":null,"fingerprint":"pbkdf2@3.1.2 (npm):GHSA-v62p-rq8g-8h59"},{"rule_id":"osv/GHSA-95m3-7q98-8xr5","severity":"critical","message":"sha.js@2.4.11 (npm) is affected by GHSA-95m3-7q98-8xr5","path":"package-lock.json","line":null,"fingerprint":"sha.js@2.4.11 (npm):GHSA-95m3-7q98-8xr5"},{"rule_id":"osv/GHSA-fv7c-fp4j-7gwp","severity":"high","message":"@babel/plugin-transform-modules-systemjs@7.27.1 (npm) is affected by GHSA-fv7c-fp4j-7gwp","path":"package-lock.json","line":null,"fingerprint":"@babel/plugin-transform-modules-systemjs@7.27.1 (npm):GHSA-fv7c-fp4j-7gwp"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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.5 (npm) is affected by GHSA-73wf-gq98-2v4g","path":"package-lock.json","line":null,"fingerprint":"browserslist@4.24.5 (npm):GHSA-73wf-gq98-2v4g"},{"rule_id":"osv/GHSA-c83g-rgw3-j3cx","severity":"high","message":"browserslist@4.24.5 (npm) is affected by GHSA-c83g-rgw3-j3cx","path":"package-lock.json","line":null,"fingerprint":"browserslist@4.24.5 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-737v-mqg7-c878","severity":"high","message":"defu@6.1.4 (npm) is affected by GHSA-737v-mqg7-c878","path":"package-lock.json","line":null,"fingerprint":"defu@6.1.4 (npm):GHSA-737v-mqg7-c878"},{"rule_id":"osv/GHSA-4c8g-83qw-93j6","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-4c8g-83qw-93j6","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-4c8g-83qw-93j6"},{"rule_id":"osv/GHSA-7p8r-x3mc-p8w7","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-7p8r-x3mc-p8w7","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-7p8r-x3mc-p8w7"},{"rule_id":"osv/GHSA-f65p-4m7j-42xc","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-f65p-4m7j-42xc","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-f65p-4m7j-42xc"},{"rule_id":"osv/GHSA-jqff-g426-hqxp","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-jqff-g426-hqxp","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-jqff-g426-hqxp"},{"rule_id":"osv/GHSA-q3j6-qgpj-74h6","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-q3j6-qgpj-74h6","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-q3j6-qgpj-74h6"},{"rule_id":"osv/GHSA-qw65-cvwx-89v3","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-qw65-cvwx-89v3","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-qw65-cvwx-89v3"},{"rule_id":"osv/GHSA-v2hh-gcrm-f6hx","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-v2hh-gcrm-f6hx","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-v2hh-gcrm-f6hx"},{"rule_id":"osv/GHSA-v39h-62p7-jpjc","severity":"high","message":"fast-uri@3.0.6 (npm) is affected by GHSA-v39h-62p7-jpjc","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-v39h-62p7-jpjc"},{"rule_id":"osv/GHSA-25h7-pfq9-p65f","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-25h7-pfq9-p65f","path":"package-lock.json","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":"package-lock.json","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":"package-lock.json","line":null,"fingerprint":"glob@10.4.5 (npm):GHSA-5j98-mcp5-4vw2"},{"rule_id":"osv/GHSA-2p57-rm9w-gvfp","severity":"high","message":"ip@2.0.1 (npm) is affected by GHSA-2p57-rm9w-gvfp","path":"package-lock.json","line":null,"fingerprint":"ip@2.0.1 (npm):GHSA-2p57-rm9w-gvfp"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-52cp-r559-cp3m","path":"package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@4.1.0 (npm) is affected by GHSA-5p4m-2wfm-xmqj","path":"package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-r5fr-rjxr-66jc","severity":"high","message":"lodash-es@4.17.21 (npm) is affected by GHSA-r5fr-rjxr-66jc","path":"package-lock.json","line":null,"fingerprint":"lodash-es@4.17.21 (npm):GHSA-r5fr-rjxr-66jc"},{"rule_id":"osv/GHSA-29qv-4j9f-fjw5","severity":"high","message":"mathjs@13.2.3 (npm) is affected by GHSA-29qv-4j9f-fjw5","path":"package-lock.json","line":null,"fingerprint":"mathjs@13.2.3 (npm):GHSA-29qv-4j9f-fjw5"},{"rule_id":"osv/GHSA-jvff-x2qm-6286","severity":"high","message":"mathjs@13.2.3 (npm) is affected by GHSA-jvff-x2qm-6286","path":"package-lock.json","line":null,"fingerprint":"mathjs@13.2.3 (npm):GHSA-jvff-x2qm-6286"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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.3 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"package-lock.json","line":null,"fingerprint":"minimatch@9.0.3 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@9.0.3 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"package-lock.json","line":null,"fingerprint":"minimatch@9.0.3 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@9.0.3 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"package-lock.json","line":null,"fingerprint":"minimatch@9.0.3 (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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-xwg4-73v4-xw9w"},{"rule_id":"osv/GHSA-36qx-fr4f-26g5","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-36qx-fr4f-26g5","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-36qx-fr4f-26g5"},{"rule_id":"osv/GHSA-5j59-xgg2-r9c4","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-5j59-xgg2-r9c4","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-5j59-xgg2-r9c4"},{"rule_id":"osv/GHSA-7gfc-8cq8-jh5f","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-7gfc-8cq8-jh5f","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-7gfc-8cq8-jh5f"},{"rule_id":"osv/GHSA-8h8q-6873-q5fj","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-8h8q-6873-q5fj","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-8h8q-6873-q5fj"},{"rule_id":"osv/GHSA-c4j6-fc7j-m34r","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-c4j6-fc7j-m34r","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-c4j6-fc7j-m34r"},{"rule_id":"osv/GHSA-fr5h-rqp8-mj6g","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-fr5h-rqp8-mj6g","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-fr5h-rqp8-mj6g"},{"rule_id":"osv/GHSA-gp8f-8m3g-qvj9","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-gp8f-8m3g-qvj9","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-gp8f-8m3g-qvj9"},{"rule_id":"osv/GHSA-h25m-26qc-wcjf","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-h25m-26qc-wcjf","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-h25m-26qc-wcjf"},{"rule_id":"osv/GHSA-m99w-x7hq-7vfj","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-m99w-x7hq-7vfj","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-m99w-x7hq-7vfj"},{"rule_id":"osv/GHSA-mwv6-3258-q52c","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-mwv6-3258-q52c","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-mwv6-3258-q52c"},{"rule_id":"osv/GHSA-p3m5-59mp-jv5r","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-p3m5-59mp-jv5r","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-p3m5-59mp-jv5r"},{"rule_id":"osv/GHSA-p9j2-gv94-2wf4","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-p9j2-gv94-2wf4","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-p9j2-gv94-2wf4"},{"rule_id":"osv/GHSA-q4gf-8mx6-v5v3","severity":"high","message":"next@13.5.3 (npm) is affected by GHSA-q4gf-8mx6-v5v3","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (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":"package-lock.json","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.2 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"package-lock.json","line":null,"fingerprint":"picomatch@4.0.2 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.4.14 (npm) is affected by GHSA-6g55-p6wh-862q","path":"package-lock.json","line":null,"fingerprint":"postcss@8.4.14 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.4.14 (npm) is affected by GHSA-r28c-9q8g-f849","path":"package-lock.json","line":null,"fingerprint":"postcss@8.4.14 (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":"package-lock.json","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":"package-lock.json","line":null,"fingerprint":"postcss@8.5.3 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-5c6j-r48x-rmvq","severity":"high","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-5c6j-r48x-rmvq","path":"package-lock.json","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-5c6j-r48x-rmvq"},{"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":"package-lock.json","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-mrhx-c7xc-m3w5","severity":"high","message":"zod@3.21.4 (npm) is affected by GHSA-mrhx-c7xc-m3w5","path":"package-lock.json","line":null,"fingerprint":"zod@3.21.4 (npm):GHSA-mrhx-c7xc-m3w5"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@6.12.6 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"package-lock.json","line":null,"fingerprint":"ajv@6.12.6 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@8.17.1 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"package-lock.json","line":null,"fingerprint":"ajv@8.17.1 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-378v-28hj-76wf","severity":"medium","message":"bn.js@4.12.2 (npm) is affected by GHSA-378v-28hj-76wf","path":"package-lock.json","line":null,"fingerprint":"bn.js@4.12.2 (npm):GHSA-378v-28hj-76wf"},{"rule_id":"osv/GHSA-378v-28hj-76wf","severity":"medium","message":"bn.js@5.2.2 (npm) is affected by GHSA-378v-28hj-76wf","path":"package-lock.json","line":null,"fingerprint":"bn.js@5.2.2 (npm):GHSA-378v-28hj-76wf"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (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":"package-lock.json","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":"package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-h39j-r5qq-r9mm","severity":"medium","message":"decompress@4.2.1 (npm) is affected by GHSA-h39j-r5qq-r9mm","path":"package-lock.json","line":null,"fingerprint":"decompress@4.2.1 (npm):GHSA-h39j-r5qq-r9mm"},{"rule_id":"osv/GHSA-jwp9-9v96-94mx","severity":"medium","message":"decompress@4.2.1 (npm) is affected by GHSA-jwp9-9v96-94mx","path":"package-lock.json","line":null,"fingerprint":"decompress@4.2.1 (npm):GHSA-jwp9-9v96-94mx"},{"rule_id":"osv/GHSA-848j-6mx2-7j84","severity":"medium","message":"elliptic@6.6.1 (npm) is affected by GHSA-848j-6mx2-7j84","path":"package-lock.json","line":null,"fingerprint":"elliptic@6.6.1 (npm):GHSA-848j-6mx2-7j84"},{"rule_id":"osv/GHSA-hrr3-gc8f-f4qj","severity":"medium","message":"fast-uri@3.0.6 (npm) is affected by GHSA-hrr3-gc8f-f4qj","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-hrr3-gc8f-f4qj"},{"rule_id":"osv/GHSA-w74x-v6f9-j3xg","severity":"medium","message":"fast-uri@3.0.6 (npm) is affected by GHSA-w74x-v6f9-j3xg","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-w74x-v6f9-j3xg"},{"rule_id":"osv/GHSA-3g3m-2fjr-6pw4","severity":"medium","message":"glob@10.4.5 (npm) is affected by GHSA-3g3m-2fjr-6pw4","path":"package-lock.json","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.0 (npm) is affected by GHSA-h67p-54hq-rp68","path":"package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-mh29-5h37-fv8m","severity":"medium","message":"js-yaml@4.1.0 (npm) is affected by GHSA-mh29-5h37-fv8m","path":"package-lock.json","line":null,"fingerprint":"js-yaml@4.1.0 (npm):GHSA-mh29-5h37-fv8m"},{"rule_id":"osv/GHSA-xxjr-mmjv-4gpg","severity":"medium","message":"lodash-es@4.17.21 (npm) is affected by GHSA-xxjr-mmjv-4gpg","path":"package-lock.json","line":null,"fingerprint":"lodash-es@4.17.21 (npm):GHSA-xxjr-mmjv-4gpg"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.3 (npm) is affected by GHSA-g3hv-75wg-m249","path":"package-lock.json","line":null,"fingerprint":"minimatch@9.0.3 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.5 (npm) is affected by GHSA-g3hv-75wg-m249","path":"package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-3x4c-7xq6-9pq8","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-3x4c-7xq6-9pq8","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-3x4c-7xq6-9pq8"},{"rule_id":"osv/GHSA-4342-x723-ch2f","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-4342-x723-ch2f","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-4342-x723-ch2f"},{"rule_id":"osv/GHSA-4633-3j49-mh5q","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-4633-3j49-mh5q","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-4633-3j49-mh5q"},{"rule_id":"osv/GHSA-4c39-4ccg-62r3","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-4c39-4ccg-62r3","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-4c39-4ccg-62r3"},{"rule_id":"osv/GHSA-68g3-v927-f742","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-68g3-v927-f742","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-68g3-v927-f742"},{"rule_id":"osv/GHSA-7m27-7ghc-44w9","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-7m27-7ghc-44w9","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-7m27-7ghc-44w9"},{"rule_id":"osv/GHSA-955p-x3mx-jcvp","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-955p-x3mx-jcvp","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-955p-x3mx-jcvp"},{"rule_id":"osv/GHSA-9g9p-9gw9-jx7f","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-9g9p-9gw9-jx7f","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-9g9p-9gw9-jx7f"},{"rule_id":"osv/GHSA-ffhc-5mcf-pf4q","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-ffhc-5mcf-pf4q","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-ffhc-5mcf-pf4q"},{"rule_id":"osv/GHSA-g5qg-72qw-gw5v","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-g5qg-72qw-gw5v","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-g5qg-72qw-gw5v"},{"rule_id":"osv/GHSA-g77x-44xx-532m","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-g77x-44xx-532m","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-g77x-44xx-532m"},{"rule_id":"osv/GHSA-ggv3-7p47-pfv8","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-ggv3-7p47-pfv8","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-ggv3-7p47-pfv8"},{"rule_id":"osv/GHSA-gx5p-jg67-6x7h","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-gx5p-jg67-6x7h","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-gx5p-jg67-6x7h"},{"rule_id":"osv/GHSA-h64f-5h5j-jqjh","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-h64f-5h5j-jqjh","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-h64f-5h5j-jqjh"},{"rule_id":"osv/GHSA-xv57-4mr9-wg8v","severity":"medium","message":"next@13.5.3 (npm) is affected by GHSA-xv57-4mr9-wg8v","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-xv57-4mr9-wg8v"},{"rule_id":"osv/GHSA-477h-4r7f-fvrx","severity":"medium","message":"pbkdf2@3.1.2 (npm) is affected by GHSA-477h-4r7f-fvrx","path":"package-lock.json","line":null,"fingerprint":"pbkdf2@3.1.2 (npm):GHSA-477h-4r7f-fvrx"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@2.3.1 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"package-lock.json","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.2 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"package-lock.json","line":null,"fingerprint":"picomatch@4.0.2 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-7fh5-64p2-3v2j","severity":"medium","message":"postcss@8.4.14 (npm) is affected by GHSA-7fh5-64p2-3v2j","path":"package-lock.json","line":null,"fingerprint":"postcss@8.4.14 (npm):GHSA-7fh5-64p2-3v2j"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.4.14 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"package-lock.json","line":null,"fingerprint":"postcss@8.4.14 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.4.14 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"package-lock.json","line":null,"fingerprint":"postcss@8.4.14 (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":"package-lock.json","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":"package-lock.json","line":null,"fingerprint":"postcss@8.5.3 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-rj75-hqrm-r3gf","severity":"medium","message":"postcss-selector-parser@6.1.2 (npm) is affected by GHSA-rj75-hqrm-r3gf","path":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","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":"package-lock.json","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-q8mj-m7cp-5q26"},{"rule_id":"osv/GHSA-qj8w-gfj5-8c6v","severity":"medium","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-qj8w-gfj5-8c6v","path":"package-lock.json","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-qj8w-gfj5-8c6v"},{"rule_id":"osv/GHSA-48c2-rrv3-qjmp","severity":"medium","message":"yaml@2.8.0 (npm) is affected by GHSA-48c2-rrv3-qjmp","path":"package-lock.json","line":null,"fingerprint":"yaml@2.8.0 (npm):GHSA-48c2-rrv3-qjmp"},{"rule_id":"osv/GHSA-m95q-7qp3-xv42","severity":"medium","message":"zod@3.21.4 (npm) is affected by GHSA-m95q-7qp3-xv42","path":"package-lock.json","line":null,"fingerprint":"zod@3.21.4 (npm):GHSA-m95q-7qp3-xv42"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.27.1 (npm) is affected by GHSA-4x5r-pxfx-6jf8","path":"package-lock.json","line":null,"fingerprint":"@babel/core@7.27.1 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-v6h2-p8h4-qcjw","severity":"low","message":"brace-expansion@1.1.11 (npm) is affected by GHSA-v6h2-p8h4-qcjw","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.11 (npm):GHSA-v6h2-p8h4-qcjw"},{"rule_id":"osv/GHSA-v6h2-p8h4-qcjw","severity":"low","message":"brace-expansion@2.0.1 (npm) is affected by GHSA-v6h2-p8h4-qcjw","path":"package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.1 (npm):GHSA-v6h2-p8h4-qcjw"},{"rule_id":"osv/GHSA-333x-w4r6-6crp","severity":"low","message":"fast-uri@3.0.6 (npm) is affected by GHSA-333x-w4r6-6crp","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-333x-w4r6-6crp"},{"rule_id":"osv/GHSA-xhq7-xmqj-769h","severity":"low","message":"fast-uri@3.0.6 (npm) is affected by GHSA-xhq7-xmqj-769h","path":"package-lock.json","line":null,"fingerprint":"fast-uri@3.0.6 (npm):GHSA-xhq7-xmqj-769h"},{"rule_id":"osv/GHSA-3g8h-86w9-wvmq","severity":"low","message":"next@13.5.3 (npm) is affected by GHSA-3g8h-86w9-wvmq","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-3g8h-86w9-wvmq"},{"rule_id":"osv/GHSA-3h52-269p-cp9r","severity":"low","message":"next@13.5.3 (npm) is affected by GHSA-3h52-269p-cp9r","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-3h52-269p-cp9r"},{"rule_id":"osv/GHSA-qpjv-v59x-3qc4","severity":"low","message":"next@13.5.3 (npm) is affected by GHSA-qpjv-v59x-3qc4","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (npm):GHSA-qpjv-v59x-3qc4"},{"rule_id":"osv/GHSA-vfv6-92ff-j949","severity":"low","message":"next@13.5.3 (npm) is affected by GHSA-vfv6-92ff-j949","path":"package-lock.json","line":null,"fingerprint":"next@13.5.3 (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":"package-lock.json","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-w7fw-mjwx-w883"},{"rule_id":"osv/GHSA-m5mm-p8h7-m29v","severity":"low","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-m5mm-p8h7-m29v","path":"package-lock.json","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-m5mm-p8h7-m29v"},{"rule_id":"osv/GHSA-38r7-794h-5758","severity":"low","message":"webpack@5.99.9 (npm) is affected by GHSA-38r7-794h-5758","path":"package-lock.json","line":null,"fingerprint":"webpack@5.99.9 (npm):GHSA-38r7-794h-5758"},{"rule_id":"osv/GHSA-8fgc-7cc6-rx7x","severity":"low","message":"webpack@5.99.9 (npm) is affected by GHSA-8fgc-7cc6-rx7x","path":"package-lock.json","line":null,"fingerprint":"webpack@5.99.9 (npm):GHSA-8fgc-7cc6-rx7x"}],"evidence":[],"data":{"ecosystems":["npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":1.0,"findings":3.0,"findings_high":2.0,"findings_medium":1.0,"findings_low":0.0,"penalty":25.2},"findings":[{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":20,"fingerprint":"unpinned-uses:.github/workflows/main.yml:20"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/main.yml","line":23,"fingerprint":"unpinned-uses:.github/workflows/main.yml:23"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/main.yml","line":19,"fingerprint":"artipacked:.github/workflows/main.yml:19"}],"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":114.0,"function_nloc":1685.0,"mean_ccn":2.45,"p90_ccn":5.0,"complex_functions":1.0,"long_functions":2.0,"many_param_functions":0.0,"risky_nloc_share":0.1905},"findings":[],"evidence":[{"kind":"complex-function","description":"DatabaseExplorer in src/components/DatabaseExplorer.tsx: complexity 17, 208 lines","ref":"src/components/DatabaseExplorer.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/components/DatabaseExplorer.tsx#L47","weight":0.2833333333333333},{"kind":"complex-function","description":"DatabaseList in src/components/DatabaseList.tsx: complexity 9, 113 lines","ref":"src/components/DatabaseList.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/components/DatabaseList.tsx#L36","weight":0.15}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":1864.0,"duplicated_lines":310.0,"duplicated_share":0.1663,"files":27.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: src/app/api/azion/databases/[id]/query/route.ts:4 and src/app/api/databases/[id]/query/route.ts:3","ref":"src/app/api/azion/databases/[id]/query/route.ts","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/app/api/azion/databases/[id]/query/route.ts#L4","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/app/api/azion/databases/[id]/query/route.ts:7 and src/app/api/azion/databases/[id]/query/route.ts:64","ref":"src/app/api/azion/databases/[id]/query/route.ts","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/app/api/azion/databases/[id]/query/route.ts#L7","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/app/api/azion/databases/[id]/route.ts:4 and src/app/api/azion/databases/[id]/tables/route.ts:4","ref":"src/app/api/azion/databases/[id]/route.ts","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/app/api/azion/databases/[id]/route.ts#L4","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/app/api/azion/databases/[id]/route.ts:11 and src/app/api/azion/databases/[id]/route.ts:63","ref":"src/app/api/azion/databases/[id]/route.ts","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/app/api/azion/databases/[id]/route.ts#L11","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/app/page.tsx:11 and src/components/DatabaseExplorer.tsx:22","ref":"src/app/page.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/app/page.tsx#L11","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/components/DatabaseExplorer.tsx:1 and src/components/DatabaseList.tsx:1","ref":"src/components/DatabaseExplorer.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/components/DatabaseExplorer.tsx#L1","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/components/DatabaseExplorer.tsx:464 and src/components/DatabaseExplorer.tsx:609","ref":"src/components/DatabaseExplorer.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/components/DatabaseExplorer.tsx#L464","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/components/TokenSetup.tsx:27 and src/components/login-form.tsx:20","ref":"src/components/TokenSetup.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/components/TokenSetup.tsx#L27","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/components/login-form.tsx:67 and src/lib/crypto-utils.ts:68","ref":"src/components/login-form.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/components/login-form.tsx#L67","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/components/ui/alert-dialog.tsx:61 and src/components/ui/dialog.tsx:71","ref":"src/components/ui/alert-dialog.tsx","url":"https://github.com/jotanarciso/azion-sql-dashboard-function/blob/13c6bffddc48cdbc46c91af3fe63282db303098a/src/components/ui/alert-dialog.tsx#L61","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":33.0,"weighted_findings":33.0,"scanned_lines":2678.0,"category:best-practice":32.0,"category:correctness":1.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":"src/components/DatabaseExplorer.tsx","line":117,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/components/DatabaseExplorer.tsx:117"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-alert","severity":"medium","message":"found alert() call; should this be in production code?","path":"src/components/DatabaseList.tsx","line":208,"fingerprint":"javascript.lang.best-practice.javascript-alert:src/components/DatabaseList.tsx:208"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/alert-dialog.tsx","line":22,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-dialog.tsx:22"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/alert-dialog.tsx","line":40,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-dialog.tsx:40"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/alert-dialog.tsx","line":55,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-dialog.tsx:55"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/alert-dialog.tsx","line":69,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-dialog.tsx:69"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/alert-dialog.tsx","line":81,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-dialog.tsx:81"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/alert-dialog.tsx","line":93,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-dialog.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":"src/components/ui/alert-dialog.tsx","line":106,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-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":"src/components/ui/alert-dialog.tsx","line":122,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/alert-dialog.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":"src/components/ui/button.tsx","line":49,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/card.tsx","line":15,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/card.tsx","line":27,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/card.tsx","line":42,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/card.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/card.tsx","line":63,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/card.tsx","line":74,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/dialog.tsx","line":27,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/dialog.tsx","line":44,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/dialog.tsx","line":65,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/dialog.tsx","line":79,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/dialog.tsx","line":94,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/dialog.tsx","line":106,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/input.tsx","line":18,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/input.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":"src/components/ui/label.tsx","line":21,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/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":"src/components/ui/table.tsx","line":13,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.tsx:13"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/table.tsx","line":23,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.tsx:23"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/table.tsx","line":34,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.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":"src/components/ui/table.tsx","line":49,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.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":"src/components/ui/table.tsx","line":64,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.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":"src/components/ui/table.tsx","line":79,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.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":"src/components/ui/table.tsx","line":91,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.tsx:91"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"src/components/ui/table.tsx","line":103,"fingerprint":"typescript.react.best-practice.react-props-spreading:src/components/ui/table.tsx:103"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":0.0,"check:test_ratio":0.0,"check:ci_present":1.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0,"test_lines":0.0,"source_lines":2678.0,"test_ratio":0.0,"ci_files":1.0,"cochange_share":0.0,"cochange_commits":2.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/main.yml","ref":".github/workflows/main.yml","url":null,"weight":0.0}],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":55.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":12.0,"escapes_per_kloc":4.51},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: tsconfig.json","ref":"tsconfig.json","url":null,"weight":0.0}],"data":{},"error":null}],"flags":[]}