Пакет @raidboss/platform-sdk для web и React Native.
TypeScript / Web — @raidboss/platform-sdk
Установка из Git (как обычно для продуктовых приложений)
npm install github:ivanbalandin/RaidBossPlatform#main:packages/platform-sdk
{
"dependencies": {
"@raidboss/platform-sdk": "github:ivanbalandin/RaidBossPlatform#main:packages/platform-sdk"
}
}
Закрепить версию — тег или commit:
"@raidboss/platform-sdk": "github:ivanbalandin/RaidBossPlatform#sdk-ts-v0.1.0:packages/platform-sdk"
Приватный репозиторий — SSH:
"@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 (локальная разработка)
{
"dependencies": {
"@raidboss/platform-sdk": "file:../RaidBossPlatform/packages/platform-sdk"
}
}
import {
RaidBossPlatformClient,
createRaidBossClient,
RaidBossPlatformError,
} from "@raidboss/platform-sdk";
Создание клиента
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({ platform, display_name, avatar_url, timezone, acquisition_source }) | да | — | После login/signup; не апгрейдит версии юр. доков |
getMyConsents / acceptConsents | да | — | Проверка и явное принятие новых версий |
updateUserProfile({ display_name, avatar_url, timezone }) | да | — | После смены имени/аватара в приложении |
registerDevice(...) | да | — | Стабильный UUID installation_id → user_devices / «Устройства active» |
getMyEntitlements() | да | — | Снимок + codes |
hasEntitlement(code) | да | — | Удобный хелпер |
hasAnyEntitlement(codes) | да | — | |
createPayment(...) | да | нужен | Только платные |
syncPayment(payment_id) | да | — | Сверка после return |
checkout(...) | да | нужен | Алиас |
activateLicenseKey(...) | да | — | Активация ключа |
listDevices / revokeDevice | да | — | Устройства |
getConfig / getFeatures | config: нет / features: да | — | Remote |
getApplicationBranding | нет | нужен | Иконка и сайт приложения |
getBanner / listBanners | нет | нужен | HTML-баннеры приложения |
getSiteBanner / listSiteBanners | нет | нужен | Баннеры CMS-сайта |
trackEvent / trackEvents | да | — | Аналитика; с installation_id+platform — heartbeat устройства |
createSupportTicket | да | нужен | Заявка в helpdesk |
uploadSupportAttachment | да | нужен | Скрин / видео / лог |
listMySupportTickets / getSupportTicket / replyToSupportTicket | да | — | Мои заявки |
getCmsSite / listCmsBlogPosts / … | нет | нужен | CMS Site на лендинге |
isFreePrice(price) static | — | — | Детект free |
Free
if (RaidBossPlatformClient.isFreePrice(price)) {
// не вызывать createPayment
}
Ошибка API при попытке оплаты free: free_plan_offline.