Skip to content

chore(release): 0.12.0 — trusted-proxy client IP - #27

Merged
cport1 merged 1 commit into
mainfrom
chore/release-0.12.0
Aug 22, 2026
Merged

chore(release): 0.12.0 — trusted-proxy client IP#27
cport1 merged 1 commit into
mainfrom
chore/release-0.12.0

Conversation

@cport1

@cport1 cport1 commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Rolls [Unreleased] to [0.12.0] and bumps all five workspaces plus the @webdecoy/node dependency ranges in the three adapters.

Minor, not patch. The client IP now comes from the peer address unless the app declares how many proxies wrote the forwarding header (#24). An Express app behind an unconfigured proxy, or a Next.js app behind two, resolves a different address than it did in 0.11.1 — which changes what rate limits key on and what address lands on a detection. That is a behaviour change, and the changelog leads with what to set.

Contents:

  • fix(sdk): stop taking the client IP from a header the client writes #24 — the client IP is no longer taken from a header the client writes. New trustProxy on every adapter and on the captcha endpoints; resolveClientIp() / normalizeIp() / ipInCidr() exported.
  • chore: make lint actually run #26 — the eslint config the repo never had, plus two client-side corrections that fell out of it. The one worth knowing: _measureJSExecution() had a loop whose result was discarded and could legally be optimised away, driving mathOps toward zero and tripping the "JS execution unusually fast" automation signal on an ordinary browser.

Publishing is on the v0.12.0 tag, pushed after this merges.

Verified: npm run build, npm run lint, npm test (306), npm run check:edge all pass.

A minor bump rather than a patch: the client IP now comes from the peer
address unless the app declares how many proxies wrote the forwarding
header, so an Express app behind an unconfigured proxy, or a Next.js app
behind two, resolves a different address than it did in 0.11.1.

Also carries the eslint config the repo never had, and two client-side
corrections that fell out of it -- most notably a benchmark loop that
could be optimised away, which drove mathOps toward zero and tripped the
"JS execution unusually fast" automation signal on ordinary browsers.
@cport1
cport1 merged commit 45c3796 into main Aug 22, 2026
2 checks passed
@cport1
cport1 deleted the chore/release-0.12.0 branch August 22, 2026 01:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant