---
title: TypeScript / Web SDK
description: Пакет @raidboss/platform-sdk для web и React Native.
---

# TypeScript / Web — `@raidboss/platform-sdk`

## Установка из Git (как обычно для продуктовых приложений)

```bash
npm install github:ivanbalandin/RaidBossPlatform#main:packages/platform-sdk
```

```json
{
  "dependencies": {
    "@raidboss/platform-sdk": "github:ivanbalandin/RaidBossPlatform#main:packages/platform-sdk"
  }
}
```

Закрепить версию — тег или commit:

```json
"@raidboss/platform-sdk": "github:ivanbalandin/RaidBossPlatform#sdk-ts-v0.1.0:packages/platform-sdk"
```

Приватный репозиторий — SSH:

```json
"@raidboss/platform-sdk": "git+ssh://git@github.com:ivanbalandin/RaidBossPlatform.git#main:packages/platform-sdk"
```

При `npm install` из Git (полный пакет) скрипт `prepare` собирает `dist/` через `tsc`.  
В Docker monorepo deps (только `package.json`) сборка пропускается.

## Установка из path (локальная разработка)

```json
{
  "dependencies": {
    "@raidboss/platform-sdk": "file:../RaidBossPlatform/packages/platform-sdk"
  }
}
```

```ts
import {
  RaidBossPlatformClient,
  createRaidBossClient,
  RaidBossPlatformError,
} from "@raidboss/platform-sdk";
```

## Создание клиента

```ts
const platform = new RaidBossPlatformClient({
  apiUrl: "YOUR_API_URL",
  applicationCode: "YOUR_APP_CODE",
  publicKey: "YOUR_PUBLIC_KEY",
  getAccessToken: async () => tokenOrNull,
});
```

## Методы

| Метод | Auth | Public key | Заметки |
| --- | --- | --- | --- |
| `getPaywall(code?)` | нет | рекомендуется | По умолчанию `main` |
| `registerUser(...)` | да | — | После login/signup |
| `registerDevice(...)` | да | — | Стабильный `installation_id` |
| `getMyEntitlements()` | да | — | Снимок + `codes` |
| `hasEntitlement(code)` | да | — | Удобный хелпер |
| `hasAnyEntitlement(codes)` | да | — | |
| `createPayment(...)` | да | нужен | Только платные |
| `checkout(...)` | да | нужен | Алиас |
| `activateLicenseKey(...)` | да | — | Активация ключа |
| `listDevices` / `revokeDevice` | да | — | Устройства |
| `getConfig` / `getFeatures` | config: нет / features: да | — | Remote |
| `trackEvent` / `trackEvents` | да | — | Аналитика |
| `createSupportTicket` | да | нужен | Заявка в helpdesk |
| `uploadSupportAttachment` | да | нужен | Скрин / видео / лог |
| `listMySupportTickets` / `getSupportTicket` / `replyToSupportTicket` | да | — | Мои заявки |
| `isFreePrice(price)` static | — | — | Детект free |

## Free

```ts
if (RaidBossPlatformClient.isFreePrice(price)) {
  // не вызывать createPayment
}
```

Ошибка API при попытке оплаты free: `free_plan_offline`.
