34 releases measured. Default branch at 2c32559a, 2026-10-19, 10 files.

Source lines
2,031
+207.3% in a year
Maintainability index
50.8
+3.7 in a year
Mean CC per function
3.72
Functions with CC > 20
0
of 158
Size

Lines of code, comments and blank lines left out

Maintainability index

Mean over functions, weighted by their lines. Higher is better

Cyclomatic complexity per function

Lower is better

Hard to maintain

Share of functions, and of function code, past the usual limits. Lower is better

Least maintainable functions now

Function Location MI CC Lines
createCertificate src/acme-client.ts:583 28.9 19 90
acquireCert src/certs.ts:627 35.2 15 55
satisfyAuthorization src/acme-client.ts:719 35.3 15 54
orderCert src/certs.ts:736 37.0 10 53
constructor src/certs.ts:277 37.9 13 48
readCertificateIdentifiers src/der.ts:192 40.9 14 37
routeHandler src/certs.ts:844 41.8 5 42
validateDomain src/certs.ts:485 41.9 10 36
signedRequest src/acme-client.ts:499 42.2 14 33
getRenewalInfo src/acme-client.ts:876 42.7 14 32
setCertificateData src/certs.ts:566 43.3 10 31
getAcmeAccount src/certs.ts:386 43.7 3 33
readTlv src/der.ts:135 44.9 9 30
renewalInfoState src/tools.ts:114 45.5 14 25
createCsr src/der.ts:256 46.1 9 23
Every measured release 34
Release Date Files Source lines Functions MI Mean CC P90 CC Max CC CC > 10 CC > 20
v2.0.0 2026-10-19 10 2,031 158 50.8 3.72 9 19 8 0
v1.4.7 2026-10-19 9 1,696 155 51.3 3.73 9 20 10 0
v1.4.6 2026-10-18 9 1,696 155 51.3 3.73 9 20 10 0
v1.4.5 2026-10-16 9 1,696 155 51.3 3.73 9 20 10 0
v1.4.4 2026-09-28 9 1,675 151 51.3 3.77 9 19 10 0
v1.4.3 2026-09-27 9 1,568 141 51.7 3.75 9 16 10 0
v1.4.2 2026-09-11 9 1,568 141 51.7 3.75 9 16 10 0
v1.4.1 2026-09-10 9 1,568 141 51.7 3.75 9 16 10 0
v1.4.0 2026-09-09 9 1,555 141 51.8 3.73 9 16 10 0
v1.3.0 2026-09-08 9 1,542 139 51.8 3.75 9 14 10 0
v1.2.1 2026-09-08 9 1,499 137 51.8 3.73 9 14 10 0
v1.2.0 2026-09-08 9 1,391 126 51.5 3.76 9 14 8 0
v1.1.1 2026-09-07 6 751 55 47.8 3.73 8 25 4 1
v1.1.0 2026-09-05 6 751 55 47.8 3.73 8 25 4 1
v1.0.19 2026-08-31 5 718 53 47.7 3.66 8 25 4 1
v1.0.18 2026-08-24 5 693 50 47.5 3.70 8 26 4 1
v1.0.17 2026-08-12 5 693 50 47.5 3.70 8 26 4 1
v1.0.16 2026-07-20 4 661 47 47.1 3.70 8 26 4 1
v1.0.15 2026-06-13 4 661 47 47.1 3.70 8 26 4 1
v1.0.14 2026-03-23 4 661 47 47.1 3.70 8 26 4 1
v1.0.13 2026-03-23 4 661 47 47.1 3.70 8 26 4 1
v1.0.12 2025-09-29 4 661 47 47.1 3.70 8 26 4 1
v1.0.11 2024-09-08 4 661 47 47.1 3.70 8 26 4 1
v1.0.10 2024-07-03 4 661 47 47.1 3.70 8 26 4 1
v1.0.9 2024-04-12 4 661 47 47.1 3.70 8 26 4 1
v1.0.8 2024-02-29 4 661 47 47.1 3.70 8 26 4 1
v1.0.7 2023-10-31 4 661 47 47.1 3.70 8 26 4 1
v1.0.6 2023-10-20 4 661 47 47.1 3.70 8 26 4 1
v1.0.5 2023-08-29 4 661 47 47.1 3.70 8 26 4 1
v1.0.4 2023-04-10 4 661 47 47.1 3.70 8 26 4 1
v1.0.3 2022-11-18 4 661 47 47.1 3.70 8 26 4 1
v1.0.2 2022-06-27 4 661 47 47.1 3.70 8 26 4 1
v1.0.1 2022-06-26 4 607 43 47.6 3.67 8 22 3 1
v1.0.0 2022-06-25 4 604 43 47.6 3.65 8 22 3 1
How the numbers are made

Library source only: lib/, src/, workers/, bin/ and top-level source files. Tests, examples, tooling, type declarations and generated or minified files are left out.

Source lines are lines carrying code, with blank lines and comments dropped.

Cyclomatic complexity (CC) counts the independent paths through a function: 1 plus every if, loop, case, catch, ternary, && / || / ??, optional chain and default parameter. Above 10 a function is commonly considered hard to test, above 20 hard to understand.

Maintainability index (MI) is computed per function as max(0, (171 - 5.2 ln(Halstead volume) - 0.23 CC - 16.2 ln(lines)) * 100 / 171), the 0 to 100 scale Visual Studio uses, where below 20 is poor. The repository figure weights each function by its lines. Code outside any function (lookup tables, schemas, declarations) counts toward size only. MI is driven mostly by size, so read it as a trend, not a grade.

A move from JavaScript to TypeScript adds type annotations to every function, which raises the Halstead volume and lowers MI without the logic changing. Expect a step at that release.

Measured Mon, 19 Oct 2026 19:28:19 GMT.