···11----
22-'@atcute/oauth-browser-client': major
33----
44-55-internalize implementation details and remove re-exports
66-77-**removed exports:**
88-99-- `OAuthServerAgent` class (internal)
1010-- `DPoPKey` type → use `DpopPrivateJwk` from `@atcute/oauth-crypto`
1111-- `IdentityResolver`, `ResolvedIdentity`, `ResolveIdentityOptions`, `DefaultIdentityResolverOptions`
1212- → use `ActorResolver` and related types from `@atcute/identity-resolver`
1313-- `defaultIdentityResolver` (deprecated) → use `LocalActorResolver` from `@atcute/identity-resolver`
1414-- re-exported oauth-types (`OAuthTokenResponse`, `AuthorizationServerMetadata`, `ClientMetadata`,
1515- `OAuthParResponse`, `ProtectedResourceMetadata`) → import from `@atcute/oauth-types` directly
1616-1717-**changed types:**
1818-1919-- `FetchClientAssertionParams.jkt` removed (now computed internally)
2020-2121-**stored session format:**
2222-2323-internal DPoP key format changed from `DPoPKey` to `DpopPrivateJwk`. existing sessions are
2424-automatically migrated on first access.
2525-2626-**migration:**
2727-2828-```ts
2929-// before
3030-import {
3131- type DPoPKey,
3232- type IdentityResolver,
3333- defaultIdentityResolver,
3434-} from '@atcute/oauth-browser-client';
3535-3636-// after
3737-import type { DpopPrivateJwk } from '@atcute/oauth-crypto';
3838-import { LocalActorResolver, type ActorResolver } from '@atcute/identity-resolver';
3939-```
4040-4141-types re-exported from `@atcute/oauth-types` now have an `OAuth` prefix:
4242-4343-```ts
4444-// before
4545-import type { AuthorizationServerMetadata, ClientMetadata } from '@atcute/oauth-browser-client';
4646-4747-// after
4848-import type { OAuthAuthorizationServerMetadata, OAuthClientMetadata } from '@atcute/oauth-types';
4949-```
5050-5151-custom `ClientAssertionFetcher` implementations should remove `jkt`:
5252-5353-```ts
5454-// before
5555-const fetchAssertion: ClientAssertionFetcher = async ({ jkt, aud, createDpopProof }) => {
5656- // jkt was passed to your backend
5757-};
5858-5959-// after
6060-const fetchAssertion: ClientAssertionFetcher = async ({ aud, createDpopProof }) => {
6161- // backend should compute jkt from the DPoP proof instead
6262-};
6363-```
-63
.changeset/oauth-crypto-refactor-node-client.md
···11----
22-'@atcute/oauth-node-client': major
33----
44-55-refactor key management to use `@atcute/oauth-crypto`
66-77-key generation and PKCS#8 import now return JWKs directly - no separate import step needed. keys are
88-imported and cached transparently when first used for signing.
99-1010-**renamed exports:**
1111-1212-| before | after |
1313-| -------------------- | ---------------------------- |
1414-| `generatePrivateKey` | `generateClientAssertionKey` |
1515-| `importPkcs8Key` | `importClientAssertionPkcs8` |
1616-1717-**removed exports:**
1818-1919-- `importJwkKey` - JWKs can now be used directly without importing
2020-- `exportJwkKey` - `generateClientAssertionKey` already returns a JWK
2121-2222-**renamed types:**
2323-2424-| before | after |
2525-| ------------ | --------------------------- |
2626-| `PrivateKey` | `ClientAssertionPrivateJwk` |
2727-2828-**removed types:**
2929-3030-- `ImportKeyOptions` - key import functions now have a simpler signature
3131-- `SigningAlgorithm` - import from `@atcute/oauth-crypto` if needed
3232-3333-**migration:**
3434-3535-```ts
3636-// before
3737-import {
3838- generatePrivateKey,
3939- importJwkKey,
4040- exportJwkKey,
4141- type PrivateKey,
4242-} from '@atcute/oauth-node-client';
4343-4444-const key = await generatePrivateKey('main', 'ES256');
4545-const jwk = await exportJwkKey(key);
4646-const imported = await importJwkKey(jwk);
4747-const keyset = new Keyset([imported]);
4848-4949-// after
5050-import {
5151- generateClientAssertionKey,
5252- type ClientAssertionPrivateJwk,
5353-} from '@atcute/oauth-node-client';
5454-5555-// generateClientAssertionKey returns a JWK directly
5656-const jwk = await generateClientAssertionKey('main', 'ES256');
5757-// JWKs can be used directly - no import step needed
5858-const keyset = new Keyset([jwk]);
5959-6060-// loading from environment/storage:
6161-const storedJwk = JSON.parse(process.env.PRIVATE_KEY_JWK!) as ClientAssertionPrivateJwk;
6262-const keyset = new Keyset([storedJwk]);
6363-```
-5
.changeset/rare-banks-design.md
···11----
22-'@atcute/oauth-browser-client': patch
33----
44-55-make use of @atcute/oauth-types
-5
.changeset/real-gifts-learn.md
···11----
22-'@atcute/lexicon-doc': minor
33----
44-55-include lexicon ref parsing utilities