{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:05.062193Z","repo":{"ref":{"host":"github.com","owner":"hibukki","name":"whatsapp_history3"},"default_branch":"main","clone_url":"https://github.com/hibukki/whatsapp_history3.git","html_url":"https://github.com/hibukki/whatsapp_history3","description":null,"stars":1,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":224,"primary_language":"TypeScript","license_spdx":null,"created_at":"2025-04-28T21:31:17Z","pushed_at":"2025-06-02T12:22:45Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-03-08T18:07:25Z","owner_type":"User","release_assets":[]}},"commit_sha":"70c5107da723fef66899da2cb8853eb60a52cc4c","profile":{"lines_by_language":{"TypeScript":2038,"Python":179,"JavaScript":28},"files_by_category":{"source":17,"config":9,"other":8,"docs":3,"binary":1,"generated":1,"test":1},"source_lines":2220,"test_lines":25},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.49,"coverage":1.0,"label":"possible","breakdown":{"attributed_share":0.0,"suspected_share":0.3006,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":1.0,"flagged_releases":null,"style_index":3.604},"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":57.6,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":47.7,"duplication":86.8,"lint":100.0,"testing":22.1,"docs":40.0,"type_safety":95.1,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.01, no CI test run detected; 25% of function code in complex or long functions; 2% duplicated lines. Weakest area: testing."},"security":{"score":46.9,"confidence":0.85,"coverage":1.0,"label":"poor","breakdown":{"secrets":65.9,"sast":93.3,"dependencies":0.2,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is poor: 1 possible secret(s) in the tree, 0 only in history; 192 known vulnerabilities in 49 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":73.0,"checked":73.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":36.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":3959.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2025-04":{"loc":3028,"attributed_loc":0},"2025-06":{"loc":931,"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":9.0,"flagged_units":1.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":3959.0,"flagged_loc":1190.0,"flagged_loc_share":0.30058095478656227,"max_loc_per_hour":602.5316455696202,"median_loc_per_hour":164.8445407186902,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"1,190 lines of first-party code in ~2.0h (603 lines/hour, 9 commit session)","ref":"358a79cb4208298b479aa4cf3500c6cafd01e14a","url":"https://github.com/hibukki/whatsapp_history3/commit/358a79cb4208298b479aa4cf3500c6cafd01e14a","weight":0.18075949367088606}],"data":{"flagged_loc_by_commit":{"51953402ac422c8f03d41b84809d29eda8e87941":186,"54d8a8ec4760c59756d550670fcf07930b0c3980":88,"ff79e9b42090c574928de280f9a248a10c2e0ab6":141,"d20cd4828f00a0649120289e4946f7ed8abcdbba":36,"644c98e821441b2c54e8a688a33df7df053c7b31":57,"0a596700ebca9e653ad7779a919e84a76591e91c":75,"18c599a9e4551fc5f9eb95d50584528ee63eff30":442,"da8df9f1c85e287b3bfc0fe765b85d72d4abe481":57,"358a79cb4208298b479aa4cf3500c6cafd01e14a":108},"excluded_import_commits":[]},"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":2220.0,"index":3.604,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":1.0,"per_kloc:placeholder":0.45,"files:placeholder":1.0,"count:emoji_in_code":12.0,"per_kloc:emoji_in_code":5.405,"files:emoji_in_code":2.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:placeholder","description":"placeholder or demo-only phrasing: // TODO: Replace with your actual Firebase project configuration","ref":"src/firebaseConfig.ts:6","url":"https://github.com/hibukki/whatsapp_history3/blob/70c5107da723fef66899da2cb8853eb60a52cc4c/src/firebaseConfig.ts#L6","weight":0.0}],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":1.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[{"rule_id":"gitleaks/gcp-api-key","severity":"high","message":"Possible gcp-api-key secret in the current tree","path":"src/firebaseConfig.ts","line":8,"fingerprint":"src/firebaseConfig.ts:gcp-api-key:8"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":7.0,"findings_high":0.0,"findings_medium":0.0,"findings_low":7.0,"weighted_findings":0.438,"scanned_lines":2220.0,"parse_errors":0.0},"findings":[{"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":"src/App.tsx","line":249,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/App.tsx:249"},{"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":"src/App.tsx","line":376,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/App.tsx:376"},{"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":"src/App.tsx","line":714,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/App.tsx:714"},{"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":"src/components/AttachmentPreview.tsx","line":78,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/components/AttachmentPreview.tsx:78"},{"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":"src/localStorageUtils.ts","line":120,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/localStorageUtils.ts:120"},{"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":"src/localStorageUtils.ts","line":191,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/localStorageUtils.ts:191"},{"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":"src/localStorageUtils.ts","line":248,"fingerprint":"javascript.lang.security.audit.unsafe-formatstring:src/localStorageUtils.ts:248"}],"evidence":[],"data":{"rulesets":["typescript","javascript","python"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":49.0,"vulnerabilities":192.0,"vulns_critical":9.0,"vulns_high":94.0,"vulns_medium":73.0,"vulns_low":16.0,"vulns_unknown":0.0,"penalty":382.0},"findings":[{"rule_id":"osv/GHSA-ffc3-869f-jxw9","severity":"critical","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4145, GHSA-ffc3-869f-jxw9","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-ffc3-869f-jxw9"},{"rule_id":"osv/GHSA-6q48-6c7w-9gw2","severity":"critical","message":"certifi@2025.4.26 (PyPI) is affected by PYSEC-2026-4320, GHSA-6q48-6c7w-9gw2","path":"functions/requirements.txt","line":null,"fingerprint":"certifi@2025.4.26 (PyPI):GHSA-6q48-6c7w-9gw2"},{"rule_id":"osv/GHSA-m7jm-9gc2-mpf2","severity":"critical","message":"fast-xml-parser@4.5.3 (npm) is affected by GHSA-m7jm-9gc2-mpf2","path":"package-lock.json","line":null,"fingerprint":"fast-xml-parser@4.5.3 (npm):GHSA-m7jm-9gc2-mpf2"},{"rule_id":"osv/GHSA-fjxv-7rqg-78g4","severity":"critical","message":"form-data@2.5.3 (npm) is affected by GHSA-fjxv-7rqg-78g4","path":"package-lock.json","line":null,"fingerprint":"form-data@2.5.3 (npm):GHSA-fjxv-7rqg-78g4"},{"rule_id":"osv/GHSA-xq3m-2v4x-88gg","severity":"critical","message":"protobufjs@7.5.0 (npm) is affected by GHSA-xq3m-2v4x-88gg","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-xq3m-2v4x-88gg"},{"rule_id":"osv/GHSA-5gmw-xhrv-c9v3","severity":"critical","message":"tinypool@0.8.4 (npm) is affected by GHSA-5gmw-xhrv-c9v3","path":"package-lock.json","line":null,"fingerprint":"tinypool@0.8.4 (npm):GHSA-5gmw-xhrv-c9v3"},{"rule_id":"osv/GHSA-85c8-ppgw-ccpr","severity":"critical","message":"tinypool@0.8.4 (npm) is affected by GHSA-85c8-ppgw-ccpr","path":"package-lock.json","line":null,"fingerprint":"tinypool@0.8.4 (npm):GHSA-85c8-ppgw-ccpr"},{"rule_id":"osv/GHSA-5xrq-8626-4rwp","severity":"critical","message":"vitest@1.6.1 (npm) is affected by GHSA-5xrq-8626-4rwp","path":"package-lock.json","line":null,"fingerprint":"vitest@1.6.1 (npm):GHSA-5xrq-8626-4rwp"},{"rule_id":"osv/GHSA-xv26-6w52-cph6","severity":"critical","message":"websocket-driver@0.7.4 (npm) is affected by GHSA-xv26-6w52-cph6","path":"package-lock.json","line":null,"fingerprint":"websocket-driver@0.7.4 (npm):GHSA-xv26-6w52-cph6"},{"rule_id":"osv/PYSEC-2025-183","severity":"high","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2025-183","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):PYSEC-2025-183"},{"rule_id":"osv/GHSA-752w-5fwx-jx9f","severity":"high","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-120, GHSA-752w-5fwx-jx9f","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-752w-5fwx-jx9f"},{"rule_id":"osv/GHSA-xgmm-8j9v-c9wx","severity":"high","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-179, GHSA-xgmm-8j9v-c9wx","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-xgmm-8j9v-c9wx"},{"rule_id":"osv/GHSA-9v7f-9g4p-ffgj","severity":"high","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4144, GHSA-9v7f-9g4p-ffgj","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-9v7f-9g4p-ffgj"},{"rule_id":"osv/GHSA-p4g4-x82p-q773","severity":"high","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4149, GHSA-p4g4-x82p-q773","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-p4g4-x82p-q773"},{"rule_id":"osv/GHSA-x33g-cr3x-6449","severity":"high","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4183, GHSA-x33g-cr3x-6449","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-x33g-cr3x-6449"},{"rule_id":"osv/GHSA-pxh4-856f-4h89","severity":"high","message":"pyjwt@2.10.1 (PyPI) is affected by GHSA-pxh4-856f-4h89","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-pxh4-856f-4h89"},{"rule_id":"osv/GHSA-r6ph-v2qm-q3c2","severity":"high","message":"cryptography@44.0.2 (PyPI) is affected by PYSEC-2026-2141, GHSA-r6ph-v2qm-q3c2","path":"functions/requirements.txt","line":null,"fingerprint":"cryptography@44.0.2 (PyPI):GHSA-r6ph-v2qm-q3c2"},{"rule_id":"osv/GHSA-g6cj-pr64-35w5","severity":"high","message":"cryptography@44.0.2 (PyPI) is affected by PYSEC-2026-3552, GHSA-g6cj-pr64-35w5","path":"functions/requirements.txt","line":null,"fingerprint":"cryptography@44.0.2 (PyPI):GHSA-g6cj-pr64-35w5"},{"rule_id":"osv/GHSA-jwv3-5hgf-82ww","severity":"high","message":"cryptography@44.0.2 (PyPI) is affected by PYSEC-2026-3553, GHSA-jwv3-5hgf-82ww","path":"functions/requirements.txt","line":null,"fingerprint":"cryptography@44.0.2 (PyPI):GHSA-jwv3-5hgf-82ww"},{"rule_id":"osv/GHSA-537c-gmf6-5ccf","severity":"high","message":"cryptography@44.0.2 (PyPI) is affected by GHSA-537c-gmf6-5ccf","path":"functions/requirements.txt","line":null,"fingerprint":"cryptography@44.0.2 (PyPI):GHSA-537c-gmf6-5ccf"},{"rule_id":"osv/GHSA-j5g9-f88f-gfj3","severity":"high","message":"httplib2@0.22.0 (PyPI) is affected by PYSEC-2026-3444, GHSA-j5g9-f88f-gfj3","path":"functions/requirements.txt","line":null,"fingerprint":"httplib2@0.22.0 (PyPI):GHSA-j5g9-f88f-gfj3"},{"rule_id":"osv/GHSA-6v7p-g79w-8964","severity":"high","message":"msgpack@1.1.0 (PyPI) is affected by PYSEC-2026-3625, GHSA-6v7p-g79w-8964","path":"functions/requirements.txt","line":null,"fingerprint":"msgpack@1.1.0 (PyPI):GHSA-6v7p-g79w-8964"},{"rule_id":"osv/GHSA-j586-36cw-2gc2","severity":"high","message":"msgpack@1.1.0 (PyPI) is affected by GHSA-j586-36cw-2gc2","path":"functions/requirements.txt","line":null,"fingerprint":"msgpack@1.1.0 (PyPI):GHSA-j586-36cw-2gc2"},{"rule_id":"osv/GHSA-7gcm-g887-7qv7","severity":"high","message":"protobuf@5.29.4 (PyPI) is affected by PYSEC-2026-1805, GHSA-7gcm-g887-7qv7","path":"functions/requirements.txt","line":null,"fingerprint":"protobuf@5.29.4 (PyPI):GHSA-7gcm-g887-7qv7"},{"rule_id":"osv/GHSA-8qvm-5x2c-j2w7","severity":"high","message":"protobuf@5.29.4 (PyPI) is affected by PYSEC-2026-1806, GHSA-8qvm-5x2c-j2w7","path":"functions/requirements.txt","line":null,"fingerprint":"protobuf@5.29.4 (PyPI):GHSA-8qvm-5x2c-j2w7"},{"rule_id":"osv/GHSA-63vm-454h-vhhq","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by PYSEC-2026-1810, GHSA-63vm-454h-vhhq","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-63vm-454h-vhhq"},{"rule_id":"osv/GHSA-jr27-m4p2-rc6r","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by PYSEC-2026-2263, GHSA-jr27-m4p2-rc6r","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-jr27-m4p2-rc6r"},{"rule_id":"osv/GHSA-m4p7-r5rc-7g4j","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by PYSEC-2026-3455, GHSA-m4p7-r5rc-7g4j","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-m4p7-r5rc-7g4j"},{"rule_id":"osv/GHSA-8ppf-4f7h-5ppj","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by PYSEC-2026-3456, GHSA-8ppf-4f7h-5ppj","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-8ppf-4f7h-5ppj"},{"rule_id":"osv/GHSA-hm4w-wwcw-mr6r","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by PYSEC-2026-3457, GHSA-hm4w-wwcw-mr6r","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-hm4w-wwcw-mr6r"},{"rule_id":"osv/GHSA-2qm8-x737-gmw5","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by GHSA-2qm8-x737-gmw5","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-2qm8-x737-gmw5"},{"rule_id":"osv/GHSA-9m75-vc3g-4x39","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by GHSA-9m75-vc3g-4x39","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-9m75-vc3g-4x39"},{"rule_id":"osv/GHSA-fm9c-5rcf-2q5p","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by GHSA-fm9c-5rcf-2q5p","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-fm9c-5rcf-2q5p"},{"rule_id":"osv/GHSA-mm57-4v3p-rchx","severity":"high","message":"pyasn1@0.6.1 (PyPI) is affected by GHSA-mm57-4v3p-rchx","path":"functions/requirements.txt","line":null,"fingerprint":"pyasn1@0.6.1 (PyPI):GHSA-mm57-4v3p-rchx"},{"rule_id":"osv/GHSA-qccp-gfcp-xxvc","severity":"high","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-141, GHSA-qccp-gfcp-xxvc","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-qccp-gfcp-xxvc"},{"rule_id":"osv/GHSA-2xpw-w6gg-jr37","severity":"high","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-1994, GHSA-2xpw-w6gg-jr37","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-2xpw-w6gg-jr37"},{"rule_id":"osv/GHSA-38jv-5279-wg99","severity":"high","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-1996, GHSA-38jv-5279-wg99","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-38jv-5279-wg99"},{"rule_id":"osv/GHSA-gm62-xv2j-4w53","severity":"high","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-1998, GHSA-gm62-xv2j-4w53","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-gm62-xv2j-4w53"},{"rule_id":"osv/GHSA-8988-9cw3-xx77","severity":"high","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-4175, GHSA-8988-9cw3-xx77","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-8988-9cw3-xx77"},{"rule_id":"osv/GHSA-vxq7-64xx-v4gw","severity":"high","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-4177, GHSA-vxq7-64xx-v4gw","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-vxq7-64xx-v4gw"},{"rule_id":"osv/GHSA-5375-pq7m-f5r2","severity":"high","message":"@grpc/grpc-js@1.9.15 (npm) is affected by GHSA-5375-pq7m-f5r2","path":"package-lock.json","line":null,"fingerprint":"@grpc/grpc-js@1.9.15 (npm):GHSA-5375-pq7m-f5r2"},{"rule_id":"osv/GHSA-99f4-grh7-6pcq","severity":"high","message":"@grpc/grpc-js@1.9.15 (npm) is affected by GHSA-99f4-grh7-6pcq","path":"package-lock.json","line":null,"fingerprint":"@grpc/grpc-js@1.9.15 (npm):GHSA-99f4-grh7-6pcq"},{"rule_id":"osv/GHSA-m9gg-hp2v-232j","severity":"high","message":"@grpc/grpc-js@1.9.15 (npm) is affected by GHSA-m9gg-hp2v-232j","path":"package-lock.json","line":null,"fingerprint":"@grpc/grpc-js@1.9.15 (npm):GHSA-m9gg-hp2v-232j"},{"rule_id":"osv/GHSA-7q85-xj36-vmfc","severity":"high","message":"adm-zip@0.5.16 (npm) is affected by GHSA-7q85-xj36-vmfc","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-7q85-xj36-vmfc"},{"rule_id":"osv/GHSA-8238-w5pm-2374","severity":"high","message":"adm-zip@0.5.16 (npm) is affected by GHSA-8238-w5pm-2374","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-8238-w5pm-2374"},{"rule_id":"osv/GHSA-j5f4-cc29-5x44","severity":"high","message":"adm-zip@0.5.16 (npm) is affected by GHSA-j5f4-cc29-5x44","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-j5f4-cc29-5x44"},{"rule_id":"osv/GHSA-rcw4-f5rp-g42v","severity":"high","message":"adm-zip@0.5.16 (npm) is affected by GHSA-rcw4-f5rp-g42v","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-rcw4-f5rp-g42v"},{"rule_id":"osv/GHSA-xcpc-8h2w-3j85","severity":"high","message":"adm-zip@0.5.16 (npm) is affected by GHSA-xcpc-8h2w-3j85","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-xcpc-8h2w-3j85"},{"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.4 (npm) is affected by GHSA-73wf-gq98-2v4g","path":"package-lock.json","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":"package-lock.json","line":null,"fingerprint":"browserslist@4.24.4 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-8gc5-j5rx-235r","severity":"high","message":"fast-xml-parser@4.5.3 (npm) is affected by GHSA-8gc5-j5rx-235r","path":"package-lock.json","line":null,"fingerprint":"fast-xml-parser@4.5.3 (npm):GHSA-8gc5-j5rx-235r"},{"rule_id":"osv/GHSA-jmr7-xgp7-cmfj","severity":"high","message":"fast-xml-parser@4.5.3 (npm) is affected by GHSA-jmr7-xgp7-cmfj","path":"package-lock.json","line":null,"fingerprint":"fast-xml-parser@4.5.3 (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":"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-hmw2-7cc7-3qxx","severity":"high","message":"form-data@2.5.3 (npm) is affected by GHSA-hmw2-7cc7-3qxx","path":"package-lock.json","line":null,"fingerprint":"form-data@2.5.3 (npm):GHSA-hmw2-7cc7-3qxx"},{"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-869p-cjfg-cm3x","severity":"high","message":"jws@4.0.0 (npm) is affected by GHSA-869p-cjfg-cm3x","path":"package-lock.json","line":null,"fingerprint":"jws@4.0.0 (npm):GHSA-869p-cjfg-cm3x"},{"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.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-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.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-66ff-xgx4-vchm","severity":"high","message":"protobufjs@7.5.0 (npm) is affected by GHSA-66ff-xgx4-vchm","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-66ff-xgx4-vchm"},{"rule_id":"osv/GHSA-685m-2w69-288q","severity":"high","message":"protobufjs@7.5.0 (npm) is affected by GHSA-685m-2w69-288q","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-685m-2w69-288q"},{"rule_id":"osv/GHSA-75px-5xx7-5xc7","severity":"high","message":"protobufjs@7.5.0 (npm) is affected by GHSA-75px-5xx7-5xc7","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-75px-5xx7-5xc7"},{"rule_id":"osv/GHSA-jvwf-75h9-cwgg","severity":"high","message":"protobufjs@7.5.0 (npm) is affected by GHSA-jvwf-75h9-cwgg","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-jvwf-75h9-cwgg"},{"rule_id":"osv/GHSA-wcpc-wj8m-hjx6","severity":"high","message":"protobufjs@7.5.0 (npm) is affected by GHSA-wcpc-wj8m-hjx6","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-wcpc-wj8m-hjx6"},{"rule_id":"osv/GHSA-2w69-qvjg-hvjx","severity":"high","message":"react-router@7.5.2 (npm) is affected by GHSA-2w69-qvjg-hvjx","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-2w69-qvjg-hvjx"},{"rule_id":"osv/GHSA-3cgp-3xvw-98x8","severity":"high","message":"react-router@7.5.2 (npm) is affected by GHSA-3cgp-3xvw-98x8","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-3cgp-3xvw-98x8"},{"rule_id":"osv/GHSA-49rj-9fvp-4h2h","severity":"high","message":"react-router@7.5.2 (npm) is affected by GHSA-49rj-9fvp-4h2h","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-49rj-9fvp-4h2h"},{"rule_id":"osv/GHSA-8v8x-cx79-35w7","severity":"high","message":"react-router@7.5.2 (npm) is affected by GHSA-8v8x-cx79-35w7","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-8v8x-cx79-35w7"},{"rule_id":"osv/GHSA-8x6r-g9mw-2r78","severity":"high","message":"react-router@7.5.2 (npm) is affected by GHSA-8x6r-g9mw-2r78","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-8x6r-g9mw-2r78"},{"rule_id":"osv/GHSA-chx6-hx7r-mcp5","severity":"high","message":"react-router@7.5.2 (npm) is affected by GHSA-chx6-hx7r-mcp5","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-chx6-hx7r-mcp5"},{"rule_id":"osv/GHSA-rxv8-25v2-qmq8","severity":"high","message":"react-router@7.5.2 (npm) is affected by GHSA-rxv8-25v2-qmq8","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-rxv8-25v2-qmq8"},{"rule_id":"osv/GHSA-mw96-cpmx-2vgc","severity":"high","message":"rollup@4.40.0 (npm) is affected by GHSA-mw96-cpmx-2vgc","path":"package-lock.json","line":null,"fingerprint":"rollup@4.40.0 (npm):GHSA-mw96-cpmx-2vgc"},{"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-rxv8-25v2-qmq8","severity":"high","message":"turbo-stream@2.4.0 (npm) is affected by GHSA-rxv8-25v2-qmq8","path":"package-lock.json","line":null,"fingerprint":"turbo-stream@2.4.0 (npm):GHSA-rxv8-25v2-qmq8"},{"rule_id":"osv/GHSA-w5hq-g745-h8pq","severity":"high","message":"uuid@8.3.2 (npm) is affected by GHSA-w5hq-g745-h8pq","path":"package-lock.json","line":null,"fingerprint":"uuid@8.3.2 (npm):GHSA-w5hq-g745-h8pq"},{"rule_id":"osv/GHSA-w5hq-g745-h8pq","severity":"high","message":"uuid@9.0.1 (npm) is affected by GHSA-w5hq-g745-h8pq","path":"package-lock.json","line":null,"fingerprint":"uuid@9.0.1 (npm):GHSA-w5hq-g745-h8pq"},{"rule_id":"osv/GHSA-587h-7wmj-h5pm","severity":"high","message":"vite@5.4.18 (npm) is affected by GHSA-587h-7wmj-h5pm","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-587h-7wmj-h5pm","severity":"high","message":"vite@6.3.3 (npm) is affected by GHSA-587h-7wmj-h5pm","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-p9ff-h696-f583","severity":"high","message":"vite@6.3.3 (npm) is affected by GHSA-p9ff-h696-f583","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-p9ff-h696-f583"},{"rule_id":"osv/GHSA-96hv-2xvq-fx4p","severity":"high","message":"ws@8.18.1 (npm) is affected by GHSA-96hv-2xvq-fx4p","path":"package-lock.json","line":null,"fingerprint":"ws@8.18.1 (npm):GHSA-96hv-2xvq-fx4p"},{"rule_id":"osv/GHSA-68rp-wp8r-4726","severity":"medium","message":"flask@3.1.0 (PyPI) is affected by PYSEC-2026-2151, GHSA-68rp-wp8r-4726","path":"functions/requirements.txt","line":null,"fingerprint":"flask@3.1.0 (PyPI):GHSA-68rp-wp8r-4726"},{"rule_id":"osv/GHSA-993g-76c3-p5m4","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-175, GHSA-993g-76c3-p5m4","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-993g-76c3-p5m4"},{"rule_id":"osv/GHSA-jq35-7prp-9v3f","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-176, GHSA-jq35-7prp-9v3f","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-jq35-7prp-9v3f"},{"rule_id":"osv/GHSA-w7vc-732c-9m39","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-178, GHSA-w7vc-732c-9m39","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-w7vc-732c-9m39"},{"rule_id":"osv/GHSA-2gx3-rcp4-g85q","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4140, GHSA-2gx3-rcp4-g85q","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-2gx3-rcp4-g85q"},{"rule_id":"osv/GHSA-42vr-xj54-vc7v","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4141, GHSA-42vr-xj54-vc7v","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-42vr-xj54-vc7v"},{"rule_id":"osv/GHSA-hxm8-2xgr-2p9m","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4147, GHSA-hxm8-2xgr-2p9m","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-hxm8-2xgr-2p9m"},{"rule_id":"osv/GHSA-jwrc-g2q2-pq5p","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4148, GHSA-jwrc-g2q2-pq5p","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-jwrc-g2q2-pq5p"},{"rule_id":"osv/GHSA-w6j9-cwv2-h6wq","severity":"medium","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-4152, GHSA-w6j9-cwv2-h6wq","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-w6j9-cwv2-h6wq"},{"rule_id":"osv/GHSA-87hc-h4r5-73f7","severity":"medium","message":"werkzeug@3.1.3 (PyPI) is affected by PYSEC-2026-2044, GHSA-87hc-h4r5-73f7","path":"functions/requirements.txt","line":null,"fingerprint":"werkzeug@3.1.3 (PyPI):GHSA-87hc-h4r5-73f7"},{"rule_id":"osv/GHSA-hgf8-39gv-g3f2","severity":"medium","message":"werkzeug@3.1.3 (PyPI) is affected by PYSEC-2026-2046, GHSA-hgf8-39gv-g3f2","path":"functions/requirements.txt","line":null,"fingerprint":"werkzeug@3.1.3 (PyPI):GHSA-hgf8-39gv-g3f2"},{"rule_id":"osv/GHSA-29vq-49wr-vm6x","severity":"medium","message":"werkzeug@3.1.3 (PyPI) is affected by PYSEC-2026-2320, GHSA-29vq-49wr-vm6x","path":"functions/requirements.txt","line":null,"fingerprint":"werkzeug@3.1.3 (PyPI):GHSA-29vq-49wr-vm6x"},{"rule_id":"osv/GHSA-g6x2-hccm-hh4m","severity":"medium","message":"werkzeug@3.1.3 (PyPI) is affected by PYSEC-2026-4312, GHSA-g6x2-hccm-hh4m","path":"functions/requirements.txt","line":null,"fingerprint":"werkzeug@3.1.3 (PyPI):GHSA-g6x2-hccm-hh4m"},{"rule_id":"osv/GHSA-m959-cc7f-wv43","severity":"medium","message":"cryptography@44.0.2 (PyPI) is affected by PYSEC-2026-35, GHSA-m959-cc7f-wv43","path":"functions/requirements.txt","line":null,"fingerprint":"cryptography@44.0.2 (PyPI):GHSA-m959-cc7f-wv43"},{"rule_id":"osv/PYSEC-2026-3554","severity":"medium","message":"cryptography@44.0.2 (PyPI) is affected by PYSEC-2026-3554","path":"functions/requirements.txt","line":null,"fingerprint":"cryptography@44.0.2 (PyPI):PYSEC-2026-3554"},{"rule_id":"osv/GHSA-43qf-4rqw-9q2g","severity":"medium","message":"flask-cors@5.0.1 (PyPI) is affected by PYSEC-2026-1383, GHSA-43qf-4rqw-9q2g","path":"functions/requirements.txt","line":null,"fingerprint":"flask-cors@5.0.1 (PyPI):GHSA-43qf-4rqw-9q2g"},{"rule_id":"osv/GHSA-7rxf-gvfg-47g4","severity":"medium","message":"flask-cors@5.0.1 (PyPI) is affected by PYSEC-2026-1384, GHSA-7rxf-gvfg-47g4","path":"functions/requirements.txt","line":null,"fingerprint":"flask-cors@5.0.1 (PyPI):GHSA-7rxf-gvfg-47g4"},{"rule_id":"osv/GHSA-8vgw-p6qm-5gr7","severity":"medium","message":"flask-cors@5.0.1 (PyPI) is affected by PYSEC-2026-1385, GHSA-8vgw-p6qm-5gr7","path":"functions/requirements.txt","line":null,"fingerprint":"flask-cors@5.0.1 (PyPI):GHSA-8vgw-p6qm-5gr7"},{"rule_id":"osv/GHSA-65pc-fj4g-8rjx","severity":"medium","message":"idna@3.10 (PyPI) is affected by PYSEC-2026-215, GHSA-65pc-fj4g-8rjx","path":"functions/requirements.txt","line":null,"fingerprint":"idna@3.10 (PyPI):GHSA-65pc-fj4g-8rjx"},{"rule_id":"osv/GHSA-9hjg-9r4m-mvj7","severity":"medium","message":"requests@2.32.3 (PyPI) is affected by PYSEC-2026-1872, GHSA-9hjg-9r4m-mvj7","path":"functions/requirements.txt","line":null,"fingerprint":"requests@2.32.3 (PyPI):GHSA-9hjg-9r4m-mvj7"},{"rule_id":"osv/GHSA-gc5v-m9x4-r6x2","severity":"medium","message":"requests@2.32.3 (PyPI) is affected by PYSEC-2026-2275, GHSA-gc5v-m9x4-r6x2","path":"functions/requirements.txt","line":null,"fingerprint":"requests@2.32.3 (PyPI):GHSA-gc5v-m9x4-r6x2"},{"rule_id":"osv/GHSA-48p4-8xcf-vxj5","severity":"medium","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-1997, GHSA-48p4-8xcf-vxj5","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-48p4-8xcf-vxj5"},{"rule_id":"osv/GHSA-pq67-6m6q-mj2v","severity":"medium","message":"urllib3@2.4.0 (PyPI) is affected by PYSEC-2026-1999, GHSA-pq67-6m6q-mj2v","path":"functions/requirements.txt","line":null,"fingerprint":"urllib3@2.4.0 (PyPI):GHSA-pq67-6m6q-mj2v"},{"rule_id":"osv/GHSA-p498-v437-472g","severity":"medium","message":"@humanfs/node@0.16.6 (npm) is affected by GHSA-p498-v437-472g","path":"package-lock.json","line":null,"fingerprint":"@humanfs/node@0.16.6 (npm):GHSA-p498-v437-472g"},{"rule_id":"osv/GHSA-q6x5-8v7m-xcrf","severity":"medium","message":"@protobufjs/utf8@1.1.0 (npm) is affected by GHSA-q6x5-8v7m-xcrf","path":"package-lock.json","line":null,"fingerprint":"@protobufjs/utf8@1.1.0 (npm):GHSA-q6x5-8v7m-xcrf"},{"rule_id":"osv/GHSA-c6fg-446q-cg94","severity":"medium","message":"adm-zip@0.5.16 (npm) is affected by GHSA-c6fg-446q-cg94","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-c6fg-446q-cg94"},{"rule_id":"osv/GHSA-p634-w6r4-rjp2","severity":"medium","message":"adm-zip@0.5.16 (npm) is affected by GHSA-p634-w6r4-rjp2","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-p634-w6r4-rjp2"},{"rule_id":"osv/GHSA-vwc7-r8mq-g2x9","severity":"medium","message":"adm-zip@0.5.16 (npm) is affected by GHSA-vwc7-r8mq-g2x9","path":"package-lock.json","line":null,"fingerprint":"adm-zip@0.5.16 (npm):GHSA-vwc7-r8mq-g2x9"},{"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-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-67mh-4wv8-2f99","severity":"medium","message":"esbuild@0.21.5 (npm) is affected by GHSA-67mh-4wv8-2f99","path":"package-lock.json","line":null,"fingerprint":"esbuild@0.21.5 (npm):GHSA-67mh-4wv8-2f99"},{"rule_id":"osv/GHSA-gh4j-gqv2-49f6","severity":"medium","message":"fast-xml-parser@4.5.3 (npm) is affected by GHSA-gh4j-gqv2-49f6","path":"package-lock.json","line":null,"fingerprint":"fast-xml-parser@4.5.3 (npm):GHSA-gh4j-gqv2-49f6"},{"rule_id":"osv/GHSA-jp2q-39xq-3w4g","severity":"medium","message":"fast-xml-parser@4.5.3 (npm) is affected by GHSA-jp2q-39xq-3w4g","path":"package-lock.json","line":null,"fingerprint":"fast-xml-parser@4.5.3 (npm):GHSA-jp2q-39xq-3w4g"},{"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-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-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-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-2pr8-phx7-x9h3","severity":"medium","message":"protobufjs@7.5.0 (npm) is affected by GHSA-2pr8-phx7-x9h3","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-2pr8-phx7-x9h3"},{"rule_id":"osv/GHSA-f38q-mgvj-vph7","severity":"medium","message":"protobufjs@7.5.0 (npm) is affected by GHSA-f38q-mgvj-vph7","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-f38q-mgvj-vph7"},{"rule_id":"osv/GHSA-fx83-v9x8-x52w","severity":"medium","message":"protobufjs@7.5.0 (npm) is affected by GHSA-fx83-v9x8-x52w","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-fx83-v9x8-x52w"},{"rule_id":"osv/GHSA-j3f2-48v5-ccww","severity":"medium","message":"protobufjs@7.5.0 (npm) is affected by GHSA-j3f2-48v5-ccww","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-j3f2-48v5-ccww"},{"rule_id":"osv/GHSA-jggg-4jg4-v7c6","severity":"medium","message":"protobufjs@7.5.0 (npm) is affected by GHSA-jggg-4jg4-v7c6","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-jggg-4jg4-v7c6"},{"rule_id":"osv/GHSA-q6x5-8v7m-xcrf","severity":"medium","message":"protobufjs@7.5.0 (npm) is affected by GHSA-q6x5-8v7m-xcrf","path":"package-lock.json","line":null,"fingerprint":"protobufjs@7.5.0 (npm):GHSA-q6x5-8v7m-xcrf"},{"rule_id":"osv/GHSA-2j2x-hqr9-3h42","severity":"medium","message":"react-router@7.5.2 (npm) is affected by GHSA-2j2x-hqr9-3h42","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-2j2x-hqr9-3h42"},{"rule_id":"osv/GHSA-337j-9hxr-rhxg","severity":"medium","message":"react-router@7.5.2 (npm) is affected by GHSA-337j-9hxr-rhxg","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-337j-9hxr-rhxg"},{"rule_id":"osv/GHSA-9jcx-v3wj-wh4m","severity":"medium","message":"react-router@7.5.2 (npm) is affected by GHSA-9jcx-v3wj-wh4m","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-9jcx-v3wj-wh4m"},{"rule_id":"osv/GHSA-f22v-gfqf-p8f3","severity":"medium","message":"react-router@7.5.2 (npm) is affected by GHSA-f22v-gfqf-p8f3","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-f22v-gfqf-p8f3"},{"rule_id":"osv/GHSA-h5cw-625j-3rxh","severity":"medium","message":"react-router@7.5.2 (npm) is affected by GHSA-h5cw-625j-3rxh","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-h5cw-625j-3rxh"},{"rule_id":"osv/GHSA-wrjc-x8rr-h8h6","severity":"medium","message":"react-router@7.5.2 (npm) is affected by GHSA-wrjc-x8rr-h8h6","path":"package-lock.json","line":null,"fingerprint":"react-router@7.5.2 (npm):GHSA-wrjc-x8rr-h8h6"},{"rule_id":"osv/GHSA-4w7w-66w2-5vf9","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-4w7w-66w2-5vf9","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-4w7w-66w2-5vf9"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-698v-4r3x-3vcv","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-859w-5945-r5v3","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-859w-5945-r5v3","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-859w-5945-r5v3"},{"rule_id":"osv/GHSA-93m4-6634-74q7","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-93m4-6634-74q7","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-93m4-6634-74q7"},{"rule_id":"osv/GHSA-fx2h-pf6j-xcff","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-fx2h-pf6j-xcff","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-fx2h-pf6j-xcff"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-r825-w8mm-5pxw","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-rq7h-c2jc-7f22","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-rq7h-c2jc-7f22","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-rq7h-c2jc-7f22"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"vite@5.4.18 (npm) is affected by GHSA-v6wh-96g9-6wx3","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-4w7w-66w2-5vf9","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-4w7w-66w2-5vf9","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-4w7w-66w2-5vf9"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-698v-4r3x-3vcv","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-859w-5945-r5v3","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-859w-5945-r5v3","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-859w-5945-r5v3"},{"rule_id":"osv/GHSA-93m4-6634-74q7","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-93m4-6634-74q7","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-93m4-6634-74q7"},{"rule_id":"osv/GHSA-fx2h-pf6j-xcff","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-fx2h-pf6j-xcff","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-fx2h-pf6j-xcff"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-r825-w8mm-5pxw","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-rq7h-c2jc-7f22","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-rq7h-c2jc-7f22","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-rq7h-c2jc-7f22"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"vite@6.3.3 (npm) is affected by GHSA-v6wh-96g9-6wx3","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-mp7j-qc5w-4988","severity":"medium","message":"websocket-driver@0.7.4 (npm) is affected by GHSA-mp7j-qc5w-4988","path":"package-lock.json","line":null,"fingerprint":"websocket-driver@0.7.4 (npm):GHSA-mp7j-qc5w-4988"},{"rule_id":"osv/GHSA-58qx-3vcg-4xpx","severity":"medium","message":"ws@8.18.1 (npm) is affected by GHSA-58qx-3vcg-4xpx","path":"package-lock.json","line":null,"fingerprint":"ws@8.18.1 (npm):GHSA-58qx-3vcg-4xpx"},{"rule_id":"osv/GHSA-4grg-w6v8-c28g","severity":"low","message":"flask@3.1.0 (PyPI) is affected by PYSEC-2026-1377, GHSA-4grg-w6v8-c28g","path":"functions/requirements.txt","line":null,"fingerprint":"flask@3.1.0 (PyPI):GHSA-4grg-w6v8-c28g"},{"rule_id":"osv/GHSA-fhv5-28vv-h8m8","severity":"low","message":"pyjwt@2.10.1 (PyPI) is affected by PYSEC-2026-177, GHSA-fhv5-28vv-h8m8","path":"functions/requirements.txt","line":null,"fingerprint":"pyjwt@2.10.1 (PyPI):GHSA-fhv5-28vv-h8m8"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.26.10 (npm) is affected by GHSA-4x5r-pxfx-6jf8","path":"package-lock.json","line":null,"fingerprint":"@babel/core@7.26.10 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-xffm-g5w8-qvg7","severity":"low","message":"@eslint/plugin-kit@0.2.8 (npm) is affected by GHSA-xffm-g5w8-qvg7","path":"package-lock.json","line":null,"fingerprint":"@eslint/plugin-kit@0.2.8 (npm):GHSA-xffm-g5w8-qvg7"},{"rule_id":"osv/GHSA-f596-whhp-79r4","severity":"low","message":"@grpc/grpc-js@1.9.15 (npm) is affected by GHSA-f596-whhp-79r4","path":"package-lock.json","line":null,"fingerprint":"@grpc/grpc-js@1.9.15 (npm):GHSA-f596-whhp-79r4"},{"rule_id":"osv/GHSA-vpq2-c234-7xj6","severity":"low","message":"@tootallnate/once@2.0.0 (npm) is affected by GHSA-vpq2-c234-7xj6","path":"package-lock.json","line":null,"fingerprint":"@tootallnate/once@2.0.0 (npm):GHSA-vpq2-c234-7xj6"},{"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-474x-hrwr-fgx4","severity":"low","message":"fast-xml-parser@4.5.3 (npm) is affected by GHSA-474x-hrwr-fgx4","path":"package-lock.json","line":null,"fingerprint":"fast-xml-parser@4.5.3 (npm):GHSA-474x-hrwr-fgx4"},{"rule_id":"osv/GHSA-fj3w-jwp8-x2g3","severity":"low","message":"fast-xml-parser@4.5.3 (npm) is affected by GHSA-fj3w-jwp8-x2g3","path":"package-lock.json","line":null,"fingerprint":"fast-xml-parser@4.5.3 (npm):GHSA-fj3w-jwp8-x2g3"},{"rule_id":"osv/GHSA-9jrq-w75r-8gcw","severity":"low","message":"vite@5.4.18 (npm) is affected by GHSA-9jrq-w75r-8gcw","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-9jrq-w75r-8gcw"},{"rule_id":"osv/GHSA-g4jq-h2w9-997c","severity":"low","message":"vite@5.4.18 (npm) is affected by GHSA-g4jq-h2w9-997c","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-g4jq-h2w9-997c"},{"rule_id":"osv/GHSA-jqfw-vq24-v9c3","severity":"low","message":"vite@5.4.18 (npm) is affected by GHSA-jqfw-vq24-v9c3","path":"package-lock.json","line":null,"fingerprint":"vite@5.4.18 (npm):GHSA-jqfw-vq24-v9c3"},{"rule_id":"osv/GHSA-9jrq-w75r-8gcw","severity":"low","message":"vite@6.3.3 (npm) is affected by GHSA-9jrq-w75r-8gcw","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-9jrq-w75r-8gcw"},{"rule_id":"osv/GHSA-g4jq-h2w9-997c","severity":"low","message":"vite@6.3.3 (npm) is affected by GHSA-g4jq-h2w9-997c","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-g4jq-h2w9-997c"},{"rule_id":"osv/GHSA-jqfw-vq24-v9c3","severity":"low","message":"vite@6.3.3 (npm) is affected by GHSA-jqfw-vq24-v9c3","path":"package-lock.json","line":null,"fingerprint":"vite@6.3.3 (npm):GHSA-jqfw-vq24-v9c3"}],"evidence":[],"data":{"ecosystems":["PyPI","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.0278,"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":125.0,"function_nloc":1574.0,"mean_ccn":2.76,"p90_ccn":6.0,"complex_functions":4.0,"long_functions":1.0,"many_param_functions":0.0,"risky_nloc_share":0.2465},"findings":[],"evidence":[{"kind":"complex-function","description":"ChatListPage in src/App.tsx: complexity 33, 205 lines","ref":"src/App.tsx","url":"https://github.com/hibukki/whatsapp_history3/blob/70c5107da723fef66899da2cb8853eb60a52cc4c/src/App.tsx#L64","weight":0.55},{"kind":"complex-function","description":"extract_zip in functions/main.py: complexity 19, 81 lines","ref":"functions/main.py","url":"https://github.com/hibukki/whatsapp_history3/blob/70c5107da723fef66899da2cb8853eb60a52cc4c/functions/main.py#L29","weight":0.31666666666666665},{"kind":"complex-function","description":"extractChatAndAttachmentsFromZip in src/localStorageUtils.ts: complexity 17, 46 lines","ref":"src/localStorageUtils.ts","url":"https://github.com/hibukki/whatsapp_history3/blob/70c5107da723fef66899da2cb8853eb60a52cc4c/src/localStorageUtils.ts#L148","weight":0.2833333333333333},{"kind":"complex-function","description":"ChatViewPage in src/App.tsx: complexity 16, 56 lines","ref":"src/App.tsx","url":"https://github.com/hibukki/whatsapp_history3/blob/70c5107da723fef66899da2cb8853eb60a52cc4c/src/App.tsx#L673","weight":0.26666666666666666}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":1615.0,"duplicated_lines":38.0,"duplicated_share":0.0235,"files":17.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: src/App.tsx:227 and src/App.tsx:695","ref":"src/App.tsx","url":"https://github.com/hibukki/whatsapp_history3/blob/70c5107da723fef66899da2cb8853eb60a52cc4c/src/App.tsx#L227","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"weighted_findings":0.0,"scanned_lines":2220.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0225,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.1538,"test_lines":25.0,"source_lines":2220.0,"test_ratio":0.0113,"ci_files":0.0,"cochange_share":0.0385,"cochange_commits":26.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":89.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":0.9183,"check:low_escape_density":1.0,"escapes":1.0,"escapes_per_kloc":0.456},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: tsconfig.app.json","ref":"tsconfig.app.json","url":null,"weight":0.0}],"data":{},"error":null}],"flags":[]}