# What I released this week

- [@sdxc/activitypub](https://www.npmjs.com/package/@sdxc/activitypub)
- [@sdxc/attribution](https://www.npmjs.com/package/@sdxc/attribution)
- [@sdxc/authz](https://www.npmjs.com/package/@sdxc/authz)
- [@sdxc/backoff](https://www.npmjs.com/package/@sdxc/backoff)
- [@sdxc/billing](https://www.npmjs.com/package/@sdxc/billing)
- [@sdxc/captcha](https://www.npmjs.com/package/@sdxc/captcha)
- [@sdxc/cloudflare-mocks](https://www.npmjs.com/package/@sdxc/cloudflare-mocks)
- [@sdxc/cron](https://www.npmjs.com/package/@sdxc/cron)
- [@sdxc/crypto](https://www.npmjs.com/package/@sdxc/crypto)
- [@sdxc/dates](https://www.npmjs.com/package/@sdxc/dates)
- [@sdxc/diagram](https://www.npmjs.com/package/@sdxc/diagram)
- [@sdxc/digest-fields](https://www.npmjs.com/package/@sdxc/digest-fields)
- [@sdxc/distill](https://www.npmjs.com/package/@sdxc/distill)
- [@sdxc/doh](https://www.npmjs.com/package/@sdxc/doh)
- [@sdxc/epub](https://www.npmjs.com/package/@sdxc/epub)
- [@sdxc/expression](https://www.npmjs.com/package/@sdxc/expression)
- [@sdxc/feed](https://www.npmjs.com/package/@sdxc/feed)
- [@sdxc/flags-engine](https://www.npmjs.com/package/@sdxc/flags-engine)
- [@sdxc/get-client-ip](https://www.npmjs.com/package/@sdxc/get-client-ip)
- [@sdxc/http](https://www.npmjs.com/package/@sdxc/http)
- [@sdxc/http-signatures](https://www.npmjs.com/package/@sdxc/http-signatures)
- [@sdxc/ip](https://www.npmjs.com/package/@sdxc/ip)
- [@sdxc/jobs](https://www.npmjs.com/package/@sdxc/jobs)
- [@sdxc/jsdoc](https://www.npmjs.com/package/@sdxc/jsdoc)
- [@sdxc/jwt](https://www.npmjs.com/package/@sdxc/jwt)
- [@sdxc/lazy-frame](https://www.npmjs.com/package/@sdxc/lazy-frame)
- [@sdxc/logger](https://www.npmjs.com/package/@sdxc/logger)
- [@sdxc/mail](https://www.npmjs.com/package/@sdxc/mail)
- [@sdxc/markdown](https://www.npmjs.com/package/@sdxc/markdown)
- [@sdxc/math](https://www.npmjs.com/package/@sdxc/math)
- [@sdxc/messaging](https://www.npmjs.com/package/@sdxc/messaging)
- [@sdxc/newsletter](https://www.npmjs.com/package/@sdxc/newsletter)
- [@sdxc/no-www-middleware](https://www.npmjs.com/package/@sdxc/no-www-middleware)
- [@sdxc/outbound](https://www.npmjs.com/package/@sdxc/outbound)
- [@sdxc/qr](https://www.npmjs.com/package/@sdxc/qr)
- [@sdxc/random](https://www.npmjs.com/package/@sdxc/random)
- [@sdxc/rate-limit](https://www.npmjs.com/package/@sdxc/rate-limit)
- [@sdxc/rdap](https://www.npmjs.com/package/@sdxc/rdap)
- [@sdxc/result](https://www.npmjs.com/package/@sdxc/result)
- [@sdxc/sample](https://www.npmjs.com/package/@sdxc/sample)
- [@sdxc/search](https://www.npmjs.com/package/@sdxc/search)
- [@sdxc/seo](https://www.npmjs.com/package/@sdxc/seo)
- [@sdxc/spec](https://www.npmjs.com/package/@sdxc/spec)
- [@sdxc/ui](https://www.npmjs.com/package/@sdxc/ui)
- [@sdxc/user-agent](https://www.npmjs.com/package/@sdxc/user-agent)
- [@sdxc/web-push](https://www.npmjs.com/package/@sdxc/web-push)
- [@sdxc/webmention](https://www.npmjs.com/package/@sdxc/webmention)
- [@sdxc/websub](https://www.npmjs.com/package/@sdxc/websub)
- [@sdxc/well-known](https://www.npmjs.com/package/@sdxc/well-known)
- [@sdxc/zip](https://www.npmjs.com/package/@sdxc/zip)
- [@sdxc/zone-file](https://www.npmjs.com/package/@sdxc/zone-file)

