# What I released this week

- [@sdxc/activitypub](https://www.npmjs.com/package/@sdxc/activitypub)
- [@sdxc/assets-middleware](https://www.npmjs.com/package/@sdxc/assets-middleware)
- [@sdxc/atom](https://www.npmjs.com/package/@sdxc/atom)
- [@sdxc/attribution](https://www.npmjs.com/package/@sdxc/attribution)
- [@sdxc/auth](https://www.npmjs.com/package/@sdxc/auth)
- [@sdxc/authz](https://www.npmjs.com/package/@sdxc/authz)
- [@sdxc/billing](https://www.npmjs.com/package/@sdxc/billing)
- [@sdxc/bracket-params](https://www.npmjs.com/package/@sdxc/bracket-params)
- [@sdxc/cache](https://www.npmjs.com/package/@sdxc/cache)
- [@sdxc/captcha](https://www.npmjs.com/package/@sdxc/captcha)
- [@sdxc/catch-response-middleware](https://www.npmjs.com/package/@sdxc/catch-response-middleware)
- [@sdxc/cbor](https://www.npmjs.com/package/@sdxc/cbor)
- [@sdxc/cli](https://www.npmjs.com/package/@sdxc/cli)
- [@sdxc/cloudflare-mocks](https://www.npmjs.com/package/@sdxc/cloudflare-mocks)
- [@sdxc/codemod](https://www.npmjs.com/package/@sdxc/codemod)
- [@sdxc/data-model](https://www.npmjs.com/package/@sdxc/data-model)
- [@sdxc/data-table-d1](https://www.npmjs.com/package/@sdxc/data-table-d1)
- [@sdxc/data-table-sqlstorage](https://www.npmjs.com/package/@sdxc/data-table-sqlstorage)
- [@sdxc/database-middleware](https://www.npmjs.com/package/@sdxc/database-middleware)
- [@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/email-auth](https://www.npmjs.com/package/@sdxc/email-auth)
- [@sdxc/expression](https://www.npmjs.com/package/@sdxc/expression)
- [@sdxc/feed](https://www.npmjs.com/package/@sdxc/feed)
- [@sdxc/file-storage-r2](https://www.npmjs.com/package/@sdxc/file-storage-r2)
- [@sdxc/flags](https://www.npmjs.com/package/@sdxc/flags)
- [@sdxc/flags-engine](https://www.npmjs.com/package/@sdxc/flags-engine)
- [@sdxc/font](https://www.npmjs.com/package/@sdxc/font)
- [@sdxc/get-client-ip](https://www.npmjs.com/package/@sdxc/get-client-ip)
- [@sdxc/health](https://www.npmjs.com/package/@sdxc/health)
- [@sdxc/highlight](https://www.npmjs.com/package/@sdxc/highlight)
- [@sdxc/honeypot](https://www.npmjs.com/package/@sdxc/honeypot)
- [@sdxc/hostname](https://www.npmjs.com/package/@sdxc/hostname)
- [@sdxc/html](https://www.npmjs.com/package/@sdxc/html)
- [@sdxc/http](https://www.npmjs.com/package/@sdxc/http)
- [@sdxc/http-signatures](https://www.npmjs.com/package/@sdxc/http-signatures)
- [@sdxc/i18n](https://www.npmjs.com/package/@sdxc/i18n)
- [@sdxc/icons](https://www.npmjs.com/package/@sdxc/icons)
- [@sdxc/idempotency](https://www.npmjs.com/package/@sdxc/idempotency)
- [@sdxc/jmap](https://www.npmjs.com/package/@sdxc/jmap)
- [@sdxc/jobs](https://www.npmjs.com/package/@sdxc/jobs)
- [@sdxc/jscalendar](https://www.npmjs.com/package/@sdxc/jscalendar)
- [@sdxc/jscontact](https://www.npmjs.com/package/@sdxc/jscontact)
- [@sdxc/json-canonical](https://www.npmjs.com/package/@sdxc/json-canonical)
- [@sdxc/json-feed](https://www.npmjs.com/package/@sdxc/json-feed)
- [@sdxc/json-patch](https://www.npmjs.com/package/@sdxc/json-patch)
- [@sdxc/json-schema](https://www.npmjs.com/package/@sdxc/json-schema)
- [@sdxc/jsonl](https://www.npmjs.com/package/@sdxc/jsonl)
- [@sdxc/jsonpath](https://www.npmjs.com/package/@sdxc/jsonpath)
- [@sdxc/jwt](https://www.npmjs.com/package/@sdxc/jwt)
- [@sdxc/kit](https://www.npmjs.com/package/@sdxc/kit)
- [@sdxc/lazy-frame](https://www.npmjs.com/package/@sdxc/lazy-frame)
- [@sdxc/lazy-route](https://www.npmjs.com/package/@sdxc/lazy-route)
- [@sdxc/link-header](https://www.npmjs.com/package/@sdxc/link-header)
- [@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/mcp](https://www.npmjs.com/package/@sdxc/mcp)
- [@sdxc/merge-patch](https://www.npmjs.com/package/@sdxc/merge-patch)
- [@sdxc/messaging](https://www.npmjs.com/package/@sdxc/messaging)
- [@sdxc/microformats](https://www.npmjs.com/package/@sdxc/microformats)
- [@sdxc/micropub](https://www.npmjs.com/package/@sdxc/micropub)
- [@sdxc/newsletter](https://www.npmjs.com/package/@sdxc/newsletter)
- [@sdxc/no-www-middleware](https://www.npmjs.com/package/@sdxc/no-www-middleware)
- [@sdxc/openapi](https://www.npmjs.com/package/@sdxc/openapi)
- [@sdxc/openpgp](https://www.npmjs.com/package/@sdxc/openpgp)
- [@sdxc/outbound](https://www.npmjs.com/package/@sdxc/outbound)
- [@sdxc/pagination](https://www.npmjs.com/package/@sdxc/pagination)
- [@sdxc/passkey](https://www.npmjs.com/package/@sdxc/passkey)
- [@sdxc/pdf](https://www.npmjs.com/package/@sdxc/pdf)
- [@sdxc/privacy-pass](https://www.npmjs.com/package/@sdxc/privacy-pass)
- [@sdxc/problem](https://www.npmjs.com/package/@sdxc/problem)
- [@sdxc/qr](https://www.npmjs.com/package/@sdxc/qr)
- [@sdxc/random](https://www.npmjs.com/package/@sdxc/random)
- [@sdxc/raster](https://www.npmjs.com/package/@sdxc/raster)
- [@sdxc/rate-limit](https://www.npmjs.com/package/@sdxc/rate-limit)
- [@sdxc/rdap](https://www.npmjs.com/package/@sdxc/rdap)
- [@sdxc/robots](https://www.npmjs.com/package/@sdxc/robots)
- [@sdxc/rss](https://www.npmjs.com/package/@sdxc/rss)
- [@sdxc/scim](https://www.npmjs.com/package/@sdxc/scim)
- [@sdxc/scitt](https://www.npmjs.com/package/@sdxc/scitt)
- [@sdxc/search](https://www.npmjs.com/package/@sdxc/search)
- [@sdxc/security-headers](https://www.npmjs.com/package/@sdxc/security-headers)
- [@sdxc/seo](https://www.npmjs.com/package/@sdxc/seo)
- [@sdxc/session-storage-kv](https://www.npmjs.com/package/@sdxc/session-storage-kv)
- [@sdxc/sitemap](https://www.npmjs.com/package/@sdxc/sitemap)
- [@sdxc/spam](https://www.npmjs.com/package/@sdxc/spam)
- [@sdxc/spec](https://www.npmjs.com/package/@sdxc/spec)
- [@sdxc/structured-fields](https://www.npmjs.com/package/@sdxc/structured-fields)
- [@sdxc/trace-context](https://www.npmjs.com/package/@sdxc/trace-context)
- [@sdxc/trailing-slash-middleware](https://www.npmjs.com/package/@sdxc/trailing-slash-middleware)
- [@sdxc/u](https://www.npmjs.com/package/@sdxc/u)
- [@sdxc/ui](https://www.npmjs.com/package/@sdxc/ui)
- [@sdxc/uri-template](https://www.npmjs.com/package/@sdxc/uri-template)
- [@sdxc/user-agent](https://www.npmjs.com/package/@sdxc/user-agent)
- [@sdxc/validate](https://www.npmjs.com/package/@sdxc/validate)
- [@sdxc/web-push](https://www.npmjs.com/package/@sdxc/web-push)
- [@sdxc/webhooks](https://www.npmjs.com/package/@sdxc/webhooks)
- [@sdxc/well-known](https://www.npmjs.com/package/@sdxc/well-known)
- [@sdxc/workers-cache](https://www.npmjs.com/package/@sdxc/workers-cache)
- [@sdxc/x402](https://www.npmjs.com/package/@sdxc/x402)
- [@sdxc/zone-file](https://www.npmjs.com/package/@sdxc/zone-file)

