File Size Overall
  • There are 31 files with 1,234 lines of code.
    • 0 very long files (0 lines of code)
    • 0 long files (0 lines of code)
    • 1 medium size files (205 lines of code)
    • 3 small files (351 lines of code)
    • 27 very small files (678 lines of code)
0% | 0% | 16% | 28% | 54%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: grouped by folders | grouped by size | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
js0% | 0% | 100% | 0% | 0%
scala0% | 0% | 0% | 26% | 73%
html0% | 0% | 0% | 100% | 0%
xml0% | 0% | 0% | 0% | 100%
yaml0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
example0% | 0% | 41% | 22% | 35%
src0% | 0% | 0% | 32% | 67%
.github0% | 0% | 0% | 0% | 100%
Longest Files (Top 31)
File# lines# units
passkey.js
in example/public/javascripts
205 24
PasskeyVerificationServiceImpl.scala
in src/main/scala/com/gu/playpasskeyauth/services
137 4
index.scala.html
in example/app/views
110 -
JsonEncodings.scala
in src/main/scala/com/gu/playpasskeyauth/models
104 1
PasskeyController.scala
in src/main/scala/com/gu/playpasskeyauth/controllers
99 7
WebAuthnConfig.scala
in src/main/scala/com/gu/playpasskeyauth/models
77 1
PasskeyModule.scala
in example/app/modules
41 2
PasskeyAuth.scala
in src/main/scala/com/gu/playpasskeyauth
38 2
InMemoryChallengeRepository.scala
in example/app/services
37 3
InMemoryPasskeyRepository.scala
in example/app/services
33 4
Passkey.scala
in src/main/scala/com/gu/playpasskeyauth/models
33 1
PasskeyName.scala
in src/main/scala/com/gu/playpasskeyauth/models
33 3
PasskeyController.scala
in example/app/controllers
32 1
RequestWithCreationData.scala
in src/main/scala/com/gu/playpasskeyauth/web
31 1
PasskeyVerificationFilter.scala
in src/main/scala/com/gu/playpasskeyauth/filters
30 1
RequestWithAuthenticationData.scala
in src/main/scala/com/gu/playpasskeyauth/web
25 1
PasskeyId.scala
in src/main/scala/com/gu/playpasskeyauth/models
20 3
PasskeyError.scala
in src/main/scala/com/gu/playpasskeyauth/services
15 -
RequestWithUser.scala
in src/main/scala/com/gu/playpasskeyauth/web
14 -
logback.xml
in example/conf
13 -
HostApp.scala
in src/main/scala/com/gu/playpasskeyauth/models
13 -
PasskeyVerificationService.scala
in src/main/scala/com/gu/playpasskeyauth/services
13 -
User.scala
in example/app/models
12 -
PasskeyAuthContext.scala
in src/main/scala/com/gu/playpasskeyauth
12 -
PasskeyUser.scala
in src/main/scala/com/gu/playpasskeyauth/models
10 -
PasskeyChallengeRepository.scala
in src/main/scala/com/gu/playpasskeyauth/services
10 -
HomeController.scala
in example/app/controllers
9 1
PasskeyRepository.scala
in src/main/scala/com/gu/playpasskeyauth/services
9 -
dependabot.yml
in .github
8 -
UserId.scala
in src/main/scala/com/gu/playpasskeyauth/models
6 -
ChallengeType.scala
in src/main/scala/com/gu/playpasskeyauth/services
5 -
Large Files That Change Often (Top 20)
To change a file, an AI coding agent (or a person) has to read it: these files are read the most for the changes in the past year (lines × changes).
File# lines≈ tokens
to read
# changes
(1y)
≈ lines edited
per change
lines read per
line changed
PasskeyVerificationServiceImpl.scala
in src/main/scala/com/gu/playpasskeyauth/services
137 ~700–2k 20 ~20 ~5
PasskeyController.scala
in src/main/scala/com/gu/playpasskeyauth/controllers
99 ~500–1.5k 8 ~50 ~2
JsonEncodings.scala
in src/main/scala/com/gu/playpasskeyauth/models
104 ~700–1.5k 5 ~30 ~3
PasskeyAuth.scala
in src/main/scala/com/gu/playpasskeyauth
38 under 1k 11 ~30 ~2
passkey.js
in example/public/javascripts
205 ~1k–3k 2 ~150 ~2
WebAuthnConfig.scala
in src/main/scala/com/gu/playpasskeyauth/models
77 ~500–1.5k 5 ~30 ~2
PasskeyVerificationFilter.scala
in src/main/scala/com/gu/playpasskeyauth/filters
30 under 1k 7 ~15 ~2
PasskeyName.scala
in src/main/scala/com/gu/playpasskeyauth/models
33 under 1k 6 ~30 ~2
RequestWithCreationData.scala
in src/main/scala/com/gu/playpasskeyauth/web
31 under 1k 6 ~50 ~1
RequestWithAuthenticationData.scala
in src/main/scala/com/gu/playpasskeyauth/web
25 under 1k 6 ~30 ~1
index.scala.html
in example/app/views
110 ~700–2k 1 ~100 ~1
PasskeyVerificationService.scala
in src/main/scala/com/gu/playpasskeyauth/services
13 under 1k 8 ~10 ~1
PasskeyModule.scala
in example/app/modules
41 under 1k 2 ~70 ~1
PasskeyId.scala
in src/main/scala/com/gu/playpasskeyauth/models
20 under 1k 4 ~30 ~1
InMemoryChallengeRepository.scala
in example/app/services
37 under 1k 2 ~70 ~1
PasskeyRepository.scala
in src/main/scala/com/gu/playpasskeyauth/services
9 under 1k 8 ~30 ~0
RequestWithUser.scala
in src/main/scala/com/gu/playpasskeyauth/web
14 under 1k 5 ~30 ~0
PasskeyController.scala
in example/app/controllers
32 under 1k 2 ~50 ~1
PasskeyUser.scala
in src/main/scala/com/gu/playpasskeyauth/models
10 under 1k 5 ~15 ~1
PasskeyError.scala
in src/main/scala/com/gu/playpasskeyauth/services
15 under 1k 3 ~10 ~1

Tokens are lines × 7 to 14 (analysis.fileReadsForChanges). Lines edited per change are the file's lines added and deleted divided by its commits over the whole history. Agents read about 2,000 lines at a time: when a 17,000-line file was split into modules, the tokens an agent read for the same change fell by 83% (The Economic Benefit of Refactoring, 2026).

Files With Most Units (Top 17)
File# lines# units
passkey.js
in example/public/javascripts
205 24
PasskeyController.scala
in src/main/scala/com/gu/playpasskeyauth/controllers
99 7
InMemoryPasskeyRepository.scala
in example/app/services
33 4
PasskeyVerificationServiceImpl.scala
in src/main/scala/com/gu/playpasskeyauth/services
137 4
InMemoryChallengeRepository.scala
in example/app/services
37 3
PasskeyId.scala
in src/main/scala/com/gu/playpasskeyauth/models
20 3
PasskeyName.scala
in src/main/scala/com/gu/playpasskeyauth/models
33 3
PasskeyModule.scala
in example/app/modules
41 2
PasskeyAuth.scala
in src/main/scala/com/gu/playpasskeyauth
38 2
HomeController.scala
in example/app/controllers
9 1
PasskeyController.scala
in example/app/controllers
32 1
PasskeyVerificationFilter.scala
in src/main/scala/com/gu/playpasskeyauth/filters
30 1
RequestWithCreationData.scala
in src/main/scala/com/gu/playpasskeyauth/web
31 1
RequestWithAuthenticationData.scala
in src/main/scala/com/gu/playpasskeyauth/web
25 1
Passkey.scala
in src/main/scala/com/gu/playpasskeyauth/models
33 1
WebAuthnConfig.scala
in src/main/scala/com/gu/playpasskeyauth/models
77 1
JsonEncodings.scala
in src/main/scala/com/gu/playpasskeyauth/models
104 1
Files With Long Lines (Top 0)

There are 0 files with lines longer than 120 characters. In total, there are 0 long lines.

File# lines# units# long lines
Correlations

File Size vs. Commits (all time): 31 points

example/app/controllers/PasskeyController.scala x: 2 commits (all time) y: 32 lines of code example/app/models/User.scala x: 2 commits (all time) y: 12 lines of code example/app/modules/PasskeyModule.scala x: 2 commits (all time) y: 41 lines of code example/app/services/InMemoryChallengeRepository.scala x: 2 commits (all time) y: 37 lines of code example/public/javascripts/passkey.js x: 2 commits (all time) y: 205 lines of code src/main/scala/com/gu/playpasskeyauth/PasskeyAuth.scala x: 17 commits (all time) y: 38 lines of code src/main/scala/com/gu/playpasskeyauth/controllers/PasskeyController.scala x: 12 commits (all time) y: 99 lines of code src/main/scala/com/gu/playpasskeyauth/filters/PasskeyVerificationFilter.scala x: 15 commits (all time) y: 30 lines of code src/main/scala/com/gu/playpasskeyauth/models/JsonEncodings.scala x: 7 commits (all time) y: 104 lines of code src/main/scala/com/gu/playpasskeyauth/models/PasskeyName.scala x: 6 commits (all time) y: 33 lines of code src/main/scala/com/gu/playpasskeyauth/models/PasskeyUser.scala x: 5 commits (all time) y: 10 lines of code src/main/scala/com/gu/playpasskeyauth/models/UserId.scala x: 5 commits (all time) y: 6 lines of code src/main/scala/com/gu/playpasskeyauth/models/WebAuthnConfig.scala x: 5 commits (all time) y: 77 lines of code src/main/scala/com/gu/playpasskeyauth/services/ChallengeType.scala x: 1 commits (all time) y: 5 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyChallengeRepository.scala x: 9 commits (all time) y: 10 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyVerificationService.scala x: 17 commits (all time) y: 13 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyVerificationServiceImpl.scala x: 34 commits (all time) y: 137 lines of code src/main/scala/com/gu/playpasskeyauth/web/RequestWithAuthenticationData.scala x: 7 commits (all time) y: 25 lines of code src/main/scala/com/gu/playpasskeyauth/web/RequestWithCreationData.scala x: 7 commits (all time) y: 31 lines of code src/main/scala/com/gu/playpasskeyauth/web/RequestWithUser.scala x: 5 commits (all time) y: 14 lines of code .github/dependabot.yml x: 2 commits (all time) y: 8 lines of code example/app/controllers/HomeController.scala x: 1 commits (all time) y: 9 lines of code example/app/services/InMemoryPasskeyRepository.scala x: 1 commits (all time) y: 33 lines of code example/app/views/index.scala.html x: 1 commits (all time) y: 110 lines of code example/conf/logback.xml x: 1 commits (all time) y: 13 lines of code src/main/scala/com/gu/playpasskeyauth/models/PasskeyId.scala x: 4 commits (all time) y: 20 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyRepository.scala x: 13 commits (all time) y: 9 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyError.scala x: 3 commits (all time) y: 15 lines of code src/main/scala/com/gu/playpasskeyauth/models/HostApp.scala x: 4 commits (all time) y: 13 lines of code
205.0
lines of code
  min: 5.0
  average: 39.81
  25th percentile: 12.0
  median: 25.0
  75th percentile: 38.0
  max: 205.0
0 34.0
commits (all time)
min: 1.0 | average: 6.29 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 7.0 | max: 34.0

File Size vs. Contributors (all time): 31 points

example/app/controllers/PasskeyController.scala x: 1 contributors (all time) y: 32 lines of code example/app/models/User.scala x: 1 contributors (all time) y: 12 lines of code example/app/modules/PasskeyModule.scala x: 1 contributors (all time) y: 41 lines of code example/app/services/InMemoryChallengeRepository.scala x: 1 contributors (all time) y: 37 lines of code example/public/javascripts/passkey.js x: 1 contributors (all time) y: 205 lines of code src/main/scala/com/gu/playpasskeyauth/PasskeyAuth.scala x: 1 contributors (all time) y: 38 lines of code src/main/scala/com/gu/playpasskeyauth/controllers/PasskeyController.scala x: 1 contributors (all time) y: 99 lines of code src/main/scala/com/gu/playpasskeyauth/filters/PasskeyVerificationFilter.scala x: 1 contributors (all time) y: 30 lines of code src/main/scala/com/gu/playpasskeyauth/models/JsonEncodings.scala x: 1 contributors (all time) y: 104 lines of code src/main/scala/com/gu/playpasskeyauth/models/PasskeyName.scala x: 1 contributors (all time) y: 33 lines of code src/main/scala/com/gu/playpasskeyauth/models/PasskeyUser.scala x: 1 contributors (all time) y: 10 lines of code src/main/scala/com/gu/playpasskeyauth/models/UserId.scala x: 1 contributors (all time) y: 6 lines of code src/main/scala/com/gu/playpasskeyauth/models/WebAuthnConfig.scala x: 1 contributors (all time) y: 77 lines of code src/main/scala/com/gu/playpasskeyauth/services/ChallengeType.scala x: 1 contributors (all time) y: 5 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyVerificationService.scala x: 1 contributors (all time) y: 13 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyVerificationServiceImpl.scala x: 1 contributors (all time) y: 137 lines of code src/main/scala/com/gu/playpasskeyauth/web/RequestWithAuthenticationData.scala x: 1 contributors (all time) y: 25 lines of code src/main/scala/com/gu/playpasskeyauth/web/RequestWithCreationData.scala x: 1 contributors (all time) y: 31 lines of code src/main/scala/com/gu/playpasskeyauth/web/RequestWithUser.scala x: 1 contributors (all time) y: 14 lines of code .github/dependabot.yml x: 1 contributors (all time) y: 8 lines of code example/app/controllers/HomeController.scala x: 1 contributors (all time) y: 9 lines of code example/app/views/index.scala.html x: 1 contributors (all time) y: 110 lines of code src/main/scala/com/gu/playpasskeyauth/models/PasskeyId.scala x: 1 contributors (all time) y: 20 lines of code src/main/scala/com/gu/playpasskeyauth/services/PasskeyError.scala x: 1 contributors (all time) y: 15 lines of code
205.0
lines of code
  min: 5.0
  average: 39.81
  25th percentile: 12.0
  median: 25.0
  75th percentile: 38.0
  max: 205.0
0 1.0
contributors (all time)
min: 1.0 | average: 1.0 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 1.0

File Size vs. Commits (30 days): 0 points

No data for "commits (30d)" vs. "lines of code".

File Size vs. Contributors (30 days): 0 points

No data for "contributors (30d)" vs. "lines of code".


File Size vs. Commits (90 days): 0 points

No data for "commits (90d)" vs. "lines of code".

File Size vs. Contributors (90 days): 0 points

No data for "contributors (90d)" vs. "lines of code".

About This Analysis
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...