RepoTrust

Leaderboard github.com

MrBesterTester/samkirk.com-v3

My professional website

  • View repository ↗
  • TypeScript
  • ★ 0
  • commit 572f5ea4e698
  • scored 2026-11-14
  • scoring prov-5+qual-2+sec-2

AI provenance

37%

explicit

Confidence
95%
Coverage
100%

Estimated share of AI-generated code. Explicit attribution is a lower bound.

Code quality

64/100

weak

Confidence
90%
Coverage
100%

Complexity, duplication, lint density, tests, CI, docs and review process.

Security

48/100

poor

Confidence
85%
Coverage
100%

Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.

AI provenance

37% explicit

Explicit AI attribution on 37% of first-party code added; an estimated 37% including velocity signals.

How the score is built

  • Explicitly attributed share37%
  • Unattributed share in AI-pace bursts56%
  • Estimated AI-generated share37%
  • AI tool configuration files49
  • Work sessions at AI pace11
  • Releases at AI pacenot measured
  • Coding-style index (1.0+ means possible)1.56

Attributed AI tools

ToolCommitsLines addedFirst seenLast seen
Claude Code36720,8612026-02-042026-10-28

Lines added per month all AI-attributed share

  1. 2026-010 · 0% AI
  2. 2026-0249,850 · 28% AI
  3. 2026-03525 · 100% AI
  4. 2026-04104 · 100% AI
  5. 2026-073,205 · 89% AI
  6. 2026-081,073 · 100% AI
  7. 2026-09811 · 100% AI
  8. 2026-101,361 · 100% AI

Findings in AI-attributed lines vs the rest

From git blame: 12,692 lines trace to AI-attributed commits, 19,377 to others. Reported, not scored.

Findings per 1,000 linesAI-attributedOtherRatio
Code quality0.630.770.81×
Security2.440.2111.85×

Evidence by analyzer

Explicit AI attributionok26 items
attributed_commit_share
85.0%
attributed_commits
367
attributed_loc
20,861
attributed_loc_share
36.6%
commits
432
effective_loc
56,929
tools_detected
1
AI tool configurationok49 items

9 more in the report JSON.

artifacts
49
earliest_adoption
2026-01-30
tools_configured
3
workflow_agents
0
Commit velocityok11 items
excluded_import_loc
0
flagged_loc
37,864
flagged_loc_share
66.5%
flagged_units
11
max_loc_per_hour
4,032.74
measured_loc
56,929
median_loc_per_hour
220.36
pr_timed_units
0
pre_ai_era_burst_loc
0
pre_ai_era_bursts
0
pre_ai_era_measured_loc
0
work_units
63
Release velocityskipped
Coding styleok8 items
count:assistant_voice
0
count:emoji_in_code
6
count:narrated_steps
43
count:placeholder
2
files:assistant_voice
0
files:emoji_in_code
3
files:narrated_steps
4
files:placeholder
2
index
1.56
lines_scanned
32,069
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
0.19
per_kloc:narrated_steps
1.34
per_kloc:placeholder
0.06
Findings in AI-written linesok
ai_lines
12,692
blame_failures
0
files_blamed
117
other_lines
19,377
quality:ai_findings
8
quality:ai_per_kloc
0.63
quality:other_findings
15
quality:other_per_kloc
0.77
quality:ratio
0.81
security:ai_findings
31
security:ai_per_kloc
2.44
security:other_findings
4
security:other_per_kloc
0.21
security:ratio
11.85

Code quality

64 weak

Code quality is weak: test-to-source ratio 0.56, no CI test run detected; 30% of function code in complex or long functions; 14% duplicated lines. Weakest area: docs.

How the score is built

  • Complexity40
  • Duplication43
  • Lint and smells93
  • Tests and CI80
  • Documentation40
  • Type safety98
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok10 items
complex_functions
21
function_nloc
17,841
functions
965
long_functions
21
many_param_functions
0
mean_ccn
3.25
p90_ccn
7
risky_nloc_share
30.1%
Duplication (jscpd)ok10 items
compared_lines
22,816
duplicated_lines
3,250
duplicated_share
14.2%
files
117
Lintok
category:best-practice
3
category:correctness
20
findings
23
scanned_lines
32,069
weighted_findings
8.75
Tests and CIok2 items
  • CI config: .github/workflows/ci.yml .github/workflows/ci.yml
  • CI runs linters (tsc --noEmit)
check:ci_present
yes
check:ci_runs_lint
yes
check:ci_runs_tests
no
check:has_tests
yes
check:test_ratio
yes
check:tests_cochange
yes
ci_files
1
cochange_commits
122
cochange_share
36.1%
source_lines
32,069
test_lines
18,072
test_ratio
0.56
Documentationok1 item
  • README.md README.md
check:changelog
no
check:contributing
no
check:license
no
check:readme
yes
readme_lines
137
Type safetyok1 item
  • TypeScript strict type checking: web/tsconfig.json web/tsconfig.json
check:low_escape_density
yes
check:strict_config
no
escapes
3
escapes_per_kloc
0.09

Security

48 poor

Security posture is poor: 203 known vulnerabilities in 41 dependencies; 2 high-severity SAST findings; 13 high-severity workflow issues. Weakest area: posture.

How the score is built

  • Secrets97
  • Static analysis (SAST)89
  • Vulnerable dependencies0
  • CI workflows6
  • Security posture0
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
35
declared
35
lookup_errors
0
missing
0
recent
0
Secrets (gitleaks)ok
secrets_current
0
secrets_history
0
secrets_low_confidence
0
secrets_nonprod
1
Static analysis (opengrep)ok
findings
35
findings_high
2
findings_low
0
findings_medium
33
parse_errors
4
scanned_lines
32,069
weighted_findings
10.45
Dependencies (osv-scanner)ok
penalty
326
vulnerabilities
203
vulnerable_packages
41
vulns_critical
10
vulns_high
103
vulns_low
14
vulns_medium
76
vulns_unknown
0
CI workflows (zizmor)ok
findings
23
findings_high
13
findings_low
2
findings_medium
8
penalty
171.40
workflows
1
Security postureok
check:dependency_updates
no
check:lockfiles
yes
check:security_policy
no
check:signed_commits
no
signed_commit_share
0.0%
unpinned_manifests
0
Release downloadsok1 item
  • gives an archive password README_dev_guide.md
binary_assets
0
signals
1
suspicious
0

Findings

10 critical118 high121 medium35 low1 info

SeverityRuleLocationMessageTool
critical osv/GHSA-2464-fhr4-w9xw web/package-lock.json [email protected] (npm) is affected by GHSA-2464-fhr4-w9xw Dependencies (osv-scanner)
critical osv/GHSA-2xp9-vwfh-vxw4 web/package-lock.json [email protected] (npm) is affected by GHSA-2xp9-vwfh-vxw4 Dependencies (osv-scanner)
critical osv/GHSA-5xrq-8626-4rwp web/package-lock.json [email protected] (npm) is affected by GHSA-5xrq-8626-4rwp Dependencies (osv-scanner)
critical osv/GHSA-673q-mjm6-r5xr web/package-lock.json [email protected] (npm) is affected by GHSA-673q-mjm6-r5xr Dependencies (osv-scanner)
critical osv/GHSA-7rqj-j65f-68wh web/package-lock.json @auth/[email protected] (npm) is affected by GHSA-7rqj-j65f-68wh Dependencies (osv-scanner)
critical osv/GHSA-7rqj-j65f-68wh web/package-lock.json [email protected] (npm) is affected by GHSA-7rqj-j65f-68wh Dependencies (osv-scanner)
critical osv/GHSA-8fpg-xm3f-6cx3 web/package-lock.json [email protected] (npm) is affected by GHSA-8fpg-xm3f-6cx3 Dependencies (osv-scanner)
critical osv/GHSA-m7jm-9gc2-mpf2 web/package-lock.json [email protected] (npm) is affected by GHSA-m7jm-9gc2-mpf2 Dependencies (osv-scanner)
critical osv/GHSA-p293-qw3h-jr36 web/package-lock.json [email protected] (npm) is affected by GHSA-p293-qw3h-jr36 Dependencies (osv-scanner)
critical osv/GHSA-xq3m-2v4x-88gg web/package-lock.json [email protected] (npm) is affected by GHSA-xq3m-2v4x-88gg Dependencies (osv-scanner)
high zizmor/unpinned-uses .github/workflows/ci.yml:102 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:15 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:170 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:173 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:18 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:224 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:41 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:55 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:60 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:65 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:81 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:86 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:99 unpinned action reference [confidence high] CI workflows (zizmor)
high osv/GHSA-23c5-xmqv-rm74 web/package-lock.json [email protected] (npm) is affected by GHSA-23c5-xmqv-rm74 Dependencies (osv-scanner)
high osv/GHSA-23c5-xmqv-rm74 web/package-lock.json [email protected] (npm) is affected by GHSA-23c5-xmqv-rm74 Dependencies (osv-scanner)
high osv/GHSA-23c5-xmqv-rm74 web/package-lock.json [email protected] (npm) is affected by GHSA-23c5-xmqv-rm74 Dependencies (osv-scanner)
high osv/GHSA-25h7-pfq9-p65f web/package-lock.json [email protected] (npm) is affected by GHSA-25h7-pfq9-p65f Dependencies (osv-scanner)
high osv/GHSA-267c-6grr-h53f web/package-lock.json [email protected] (npm) is affected by GHSA-267c-6grr-h53f Dependencies (osv-scanner)
high osv/GHSA-26hh-7cqf-hhc6 web/package-lock.json [email protected] (npm) is affected by GHSA-26hh-7cqf-hhc6 Dependencies (osv-scanner)
high osv/GHSA-27p8-2357-5qqv web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-27p8-2357-5qqv Dependencies (osv-scanner)
high osv/GHSA-2883-xcg3-v3hh web/package-lock.json [email protected] (npm) is affected by GHSA-2883-xcg3-v3hh Dependencies (osv-scanner)
high osv/GHSA-28wg-ghj8-5hjv web/package-lock.json [email protected] (npm) is affected by GHSA-28wg-ghj8-5hjv Dependencies (osv-scanner)
high osv/GHSA-2m5v-pch6-74hx web/package-lock.json [email protected] (npm) is affected by GHSA-2m5v-pch6-74hx Dependencies (osv-scanner)
high osv/GHSA-2v35-w6hq-6mfw web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-2v35-w6hq-6mfw Dependencies (osv-scanner)
high osv/GHSA-2v37-7h3g-55p8 web/package-lock.json [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 Dependencies (osv-scanner)
high osv/GHSA-36qx-fr4f-26g5 web/package-lock.json [email protected] (npm) is affected by GHSA-36qx-fr4f-26g5 Dependencies (osv-scanner)
high osv/GHSA-3jxr-9vmj-r5cp web/package-lock.json [email protected] (npm) is affected by GHSA-3jxr-9vmj-r5cp Dependencies (osv-scanner)
high osv/GHSA-3jxr-9vmj-r5cp web/package-lock.json [email protected] (npm) is affected by GHSA-3jxr-9vmj-r5cp Dependencies (osv-scanner)
high osv/GHSA-3ppc-4f35-3m26 web/package-lock.json [email protected] (npm) is affected by GHSA-3ppc-4f35-3m26 Dependencies (osv-scanner)
high osv/GHSA-3ppc-4f35-3m26 web/package-lock.json [email protected] (npm) is affected by GHSA-3ppc-4f35-3m26 Dependencies (osv-scanner)
high osv/GHSA-3ppc-4f35-3m26 web/package-lock.json [email protected] (npm) is affected by GHSA-3ppc-4f35-3m26 Dependencies (osv-scanner)
high osv/GHSA-492v-c6pp-mqqv web/package-lock.json [email protected] (npm) is affected by GHSA-492v-c6pp-mqqv Dependencies (osv-scanner)
high osv/GHSA-4cwx-7wf7-3272 web/package-lock.json [email protected] (npm) is affected by GHSA-4cwx-7wf7-3272 Dependencies (osv-scanner)
high osv/GHSA-4w3w-2rp5-g8jm web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-4w3w-2rp5-g8jm Dependencies (osv-scanner)
high osv/GHSA-4w7w-5xrc-9h26 web/package-lock.json [email protected] (npm) is affected by GHSA-4w7w-5xrc-9h26 Dependencies (osv-scanner)
high osv/GHSA-52cp-r559-cp3m web/package-lock.json [email protected] (npm) is affected by GHSA-52cp-r559-cp3m Dependencies (osv-scanner)
high osv/GHSA-5375-pq7m-f5r2 web/package-lock.json @grpc/[email protected] (npm) is affected by GHSA-5375-pq7m-f5r2 Dependencies (osv-scanner)
high osv/GHSA-587h-7wmj-h5pm web/package-lock.json [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm Dependencies (osv-scanner)
high osv/GHSA-5p4m-2wfm-xmqj web/package-lock.json [email protected] (npm) is affected by GHSA-5p4m-2wfm-xmqj Dependencies (osv-scanner)
high osv/GHSA-66ff-xgx4-vchm web/package-lock.json [email protected] (npm) is affected by GHSA-66ff-xgx4-vchm Dependencies (osv-scanner)
high osv/GHSA-685m-2w69-288q web/package-lock.json [email protected] (npm) is affected by GHSA-685m-2w69-288q Dependencies (osv-scanner)
high osv/GHSA-68fv-2mgg-jv7q web/package-lock.json [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q Dependencies (osv-scanner)
high osv/GHSA-6g55-p6wh-862q web/package-lock.json [email protected] (npm) is affected by GHSA-6g55-p6wh-862q Dependencies (osv-scanner)
high osv/GHSA-6g55-p6wh-862q web/package-lock.json [email protected] (npm) is affected by GHSA-6g55-p6wh-862q Dependencies (osv-scanner)
high osv/GHSA-6gpp-xcg3-4w24 web/package-lock.json [email protected] (npm) is affected by GHSA-6gpp-xcg3-4w24 Dependencies (osv-scanner)
high osv/GHSA-6j4f-fj2g-mc7p web/package-lock.json [email protected] (npm) is affected by GHSA-6j4f-fj2g-mc7p Dependencies (osv-scanner)
high osv/GHSA-6j4f-fj2g-mc7p web/package-lock.json [email protected] (npm) is affected by GHSA-6j4f-fj2g-mc7p Dependencies (osv-scanner)
high osv/GHSA-73wf-gq98-2v4g web/package-lock.json [email protected] (npm) is affected by GHSA-73wf-gq98-2v4g Dependencies (osv-scanner)
high osv/GHSA-75px-5xx7-5xc7 web/package-lock.json [email protected] (npm) is affected by GHSA-75px-5xx7-5xc7 Dependencies (osv-scanner)
high osv/GHSA-7q85-xj36-vmfc web/package-lock.json [email protected] (npm) is affected by GHSA-7q85-xj36-vmfc Dependencies (osv-scanner)
high osv/GHSA-7r86-cg39-jmmj web/package-lock.json [email protected] (npm) is affected by GHSA-7r86-cg39-jmmj Dependencies (osv-scanner)
high osv/GHSA-7r86-cg39-jmmj web/package-lock.json [email protected] (npm) is affected by GHSA-7r86-cg39-jmmj Dependencies (osv-scanner)
high osv/GHSA-7r86-cg39-jmmj web/package-lock.json [email protected] (npm) is affected by GHSA-7r86-cg39-jmmj Dependencies (osv-scanner)
high osv/GHSA-8238-w5pm-2374 web/package-lock.json [email protected] (npm) is affected by GHSA-8238-w5pm-2374 Dependencies (osv-scanner)
high osv/GHSA-8344-3jmq-59r6 web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-8344-3jmq-59r6 Dependencies (osv-scanner)
high osv/GHSA-89xv-2m56-2m9x web/package-lock.json [email protected] (npm) is affected by GHSA-89xv-2m56-2m9x Dependencies (osv-scanner)
high osv/GHSA-8gc5-j5rx-235r web/package-lock.json [email protected] (npm) is affected by GHSA-8gc5-j5rx-235r Dependencies (osv-scanner)
high osv/GHSA-8h8q-6873-q5fj web/package-lock.json [email protected] (npm) is affected by GHSA-8h8q-6873-q5fj Dependencies (osv-scanner)
high osv/GHSA-93r5-fhx6-vmg9 web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-93r5-fhx6-vmg9 Dependencies (osv-scanner)
high osv/GHSA-965w-775f-mr7g web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-965w-775f-mr7g Dependencies (osv-scanner)
high osv/GHSA-99f4-grh7-6pcq web/package-lock.json @grpc/[email protected] (npm) is affected by GHSA-99f4-grh7-6pcq Dependencies (osv-scanner)
high osv/GHSA-c2c7-rcm5-vvqj web/package-lock.json [email protected] (npm) is affected by GHSA-c2c7-rcm5-vvqj Dependencies (osv-scanner)
high osv/GHSA-c2c7-rcm5-vvqj web/package-lock.json [email protected] (npm) is affected by GHSA-c2c7-rcm5-vvqj Dependencies (osv-scanner)
high osv/GHSA-c4j6-fc7j-m34r web/package-lock.json [email protected] (npm) is affected by GHSA-c4j6-fc7j-m34r Dependencies (osv-scanner)
high osv/GHSA-c7q8-3ch8-vqpv web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-c7q8-3ch8-vqpv Dependencies (osv-scanner)
high osv/GHSA-c83g-rgw3-j3cx web/package-lock.json [email protected] (npm) is affected by GHSA-c83g-rgw3-j3cx Dependencies (osv-scanner)
high osv/GHSA-cjq9-62q9-8jv4 web/package-lock.json [email protected] (npm) is affected by GHSA-cjq9-62q9-8jv4 Dependencies (osv-scanner)
high osv/GHSA-f269-vfmq-vjvj web/package-lock.json [email protected] (npm) is affected by GHSA-f269-vfmq-vjvj Dependencies (osv-scanner)
high osv/GHSA-f6ww-3ggp-fr8h web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-f6ww-3ggp-fr8h Dependencies (osv-scanner)
high osv/GHSA-f88m-g3jw-g9cj web/package-lock.json [email protected] (npm) is affected by GHSA-f88m-g3jw-g9cj Dependencies (osv-scanner)
high osv/GHSA-hmw2-7cc7-3qxx web/package-lock.json [email protected] (npm) is affected by GHSA-hmw2-7cc7-3qxx Dependencies (osv-scanner)
high osv/GHSA-j5f4-cc29-5x44 web/package-lock.json [email protected] (npm) is affected by GHSA-j5f4-cc29-5x44 Dependencies (osv-scanner)
high osv/GHSA-j759-j44w-7fr8 web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-j759-j44w-7fr8 Dependencies (osv-scanner)
high osv/GHSA-jmr7-xgp7-cmfj web/package-lock.json [email protected] (npm) is affected by GHSA-jmr7-xgp7-cmfj Dependencies (osv-scanner)
high osv/GHSA-jvwf-75h9-cwgg web/package-lock.json [email protected] (npm) is affected by GHSA-jvwf-75h9-cwgg Dependencies (osv-scanner)
high osv/GHSA-m99w-x7hq-7vfj web/package-lock.json [email protected] (npm) is affected by GHSA-m99w-x7hq-7vfj Dependencies (osv-scanner)
high osv/GHSA-m9gg-hp2v-232j web/package-lock.json @grpc/[email protected] (npm) is affected by GHSA-m9gg-hp2v-232j Dependencies (osv-scanner)
high osv/GHSA-mg66-mrh9-m8jx web/package-lock.json [email protected] (npm) is affected by GHSA-mg66-mrh9-m8jx Dependencies (osv-scanner)
high osv/GHSA-mh99-v99m-4gvg web/package-lock.json [email protected] (npm) is affected by GHSA-mh99-v99m-4gvg Dependencies (osv-scanner)
high osv/GHSA-mh99-v99m-4gvg web/package-lock.json [email protected] (npm) is affected by GHSA-mh99-v99m-4gvg Dependencies (osv-scanner)
high osv/GHSA-mrhx-c7xc-m3w5 web/package-lock.json [email protected] (npm) is affected by GHSA-mrhx-c7xc-m3w5 Dependencies (osv-scanner)
high osv/GHSA-mw96-cpmx-2vgc web/package-lock.json [email protected] (npm) is affected by GHSA-mw96-cpmx-2vgc Dependencies (osv-scanner)
high osv/GHSA-p3m5-59mp-jv5r web/package-lock.json [email protected] (npm) is affected by GHSA-p3m5-59mp-jv5r Dependencies (osv-scanner)
high osv/GHSA-p9ff-h696-f583 web/package-lock.json [email protected] (npm) is affected by GHSA-p9ff-h696-f583 Dependencies (osv-scanner)
high osv/GHSA-p9j2-gv94-2wf4 web/package-lock.json [email protected] (npm) is affected by GHSA-p9j2-gv94-2wf4 Dependencies (osv-scanner)
high osv/GHSA-q4gf-8mx6-v5v3 web/package-lock.json [email protected] (npm) is affected by GHSA-q4gf-8mx6-v5v3 Dependencies (osv-scanner)
high osv/GHSA-qhr7-859c-m2p7 web/package-lock.json [email protected] (npm) is affected by GHSA-qhr7-859c-m2p7 Dependencies (osv-scanner)
high osv/GHSA-qhr7-859c-m2p7 web/package-lock.json [email protected] (npm) is affected by GHSA-qhr7-859c-m2p7 Dependencies (osv-scanner)
high osv/GHSA-qpx9-hpmf-5gmw web/package-lock.json [email protected] (npm) is affected by GHSA-qpx9-hpmf-5gmw Dependencies (osv-scanner)
high osv/GHSA-qrxm-fqhp-jwvm web/package-lock.json [email protected] (npm) is affected by GHSA-qrxm-fqhp-jwvm Dependencies (osv-scanner)
high osv/GHSA-r28c-9q8g-f849 web/package-lock.json [email protected] (npm) is affected by GHSA-r28c-9q8g-f849 Dependencies (osv-scanner)
high osv/GHSA-r28c-9q8g-f849 web/package-lock.json [email protected] (npm) is affected by GHSA-r28c-9q8g-f849 Dependencies (osv-scanner)
high osv/GHSA-r5fr-rjxr-66jc web/package-lock.json [email protected] (npm) is affected by GHSA-r5fr-rjxr-66jc Dependencies (osv-scanner)
high osv/GHSA-rcw4-f5rp-g42v web/package-lock.json [email protected] (npm) is affected by GHSA-rcw4-f5rp-g42v Dependencies (osv-scanner)
high osv/GHSA-rf6f-7fwh-wjgh web/package-lock.json [email protected] (npm) is affected by GHSA-rf6f-7fwh-wjgh Dependencies (osv-scanner)
high osv/GHSA-rfgv-xxqx-mfg5 web/package-lock.json [email protected] (npm) is affected by GHSA-rfgv-xxqx-mfg5 Dependencies (osv-scanner)
high osv/GHSA-rgj7-g3m4-5g8c web/package-lock.json [email protected] (npm) is affected by GHSA-rgj7-g3m4-5g8c Dependencies (osv-scanner)
high osv/GHSA-rgw5-rvv9-x895 web/package-lock.json [email protected] (npm) is affected by GHSA-rgw5-rvv9-x895 Dependencies (osv-scanner)
high osv/GHSA-rgw5-rvv9-x895 web/package-lock.json [email protected] (npm) is affected by GHSA-rgw5-rvv9-x895 Dependencies (osv-scanner)
high osv/GHSA-v2wj-q39q-566r web/package-lock.json [email protected] (npm) is affected by GHSA-v2wj-q39q-566r Dependencies (osv-scanner)
high osv/GHSA-v9p9-hfj2-hcw8 web/package-lock.json [email protected] (npm) is affected by GHSA-v9p9-hfj2-hcw8 Dependencies (osv-scanner)
high osv/GHSA-vrm6-8vpv-qv8q web/package-lock.json [email protected] (npm) is affected by GHSA-vrm6-8vpv-qv8q Dependencies (osv-scanner)
high osv/GHSA-vxpw-j846-p89q web/package-lock.json [email protected] (npm) is affected by GHSA-vxpw-j846-p89q Dependencies (osv-scanner)
high osv/GHSA-w2rr-34g9-rvrj web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-w2rr-34g9-rvrj Dependencies (osv-scanner)
high osv/GHSA-w5hq-g745-h8pq web/package-lock.json [email protected] (npm) is affected by GHSA-w5hq-g745-h8pq Dependencies (osv-scanner)
high osv/GHSA-w5hq-g745-h8pq web/package-lock.json [email protected] (npm) is affected by GHSA-w5hq-g745-h8pq Dependencies (osv-scanner)
high osv/GHSA-wcpc-wj8m-hjx6 web/package-lock.json [email protected] (npm) is affected by GHSA-wcpc-wj8m-hjx6 Dependencies (osv-scanner)
high osv/GHSA-wh4c-j3r5-mjhp web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-wh4c-j3r5-mjhp Dependencies (osv-scanner)
high osv/GHSA-wq5f-xc86-pv6w web/package-lock.json [email protected] (npm) is affected by GHSA-wq5f-xc86-pv6w Dependencies (osv-scanner)
high osv/GHSA-x4fp-j954-r2f4 web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-x4fp-j954-r2f4 Dependencies (osv-scanner)
high osv/GHSA-x6wf-f3px-wcqx web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-x6wf-f3px-wcqx Dependencies (osv-scanner)
high osv/GHSA-xcpc-8h2w-3j85 web/package-lock.json [email protected] (npm) is affected by GHSA-xcpc-8h2w-3j85 Dependencies (osv-scanner)
high osv/GHSA-xjj6-f33q-929c web/package-lock.json [email protected] (npm) is affected by GHSA-xjj6-f33q-929c Dependencies (osv-scanner)
high osv/GHSA-xmf8-cvqr-rfgj web/package-lock.json @auth/[email protected] (npm) is affected by GHSA-xmf8-cvqr-rfgj Dependencies (osv-scanner)
high osv/GHSA-xmf8-cvqr-rfgj web/package-lock.json [email protected] (npm) is affected by GHSA-xmf8-cvqr-rfgj Dependencies (osv-scanner)
high osv/GHSA-xwg4-73v4-xw9w web/package-lock.json [email protected] (npm) is affected by GHSA-xwg4-73v4-xw9w Dependencies (osv-scanner)
high opengrep/javascript.lang.security.audit.spawn-shell-true web/scripts/test-all.ts:573 Found '$SPAWN' with '{shell: process.platform === "win32"}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a... Static analysis (opengrep)
high opengrep/javascript.lang.security.detect-child-process web/scripts/test-all.ts:573 Detected calls to child_process from a function argument `suite`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly... Static analysis (opengrep)
medium opengrep/python.lang.best-practice.unspecified-open-encoding .claude/skills/check-analytics/scripts/ga4.py:167 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding .claude/skills/check-analytics/scripts/ga4.py:193 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/typescript.react.best-practice.react-props-spreading web/src/components/TrackedLink.tsx:62 It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious... Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys web/src/lib/commute.ts:140 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. Lint
medium opengrep/python.lang.security.audit.dynamic-urllib-use-detected .claude/skills/check-analytics/scripts/ga4.py:138 Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... Static analysis (opengrep)
medium opengrep/python.lang.security.audit.dynamic-urllib-use-detected .claude/skills/check-search-console/scripts/gsc.py:120 Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... Static analysis (opengrep)
medium zizmor/excessive-permissions .github/workflows/ci.yml:1 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:10 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/artipacked .github/workflows/ci.yml:14 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:164 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/artipacked .github/workflows/ci.yml:169 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
medium zizmor/artipacked .github/workflows/ci.yml:54 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:88 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/artipacked .github/workflows/ci.yml:98 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/e2e/helpers/zip-verify.ts:39 Detected that function argument `opts` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium osv/GHSA-2g4f-4pwh-qvx6 web/package-lock.json [email protected] (npm) is affected by GHSA-2g4f-4pwh-qvx6 Dependencies (osv-scanner)
medium osv/GHSA-2jfj-6hjv-fm6j web/package-lock.json [email protected] (npm) is affected by GHSA-2jfj-6hjv-fm6j Dependencies (osv-scanner)
medium osv/GHSA-2mjp-6q6p-2qxm web/package-lock.json [email protected] (npm) is affected by GHSA-2mjp-6q6p-2qxm Dependencies (osv-scanner)
medium osv/GHSA-2pr8-phx7-x9h3 web/package-lock.json [email protected] (npm) is affected by GHSA-2pr8-phx7-x9h3 Dependencies (osv-scanner)
medium osv/GHSA-39w2-rjm5-chcv web/package-lock.json [email protected] (npm) is affected by GHSA-39w2-rjm5-chcv Dependencies (osv-scanner)
medium osv/GHSA-3g3m-2fjr-6pw4 web/package-lock.json [email protected] (npm) is affected by GHSA-3g3m-2fjr-6pw4 Dependencies (osv-scanner)
medium osv/GHSA-3v7f-55p6-f55p web/package-lock.json [email protected] (npm) is affected by GHSA-3v7f-55p6-f55p Dependencies (osv-scanner)
medium osv/GHSA-3v7f-55p6-f55p web/package-lock.json [email protected] (npm) is affected by GHSA-3v7f-55p6-f55p Dependencies (osv-scanner)
medium osv/GHSA-3x4c-7xq6-9pq8 web/package-lock.json [email protected] (npm) is affected by GHSA-3x4c-7xq6-9pq8 Dependencies (osv-scanner)
medium osv/GHSA-3xpg-4rpp-hhhm web/package-lock.json [email protected] (npm) is affected by GHSA-3xpg-4rpp-hhhm Dependencies (osv-scanner)
medium osv/GHSA-4633-3j49-mh5q web/package-lock.json [email protected] (npm) is affected by GHSA-4633-3j49-mh5q Dependencies (osv-scanner)
medium osv/GHSA-4992-7rv2-5pvq web/package-lock.json [email protected] (npm) is affected by GHSA-4992-7rv2-5pvq Dependencies (osv-scanner)
medium osv/GHSA-4c39-4ccg-62r3 web/package-lock.json [email protected] (npm) is affected by GHSA-4c39-4ccg-62r3 Dependencies (osv-scanner)
medium osv/GHSA-4jqv-mc3x-m676 web/package-lock.json [email protected] (npm) is affected by GHSA-4jqv-mc3x-m676 Dependencies (osv-scanner)
medium osv/GHSA-4qv8-2p9j-2685 web/package-lock.json [email protected] (npm) is affected by GHSA-4qv8-2p9j-2685 Dependencies (osv-scanner)
medium osv/GHSA-4w7w-66w2-5vf9 web/package-lock.json [email protected] (npm) is affected by GHSA-4w7w-66w2-5vf9 Dependencies (osv-scanner)
medium osv/GHSA-55wc-3pg8-jfw6 web/package-lock.json [email protected] (npm) is affected by GHSA-55wc-3pg8-jfw6 Dependencies (osv-scanner)
medium osv/GHSA-68g3-v927-f742 web/package-lock.json [email protected] (npm) is affected by GHSA-68g3-v927-f742 Dependencies (osv-scanner)
medium osv/GHSA-698v-4r3x-3vcv web/package-lock.json [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv Dependencies (osv-scanner)
medium osv/GHSA-6gmq-8vp8-gcm6 web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-6gmq-8vp8-gcm6 Dependencies (osv-scanner)
medium osv/GHSA-6h8r-xr42-gp59 web/package-lock.json @xmldom/[email protected] (npm) is affected by GHSA-6h8r-xr42-gp59 Dependencies (osv-scanner)
medium osv/GHSA-82fw-gwwq-j7x9 web/package-lock.json @vitest/[email protected] (npm) is affected by GHSA-82fw-gwwq-j7x9 Dependencies (osv-scanner)
medium osv/GHSA-82fw-gwwq-j7x9 web/package-lock.json [email protected] (npm) is affected by GHSA-82fw-gwwq-j7x9 Dependencies (osv-scanner)
medium osv/GHSA-8xcm-r25x-g524 web/package-lock.json [email protected] (npm) is affected by GHSA-8xcm-r25x-g524 Dependencies (osv-scanner)
medium osv/GHSA-955p-x3mx-jcvp web/package-lock.json [email protected] (npm) is affected by GHSA-955p-x3mx-jcvp Dependencies (osv-scanner)
medium osv/GHSA-9fm3-97px-rjf6 web/package-lock.json [email protected] (npm) is affected by GHSA-9fm3-97px-rjf6 Dependencies (osv-scanner)
medium osv/GHSA-c6fg-446q-cg94 web/package-lock.json [email protected] (npm) is affected by GHSA-c6fg-446q-cg94 Dependencies (osv-scanner)
medium osv/GHSA-f23m-r3pf-42rh web/package-lock.json [email protected] (npm) is affected by GHSA-f23m-r3pf-42rh Dependencies (osv-scanner)
medium osv/GHSA-f38q-mgvj-vph7 web/package-lock.json [email protected] (npm) is affected by GHSA-f38q-mgvj-vph7 Dependencies (osv-scanner)
medium osv/GHSA-f72v-6w45-q472 web/package-lock.json [email protected] (npm) is affected by GHSA-f72v-6w45-q472 Dependencies (osv-scanner)
medium osv/GHSA-f87g-xv8r-7p7x web/package-lock.json [email protected] (npm) is affected by GHSA-f87g-xv8r-7p7x Dependencies (osv-scanner)
medium osv/GHSA-f886-m6hf-6m8v web/package-lock.json [email protected] (npm) is affected by GHSA-f886-m6hf-6m8v Dependencies (osv-scanner)
medium osv/GHSA-f886-m6hf-6m8v web/package-lock.json [email protected] (npm) is affected by GHSA-f886-m6hf-6m8v Dependencies (osv-scanner)
medium osv/GHSA-ffhc-5mcf-pf4q web/package-lock.json [email protected] (npm) is affected by GHSA-ffhc-5mcf-pf4q Dependencies (osv-scanner)
medium osv/GHSA-fx2h-pf6j-xcff web/package-lock.json [email protected] (npm) is affected by GHSA-fx2h-pf6j-xcff Dependencies (osv-scanner)
medium osv/GHSA-fx83-v9x8-x52w web/package-lock.json [email protected] (npm) is affected by GHSA-fx83-v9x8-x52w Dependencies (osv-scanner)
medium osv/GHSA-fxqj-rqcc-2cmp web/package-lock.json [email protected] (npm) is affected by GHSA-fxqj-rqcc-2cmp Dependencies (osv-scanner)
medium osv/GHSA-fxqj-rqcc-2cmp web/package-lock.json [email protected] (npm) is affected by GHSA-fxqj-rqcc-2cmp Dependencies (osv-scanner)
medium osv/GHSA-g3hv-75wg-m249 web/package-lock.json [email protected] (npm) is affected by GHSA-g3hv-75wg-m249 Dependencies (osv-scanner)
medium osv/GHSA-ggv3-7p47-pfv8 web/package-lock.json [email protected] (npm) is affected by GHSA-ggv3-7p47-pfv8 Dependencies (osv-scanner)
medium osv/GHSA-gh4j-gqv2-49f6 web/package-lock.json [email protected] (npm) is affected by GHSA-gh4j-gqv2-49f6 Dependencies (osv-scanner)
medium osv/GHSA-gx5p-jg67-6x7h web/package-lock.json [email protected] (npm) is affected by GHSA-gx5p-jg67-6x7h Dependencies (osv-scanner)
medium osv/GHSA-h27x-g6w4-24gq web/package-lock.json [email protected] (npm) is affected by GHSA-h27x-g6w4-24gq Dependencies (osv-scanner)
medium osv/GHSA-h64f-5h5j-jqjh web/package-lock.json [email protected] (npm) is affected by GHSA-h64f-5h5j-jqjh Dependencies (osv-scanner)
medium osv/GHSA-h67p-54hq-rp68 web/package-lock.json [email protected] (npm) is affected by GHSA-h67p-54hq-rp68 Dependencies (osv-scanner)
medium osv/GHSA-j3f2-48v5-ccww web/package-lock.json [email protected] (npm) is affected by GHSA-j3f2-48v5-ccww Dependencies (osv-scanner)
medium osv/GHSA-jggg-4jg4-v7c6 web/package-lock.json [email protected] (npm) is affected by GHSA-jggg-4jg4-v7c6 Dependencies (osv-scanner)
medium osv/GHSA-jp2q-39xq-3w4g web/package-lock.json [email protected] (npm) is affected by GHSA-jp2q-39xq-3w4g Dependencies (osv-scanner)
medium osv/GHSA-jr45-8vmc-qm54 web/package-lock.json [email protected] (npm) is affected by GHSA-jr45-8vmc-qm54 Dependencies (osv-scanner)
medium osv/GHSA-m8rv-5g2x-5cg5 web/package-lock.json [email protected] (npm) is affected by GHSA-m8rv-5g2x-5cg5 Dependencies (osv-scanner)
medium osv/GHSA-mcj8-r9mp-w47p web/package-lock.json [email protected] (npm) is affected by GHSA-mcj8-r9mp-w47p Dependencies (osv-scanner)
medium osv/GHSA-mq59-m269-xvcx web/package-lock.json [email protected] (npm) is affected by GHSA-mq59-m269-xvcx Dependencies (osv-scanner)
medium osv/GHSA-p498-v437-472g web/package-lock.json @humanfs/[email protected] (npm) is affected by GHSA-p498-v437-472g Dependencies (osv-scanner)
medium osv/GHSA-p634-w6r4-rjp2 web/package-lock.json [email protected] (npm) is affected by GHSA-p634-w6r4-rjp2 Dependencies (osv-scanner)
medium osv/GHSA-p88m-4jfj-68fv web/package-lock.json [email protected] (npm) is affected by GHSA-p88m-4jfj-68fv Dependencies (osv-scanner)
medium osv/GHSA-phc3-fgpg-7m6h web/package-lock.json [email protected] (npm) is affected by GHSA-phc3-fgpg-7m6h Dependencies (osv-scanner)
medium osv/GHSA-pmjh-fq2x-6v4x web/package-lock.json [email protected] (npm) is affected by GHSA-pmjh-fq2x-6v4x Dependencies (osv-scanner)
medium osv/GHSA-pr7r-676h-xcf6 web/package-lock.json [email protected] (npm) is affected by GHSA-pr7r-676h-xcf6 Dependencies (osv-scanner)
medium osv/GHSA-q2hr-2g5m-vwhr web/package-lock.json [email protected] (npm) is affected by GHSA-q2hr-2g5m-vwhr Dependencies (osv-scanner)
medium osv/GHSA-q2hr-2g5m-vwhr web/package-lock.json [email protected] (npm) is affected by GHSA-q2hr-2g5m-vwhr Dependencies (osv-scanner)
medium osv/GHSA-q6x5-8v7m-xcrf web/package-lock.json @protobufjs/[email protected] (npm) is affected by GHSA-q6x5-8v7m-xcrf Dependencies (osv-scanner)
medium osv/GHSA-q6x5-8v7m-xcrf web/package-lock.json [email protected] (npm) is affected by GHSA-q6x5-8v7m-xcrf Dependencies (osv-scanner)
medium osv/GHSA-q8wf-6r8g-63ch web/package-lock.json [email protected] (npm) is affected by GHSA-q8wf-6r8g-63ch Dependencies (osv-scanner)
medium osv/GHSA-qx2v-qp2m-jg93 web/package-lock.json [email protected] (npm) is affected by GHSA-qx2v-qp2m-jg93 Dependencies (osv-scanner)
medium osv/GHSA-qx2v-qp2m-jg93 web/package-lock.json [email protected] (npm) is affected by GHSA-qx2v-qp2m-jg93 Dependencies (osv-scanner)
medium osv/GHSA-qxg6-89mg-rqv8 web/package-lock.json @vitest/[email protected] (npm) is affected by GHSA-qxg6-89mg-rqv8 Dependencies (osv-scanner)
medium osv/GHSA-r825-w8mm-5pxw web/package-lock.json [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw Dependencies (osv-scanner)
medium osv/GHSA-rq7h-c2jc-7f22 web/package-lock.json [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 Dependencies (osv-scanner)
medium osv/GHSA-rx4f-c7p8-82vq web/package-lock.json [email protected] (npm) is affected by GHSA-rx4f-c7p8-82vq Dependencies (osv-scanner)
medium osv/GHSA-v3r7-h72x-cjcm web/package-lock.json [email protected] (npm) is affected by GHSA-v3r7-h72x-cjcm Dependencies (osv-scanner)
medium osv/GHSA-v6wh-96g9-6wx3 web/package-lock.json [email protected] (npm) is affected by GHSA-v6wh-96g9-6wx3 Dependencies (osv-scanner)
medium osv/GHSA-vwc7-r8mq-g2x9 web/package-lock.json [email protected] (npm) is affected by GHSA-vwc7-r8mq-g2x9 Dependencies (osv-scanner)
medium osv/GHSA-w5vr-8v7q-w6rv web/package-lock.json [email protected] (npm) is affected by GHSA-w5vr-8v7q-w6rv Dependencies (osv-scanner)
medium osv/GHSA-wfc6-r584-vfw7 web/package-lock.json [email protected] (npm) is affected by GHSA-wfc6-r584-vfw7 Dependencies (osv-scanner)
medium osv/GHSA-x445-f3h2-j279 web/package-lock.json @auth/[email protected] (npm) is affected by GHSA-x445-f3h2-j279 Dependencies (osv-scanner)
medium osv/GHSA-x445-f3h2-j279 web/package-lock.json [email protected] (npm) is affected by GHSA-x445-f3h2-j279 Dependencies (osv-scanner)
medium opengrep/javascript.lang.security.html-in-template-string web/scripts/smoke-gcp.ts:1117 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/scripts/smoke-gcp.ts:2439 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/scripts/smoke-gcp.ts:924 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-all.ts:1164 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-all.ts:1165 Detected that function argument `opts` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-all.ts:490 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-all.ts:492 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-all.ts:492 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-all.ts:497 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-all.ts:693 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-all.ts:695 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-all.ts:695 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-results.ts:1116 Detected that function argument `req` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-results.ts:1116 Detected that function argument `req` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-results.ts:1126 Detected that function argument `req` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-results.ts:635 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-results.ts:640 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-results.ts:640 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-results.ts:643 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-results.ts:643 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-results.ts:643 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal web/scripts/test-results.ts:825 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-results.ts:827 Detected that function argument `dirName` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename web/scripts/test-results.ts:832 Detected that function argument `dirName` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/src/app/api/dance-menu/route.ts:56 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/src/app/api/dance-menu/route.ts:58 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/typescript.react.security.audit.react-dangerouslysetinnerhtml web/src/components/StaticHtmlContent.tsx:49 Detection of dangerouslySetInnerHTML from non-constant definition. This can inadvertently expose users to cross-site scripting (XSS) attacks if this comes from user-provided input. If you have to use dangerouslySetInnerHTML, consider... Static analysis (opengrep)
medium opengrep/typescript.react.security.audit.react-dangerouslysetinnerhtml web/src/components/StaticHtmlContent.tsx:97 Detection of dangerouslySetInnerHTML from non-constant definition. This can inadvertently expose users to cross-site scripting (XSS) attacks if this comes from user-provided input. If you have to use dangerouslySetInnerHTML, consider... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/src/lib/fit-report.ts:167 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string web/src/lib/markdown-renderer.ts:433 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/e2e-real-llm.ts:354 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/e2e-real-llm.ts:600 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/e2e-real-llm.ts:600 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/smoke-gcp.ts:1557 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/smoke-gcp.ts:1557 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/smoke-gcp.ts:1767 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/smoke-gcp.ts:1767 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/smoke-gcp.ts:1866 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/smoke-gcp.ts:2254 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/scripts/smoke-gcp.ts:2254 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/app/layout.tsx:150 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/app/layout.tsx:150 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/components/StaticHtmlContent.tsx:70 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.useless-assignment web/src/components/hire-me/ChatInput.tsx:70 `textarea.style.height` is assigned twice; the first assignment is useless Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/lib/fit-report.ts:194 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/lib/fit-report.ts:194 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/lib/markdown-renderer.ts:44 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/lib/markdown-renderer.ts:44 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator web/src/lib/resume-generator.ts:169 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low zizmor/adhoc-packages .github/workflows/ci.yml:109 ad-hoc installation of packages [confidence high] CI workflows (zizmor)
low osv/GHSA-2gqq-gqf2-x968 web/package-lock.json [email protected] (npm) is affected by GHSA-2gqq-gqf2-x968 Dependencies (osv-scanner)
low osv/GHSA-35p6-xmwp-9g52 web/package-lock.json [email protected] (npm) is affected by GHSA-35p6-xmwp-9g52 Dependencies (osv-scanner)
low osv/GHSA-3g8h-86w9-wvmq web/package-lock.json [email protected] (npm) is affected by GHSA-3g8h-86w9-wvmq Dependencies (osv-scanner)
low osv/GHSA-474x-hrwr-fgx4 web/package-lock.json [email protected] (npm) is affected by GHSA-474x-hrwr-fgx4 Dependencies (osv-scanner)
low osv/GHSA-4x5r-pxfx-6jf8 web/package-lock.json @babel/[email protected] (npm) is affected by GHSA-4x5r-pxfx-6jf8 Dependencies (osv-scanner)
low osv/GHSA-8436-99hf-9mmv web/package-lock.json [email protected] (npm) is affected by GHSA-8436-99hf-9mmv Dependencies (osv-scanner)
low osv/GHSA-9jrq-w75r-8gcw web/package-lock.json [email protected] (npm) is affected by GHSA-9jrq-w75r-8gcw Dependencies (osv-scanner)
low osv/GHSA-f596-whhp-79r4 web/package-lock.json @grpc/[email protected] (npm) is affected by GHSA-f596-whhp-79r4 Dependencies (osv-scanner)
low osv/GHSA-fj3w-jwp8-x2g3 web/package-lock.json [email protected] (npm) is affected by GHSA-fj3w-jwp8-x2g3 Dependencies (osv-scanner)
low osv/GHSA-g8m3-5g58-fq7m web/package-lock.json [email protected] (npm) is affected by GHSA-g8m3-5g58-fq7m Dependencies (osv-scanner)
low osv/GHSA-jcc7-9wpm-mj36 web/package-lock.json [email protected] (npm) is affected by GHSA-jcc7-9wpm-mj36 Dependencies (osv-scanner)
low osv/GHSA-r53p-7pc4-xj5r web/package-lock.json [email protected] (npm) is affected by GHSA-r53p-7pc4-xj5r Dependencies (osv-scanner)
low osv/GHSA-vfv6-92ff-j949 web/package-lock.json [email protected] (npm) is affected by GHSA-vfv6-92ff-j949 Dependencies (osv-scanner)
low osv/GHSA-vpq2-c234-7xj6 web/package-lock.json @tootallnate/[email protected] (npm) is affected by GHSA-vpq2-c234-7xj6 Dependencies (osv-scanner)
low gitleaks/private-key web/src/lib/gcp-credentials.test.ts:7 Possible private-key secret in the current tree (test/docs/example file) Secrets (gitleaks)
info zizmor/template-injection .github/workflows/ci.yml:140 code injection via template expansion [confidence low] CI workflows (zizmor)

Tools and coverage

Every analyzer that ran on this commit. A failed or skipped tool is a coverage gap: its share of the score is left out and the coverage figure drops.

AnalyzerPillarStatusVersionFindingsNote
AI tool configurationAI provenanceoksignatures-v10
Explicit AI attributionAI provenanceoksignatures-v10
Release velocityAI provenanceskipped—0
Coding styleAI provenanceok—0
Commit velocityAI provenanceokprov-40
Findings in AI-written linesAI provenanceokgit-blame0
Complexity (lizard)Code qualityoklizard 1.25.10
DocumentationCode qualityok—0
Duplication (jscpd)Code qualityokrepotrust-dup-w60
LintCode qualityokopengrep 1.33.1; rules f1d2b562b41423
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityokzizmor 1.32.023
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.1203
Release downloadsSecurityok—0
Security postureSecurityok—0
Package registriesSecurityok—0
Static analysis (opengrep)Securityokopengrep 1.33.1; rules f1d2b562b41435
OpenSSF ScorecardSecurityskipped—0no published OpenSSF Scorecard result for this repo
Secrets (gitleaks)Securityokgitleaks 8.30.11

Score history

Scores from different scoring versions aren't directly comparable.

ScoredCommitScoringAI provenanceQualitySecurity
2026-11-14572f5ea4e698prov-5+qual-2+sec-237%6448
2026-11-14572f5ea4e698prov-4+qual-2+sec-237%6448

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/MrBesterTester/samkirk.com-v3/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/MrBesterTester/samkirk.com-v3/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/MrBesterTester/samkirk.com-v3/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/MrBesterTester/samkirk.com-v3/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/MrBesterTester/samkirk.com-v3/security.svg)](https://repotrust.synapticcyber.com/r/github.com/MrBesterTester/samkirk.com-v3/)
Full text report

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 37 explicit 95% 100%
Code quality 64 weak 90% 100%
Security 48 poor 85% 100%

AI provenance

Explicit AI attribution on 37% of first-party code added; an estimated 37% including velocity signals.

  • Explicitly attributed share (lower bound): 36.6%
  • Unattributed share in AI-consistent velocity bursts: 55.7%
  • Estimated AI-generated share: 36.6%
AI tool Attributed commits Lines added
Claude Code 367 20,861
  • AI tooling configured in repo: claude-code, cursor, generic-agent

Current source lines last changed by AI-attributed commits: 12,692 of 32,069.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.63 0.774 0.81x
Security 2.442 0.206 11.85x
  • Stylometry index: 1.56 per 1,000 lines (narrated steps 43, placeholders 2, assistant phrasing 0, emoji 6). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-02 49,850 28%
2026-03 525 100%
2026-04 104 100%
2026-07 3,205 89%
2026-08 1,073 100%
2026-09 811 100%
2026-10 1,361 100%

Evidence

  • Claude Code: trailer 'Co-Authored-By: Claude' (572f5ea4e698)
  • Claude Code: trailer 'Co-Authored-By: Claude' (224f4f1705ae)
  • Claude Code: trailer 'Co-Authored-By: Claude' (0d8573e8018e)
  • Claude Code: trailer 'Co-Authored-By: Claude' (8c0189662128)
  • Claude Code: trailer 'Co-Authored-By: Claude' (93dd3bea5435)
  • Claude Code: trailer 'Co-Authored-By: Claude' (00259d5738a1)
  • Claude Code: trailer 'Co-Authored-By: Claude' (27f21def71db)
  • Claude Code: trailer 'Co-Authored-By: Claude' (7d5072a45ecd)
  • Claude Code: trailer 'Co-Authored-By: Claude' (3bc18f010f73)
  • Claude Code: trailer 'Co-Authored-By: Claude' (a5aa61d47cad)
  • Claude Code: trailer 'Co-Authored-By: Claude' (289f5334af6d)
  • Claude Code: trailer 'Co-Authored-By: Claude' (acbbb0ee45cd)
  • Claude Code: trailer 'Co-Authored-By: Claude' (ac98381bd37b)
  • Claude Code: trailer 'Co-Authored-By: Claude' (f9bac9c07913)
  • Claude Code: trailer 'Co-Authored-By: Claude' (cbd4cdbd6d08)

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is weak: test-to-source ratio 0.56, no CI test run detected; 30% of function code in complex or long functions; 14% duplicated lines. Weakest area: docs.

Area Score
Complexity (lizard) 40
Duplication 43
Code smells (Opengrep) 93
Tests and CI 80
Documentation 40
Type safety 98
Process (Scorecard review/maintenance) n/a
  • Functions: 965; mean complexity 3.2, 90th percentile 7; 21 complex and 21 long functions
  • Duplicated lines: 14.2% of 22,816 compared
  • Tests: 18,072 test lines for 32,069 source lines (ratio 0.56); CI test commands: none detected; 36% of recent source commits also change tests
  • Docs missing or thin: license, contributing, changelog

Most complex functions:

Security

Security posture is poor: 203 known vulnerabilities in 41 dependencies; 2 high-severity SAST findings; 13 high-severity workflow issues. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 97
Static analysis (Opengrep) 89
Vulnerable dependencies (OSV) 0
CI workflows (zizmor) 6
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a
  • Known vulnerabilities: 203 in 41 packages (critical 10, high 103, medium 76, low 14)

  • Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits

Top findings

Severity Finding Location
critical osv/GHSA-7rqj-j65f-68wh: @auth/[email protected] (npm) is affected by GHSA-7rqj-j65f-68wh web/package-lock.json
critical osv/GHSA-m7jm-9gc2-mpf2: [email protected] (npm) is affected by GHSA-m7jm-9gc2-mpf2 web/package-lock.json
critical osv/GHSA-2464-fhr4-w9xw: [email protected] (npm) is affected by GHSA-2464-fhr4-w9xw web/package-lock.json
critical osv/GHSA-2xp9-vwfh-vxw4: [email protected] (npm) is affected by GHSA-2xp9-vwfh-vxw4 web/package-lock.json
critical osv/GHSA-673q-mjm6-r5xr: [email protected] (npm) is affected by GHSA-673q-mjm6-r5xr web/package-lock.json
critical osv/GHSA-p293-qw3h-jr36: [email protected] (npm) is affected by GHSA-p293-qw3h-jr36 web/package-lock.json
critical osv/GHSA-7rqj-j65f-68wh: [email protected] (npm) is affected by GHSA-7rqj-j65f-68wh web/package-lock.json
critical osv/GHSA-8fpg-xm3f-6cx3: [email protected] (npm) is affected by GHSA-8fpg-xm3f-6cx3 web/package-lock.json
critical osv/GHSA-xq3m-2v4x-88gg: [email protected] (npm) is affected by GHSA-xq3m-2v4x-88gg web/package-lock.json
critical osv/GHSA-5xrq-8626-4rwp: [email protected] (npm) is affected by GHSA-5xrq-8626-4rwp web/package-lock.json
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: process.platform === "win32"}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low] web/scripts/test-all.ts:573
high opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument suite. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] web/scripts/test-all.ts:573
high osv/GHSA-xmf8-cvqr-rfgj: @auth/[email protected] (npm) is affected by GHSA-xmf8-cvqr-rfgj web/package-lock.json
high osv/GHSA-5375-pq7m-f5r2: @grpc/[email protected] (npm) is affected by GHSA-5375-pq7m-f5r2 web/package-lock.json
high osv/GHSA-99f4-grh7-6pcq: @grpc/[email protected] (npm) is affected by GHSA-99f4-grh7-6pcq web/package-lock.json
high osv/GHSA-m9gg-hp2v-232j: @grpc/[email protected] (npm) is affected by GHSA-m9gg-hp2v-232j web/package-lock.json
high osv/GHSA-27p8-2357-5qqv: @xmldom/[email protected] (npm) is affected by GHSA-27p8-2357-5qqv web/package-lock.json
high osv/GHSA-2v35-w6hq-6mfw: @xmldom/[email protected] (npm) is affected by GHSA-2v35-w6hq-6mfw web/package-lock.json
high osv/GHSA-4w3w-2rp5-g8jm: @xmldom/[email protected] (npm) is affected by GHSA-4w3w-2rp5-g8jm web/package-lock.json
high osv/GHSA-8344-3jmq-59r6: @xmldom/[email protected] (npm) is affected by GHSA-8344-3jmq-59r6 web/package-lock.json
high osv/GHSA-93r5-fhx6-vmg9: @xmldom/[email protected] (npm) is affected by GHSA-93r5-fhx6-vmg9 web/package-lock.json
high osv/GHSA-965w-775f-mr7g: @xmldom/[email protected] (npm) is affected by GHSA-965w-775f-mr7g web/package-lock.json
high osv/GHSA-c7q8-3ch8-vqpv: @xmldom/[email protected] (npm) is affected by GHSA-c7q8-3ch8-vqpv web/package-lock.json
high osv/GHSA-f6ww-3ggp-fr8h: @xmldom/[email protected] (npm) is affected by GHSA-f6ww-3ggp-fr8h web/package-lock.json
high osv/GHSA-j759-j44w-7fr8: @xmldom/[email protected] (npm) is affected by GHSA-j759-j44w-7fr8 web/package-lock.json

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Distribution signals

  • readme-download-lure: gives an archive password

Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.

Repository profile

  • Source lines: 32,069; test lines: 18,072
Language Lines
TypeScript 49,246
Python 870
JavaScript 25