···2020#### with XRPC router
21212222```ts
2323-import {
2424- buildClientMetadata,
2525- generatePrivateKey,
2626- Keyset,
2727- registerCab,
2828-} from '@atcute/oauth-cab/server';
2323+import { buildClientMetadata, generatePrivateKey, Keyset, registerCab } from '@atcute/oauth-cab/server';
2924import { XRPCRouter, cors } from '@atcute/xrpc-server';
30253126const keyset = new Keyset([await generatePrivateKey('my-key')]);
···7267#### standalone handler
73687469```ts
7575-import {
7676- buildClientMetadata,
7777- createCabHandler,
7878- generatePrivateKey,
7979- Keyset,
8080-} from '@atcute/oauth-cab/server';
7070+import { buildClientMetadata, createCabHandler, generatePrivateKey, Keyset } from '@atcute/oauth-cab/server';
81718272// create keyset
8373const keyset = new Keyset([await generatePrivateKey('my-key')]);
+2-1
packages/oauth/cab/lib/server/index.ts
···1515 buildClientMetadata,
1616 CLIENT_ASSERTION_TYPE_JWT_BEARER,
1717 FALLBACK_ALG,
1818+ scope,
1819 type AtprotoAuthorizationServerMetadata,
1920 type AtprotoProtectedResourceMetadata,
2021 type ConfidentialClientMetadata,
···2930 type ClientAssertionResult,
3031 type CreateClientAssertionOptions,
3132} from './client-assertion.js';
3333+export type { DpopSecret } from './dpop-nonce.js';
3234export {
3335 computeJktFromJwk,
3436 DPoPVerifyError,
···3840 type DPoPVerifyResult,
3941} from './dpop-verifier.js';
4042export { createCabHandler, registerCab, type CabOptions } from './handler.js';
4141-export type { DpopSecret } from './dpop-nonce.js';
+1-1
packages/oauth/node-client/lib/index.ts
···1515 buildClientMetadata,
1616 CLIENT_ASSERTION_TYPE_JWT_BEARER,
1717 FALLBACK_ALG,
1818+ scope,
1819 type AtprotoAuthorizationServerMetadata,
1920 type AtprotoProtectedResourceMetadata,
2021 type ConfidentialClientMetadata,
···2425 type OAuthResponseMode,
2526} from '@atcute/oauth-types';
26272727-export * as scope from './scope.js';
2828export {
2929 OAuthClient,
3030 type AuthorizationResult,