diff --git a/README.md b/README.md index 96726841..4fb9e037 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ ## Overview The Turnkey SDK includes functionality to interact with Turnkey in various contexts and ecosystems. It consists of three main NPM package groups. + - the [Primary Turnkey Web SDK Packages](#primary-turnkey-web-sdk-packages) which expose the main functionality required to build Turnkey-powered applications in different web environments - the [Chain/Ecosystem-Specific Signing Packages](#chainecosystem-specific-signing-sdk-packages) which expose signers with support for specific ecosystems, built on top of our Web SDK packages - the [Advanced Functionality SDK Packages](#advanced-functionality-sdk-packages) which exposes lower level functionality that is leveraged by our Primary Web SDK Packages for those with highly-specific implementations looking to use them. @@ -21,11 +22,11 @@ While these higher level packages are the main points of reference to be used wh Our main web SDK packages are as follows: -| Package | Description | NPM | Changelog | Docs | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------- | -| [@turnkey/sdk-browser](/packages/sdk-browser) | The `@turnkey/sdk-browser` package exposes functionality that lets developers build browser based applications that interact with the Turnkey API with different types of authentication. It consists of different clients that enable requests to the API to be authenticated via different auth methods like user sessions, passkeys and iFrames. It also contains methods to manage information and state related to authentication like auth bundles and sessions, retrieving user information and server signing API requests. | [![npm](https://img.shields.io/npm/v/@turnkey/http?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/sdk-browser) | [CHANGELOG](/packages/sdk-browser/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/javascript-browser) | -| [@turnkey/sdk-server](https://github.com/tkhq/sdk/tree/main/packages/sdk-server) | The `@turnkey/sdk-server` package exposes functionality that lets developers build server-side functionality for applications that interact with the Turnkey API with different types of authentication – allowing applications to authenticate users, manage sessions, and perform organizational operations securely and efficiently. It consists of an API Client and API Proxies that enable requests to the Turnkey API to be authenticated with the appropriate credentials. Specifically, the API Client manages requests signed by the user's authentication details, and the API proxies handle requests signed by the parent organization's authentication details. Use this package to handle server-side interactions for applications that interact with the Turnkey API. | [![npm](https://img.shields.io/npm/v/@turnkey/sdk-server?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/sdk-server) | [CHANGELOG](/packages/sdk-server/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/javascript-server) | -| [@turnkey/sdk-react](https://github.com/tkhq/sdk/tree/main/packages/sdk-react) | The `@turnkey/sdk-react` package wraps the functionality from the `@turnkey/sdk-browser` package to allow developers to build react based applications that interact with the Turnkey API with different types of authentication. It allows developers to use the same clients exposed in `@turnkey/sdk-browser` that enable requests to the API to be authenticated via different auth methods like user sessions, passkey and iFrames. It also contains the same methods to manage information and state related to authentication like auth bundles and sessions, retrieving user information and server signing API requests. Use this package when you're building React-based frontend applications that interact with the Turnkey API. | [![npm](https://img.shields.io/npm/v/@turnkey/sdk-react?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/sdk-react) | [CHANGELOG](/packages/sdk-react/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/react) | | [![npm](https://img.shields.io/npm/v/@turnkey/react-native-passkey-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/react-native-passkey-stamper) | [CHANGELOG](/packages/react-native-passkey-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/react-native) | +| Package | Description | NPM | Changelog | Docs | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | -------------------------------------------------------- | +| [@turnkey/sdk-browser](/packages/sdk-browser) | The `@turnkey/sdk-browser` package exposes functionality that lets developers build browser based applications that interact with the Turnkey API with different types of authentication. It consists of different clients that enable requests to the API to be authenticated via different auth methods like user sessions, passkeys and iFrames. It also contains methods to manage information and state related to authentication like auth bundles and sessions, retrieving user information and server signing API requests. | [![npm](https://img.shields.io/npm/v/@turnkey/http?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/sdk-browser) | [CHANGELOG](/packages/sdk-browser/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/javascript-browser) | +| [@turnkey/sdk-server](https://github.com/tkhq/sdk/tree/main/packages/sdk-server) | The `@turnkey/sdk-server` package exposes functionality that lets developers build server-side functionality for applications that interact with the Turnkey API with different types of authentication – allowing applications to authenticate users, manage sessions, and perform organizational operations securely and efficiently. It consists of an API Client and API Proxies that enable requests to the Turnkey API to be authenticated with the appropriate credentials. Specifically, the API Client manages requests signed by the user's authentication details, and the API proxies handle requests signed by the parent organization's authentication details. Use this package to handle server-side interactions for applications that interact with the Turnkey API. | [![npm](https://img.shields.io/npm/v/@turnkey/sdk-server?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/sdk-server) | [CHANGELOG](/packages/sdk-server/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/javascript-server) | +| [@turnkey/sdk-react](https://github.com/tkhq/sdk/tree/main/packages/sdk-react) | The `@turnkey/sdk-react` package wraps the functionality from the `@turnkey/sdk-browser` package to allow developers to build react based applications that interact with the Turnkey API with different types of authentication. It allows developers to use the same clients exposed in `@turnkey/sdk-browser` that enable requests to the API to be authenticated via different auth methods like user sessions, passkey and iFrames. It also contains the same methods to manage information and state related to authentication like auth bundles and sessions, retrieving user information and server signing API requests. Use this package when you're building React-based frontend applications that interact with the Turnkey API. | [![npm](https://img.shields.io/npm/v/@turnkey/sdk-react?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/sdk-react) | [CHANGELOG](/packages/sdk-react/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/react) | The diagram below helps visualize how each package can be used to devlop the appropriate service in your Turnkey Powered Application, and how Turnkey requests would flow between those services. @@ -49,14 +50,14 @@ For those with more specialized use cases, Turnkey exposes it's lower level-libr ### Request Stamping -| Package | NPM | Description | Changelog | Docs | -|---------|-----|-------------|-----------|------| -| [`@turnkey/http`](/packages/http) | [![npm](https://img.shields.io/npm/v/@turnkey/http?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/http) | Lower-level, fully typed HTTP client for interacting with Turnkey API | [CHANGELOG](/packages/http/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/turnkey-client) | -| [`@turnkey/api-key-stamper`](/packages/api-key-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/api-key-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/api-key-stamper) | Provide API key signatures over Turnkey requests | [CHANGELOG](/packages/api-key-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/api-key-stamper) | -| [`@turnkey/iframe-stamper`](/packages/iframe-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/iframe-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/iframe-stamper) | Provide API key signatures over Turnkey requests within iframe contexts | [CHANGELOG](/packages/iframe-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/iframe-stamper) | -| [`@turnkey/webauthn-stamper`](/packages/webauthn-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/webauthn-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/webauthn-stamper) | Provide Webauthn signatures over Turnkey requests | [CHANGELOG](/packages/webauthn-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/webauthn-stamper) | -| [`@turnkey/wallet-stamper`](/packages/wallet-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/wallet-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/wallet-stamper) | Provide wallet signatures over Turnkey requests | [CHANGELOG](/packages/wallet-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/wallet-stamper) | -| [`@turnkey/sdk-react-native-passkey-stamper`](https://www.npmjs.com/package/@turnkey/sdk-react-native-passkey-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/react-native-passkey-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/react-native-passkey-stamper) | Provide Passkey signatures over Turnkey requests in a React Native context | [CHANGELOG](/packages/react-native-passkey-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/react-native) | +| Package | NPM | Description | Changelog | Docs | +| ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------- | +| [`@turnkey/http`](/packages/http) | [![npm](https://img.shields.io/npm/v/@turnkey/http?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/http) | Lower-level, fully typed HTTP client for interacting with Turnkey API | [CHANGELOG](/packages/http/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/turnkey-client) | +| [`@turnkey/api-key-stamper`](/packages/api-key-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/api-key-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/api-key-stamper) | Provide API key signatures over Turnkey requests | [CHANGELOG](/packages/api-key-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/api-key-stamper) | +| [`@turnkey/iframe-stamper`](/packages/iframe-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/iframe-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/iframe-stamper) | Provide API key signatures over Turnkey requests within iframe contexts | [CHANGELOG](/packages/iframe-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/iframe-stamper) | +| [`@turnkey/webauthn-stamper`](/packages/webauthn-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/webauthn-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/webauthn-stamper) | Provide Webauthn signatures over Turnkey requests | [CHANGELOG](/packages/webauthn-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/webauthn-stamper) | +| [`@turnkey/wallet-stamper`](/packages/wallet-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/wallet-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/wallet-stamper) | Provide wallet signatures over Turnkey requests | [CHANGELOG](/packages/wallet-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/advanced/wallet-stamper) | +| [`@turnkey/sdk-react-native-passkey-stamper`](https://www.npmjs.com/package/@turnkey/sdk-react-native-passkey-stamper) | [![npm](https://img.shields.io/npm/v/@turnkey/react-native-passkey-stamper?color=%234C48FF)](https://www.npmjs.com/package/@turnkey/react-native-passkey-stamper) | Provide Passkey signatures over Turnkey requests in a React Native context | [CHANGELOG](/packages/react-native-passkey-stamper/CHANGELOG.md) | [Docs](https://docs.turnkey.com/sdks/react-native) | ### Utilities diff --git a/img/sdk-web-diagram.png b/img/sdk-web-diagram.png index caef2916..ec9a002e 100644 Binary files a/img/sdk-web-diagram.png and b/img/sdk-web-diagram.png differ