v2.0.0-beta.1
Pre-release
Pre-release
- feat!: unify the SDK with the Seam SDKs for other languages (cc0e93f)
Features
- add SeamWebhook for verifying webhook events (bb387dd)
BREAKING CHANGES
- The SDK is rebuilt on the shared Seam SDK architecture
as v2. The RestSharp/Newtonsoft runtime is replaced by System.Net.Http
and System.Text.Json with no third-party dependencies, and the public
surface changes throughout.
Added
- Personal access token authentication with a workspace id, and a
SeamWithoutWorkspaceClient for listing and creating workspaces. - Environment configuration: SEAM_API_KEY, SEAM_PERSONAL_ACCESS_TOKEN,
SEAM_WORKSPACE_ID, and SEAM_ENDPOINT, consulted only when no
credential is passed explicitly. - Token format validation with specific errors for the wrong kind of
token. - Static factories: SeamClient.FromApiKey, FromPersonalAccessToken, and
FromHttpClient for a fully preconfigured client. - Retries: idempotent requests retry twice on transport errors,
timeouts, 429, and 5xx with exponential backoff and jitter, honoring
Retry-After; POST and PATCH are never retried. - seam-sdk-name and seam-sdk-version headers on every request.
- waitForActionAttempt: every endpoint returning an action attempt now
waits for it by default (10s timeout, 1s polling), raising
SeamActionAttemptFailedException or SeamActionAttemptTimeoutException,
configurable per client and per call via ActionAttemptWait. - Pagination: SeamPage, Pagination metadata, and SeamPaginator with
FirstPageAsync, NextPageAsync, FlattenToListAsync, and IAsyncEnumerable
iteration; paginated endpoints emit ListPageAsync and ListPager. - A typed exception hierarchy rooted at SeamException, carrying the
Seam error code, status code, and seam-request-id. - CancellationToken support on every endpoint method.
- Optional for nullable parameters, distinguishing omitted from an
explicit JSON null (Null.Value). - A test suite covering the shared SDK behavior matrix, run against
@seamapi/fake-seam-connect.
Changed
- The client is SeamClient with a SeamClientOptions object; the raw
HttpClient is exposed as SeamClient.Client. - Endpoint methods are async-only and take a single request object with
compile-time-required members; route namespaces are nested
(seam.Acs.Users) instead of reversed flat names (UsersAcs). - Generated code moved to src/Seam/Routes and src/Seam/Models, is
deleted and regenerated wholesale, and unknown union variants now
preserve their raw payload.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01UxKRzX7AFRz33NyFQgfgK9