@rynt/sdk
v0.9.53
Published
Rynt Launcher SDK — UI kit, extension runtime, and host APIs
Readme
@rynt/sdk
Официальный SDK для Rynt Launcher: UI-кит, типы, runtime расширений и API хоста.
Документация: https://docs.rynt.space
Сборка расширений: @rynt/extension-build
Создать проект: @rynt/create-extension
Установка
npm install @rynt/sdk
# peer: vue ^3.5, vue-router ^4.6 (router опционален)Для авторов расширений обычно ставят SDK вместе с пресетом Vite:
npm install -D @rynt/sdk @rynt/extension-build vite vue @vitejs/plugin-vue typescript vue-tscБыстрый старт проекта — create-extension или Hello World в документации.
Экспорты
| Subpath | Назначение |
|---------|------------|
| @rynt/sdk | UI-компоненты, типы сущностей, утилиты |
| @rynt/sdk/extension | defineRyntExtension, реестры, useModel, лоадеры, entity-виджеты |
| @rynt/sdk/extension-marketplace | HTTP-клиент и типы REST каталога расширений |
| @rynt/sdk/extension-expose-map | Module augmentation для useExtensionExpose |
| @rynt/sdk/extension-registry-payload-map | Module augmentation для типов реестров |
| @rynt/sdk/extension/registries | Низкоуровневый доступ к реестрам |
| @rynt/sdk/session | Токен сессии для API |
| @rynt/sdk/host | API хоста лаунчера (модели, загрузка расширений) |
| @rynt/sdk/tiptap | TipTap-типы, согласованные с редактором лаунчера |
Подробный обзор: SDK в документации.
Пример: расширение
import { markRaw } from 'vue';
import {
defineRyntExtension,
resolvedNavigationPath,
} from '@rynt/sdk/extension';
import HelloPage from './HelloPage.vue';
const EXTENSION_ID = '@acme/hello-world';
export default defineRyntExtension((ctx) => {
const routePath = resolvedNavigationPath(EXTENSION_ID, 'hello');
ctx.registerRegistryEntry({
registryId: 'core.page',
key: 'hello',
value: {
path: 'hello',
title: 'Hello',
component: markRaw(HelloPage),
resolvedRoutePath: routePath,
},
});
ctx.registerRegistryEntry({
registryId: 'core.nav',
key: 'hello',
value: {
link: routePath,
label: 'Hello',
icon: 'home',
},
});
});Сборка и манифест — в @rynt/extension-build.
UI в расширении
Компоненты из корневого пакета подключаются через host-shim при сборке (см. extension-build):
<script setup lang="ts">
import { Button, Block, Text } from '@rynt/sdk';
</script>Справочник компонентов: UI-кит.
Типизация между расширениями
Для useExtensionExpose и кастомных реестров используйте module augmentation — типизация контрактов.
Требования
- Node.js ≥ 20 (для CLI и современного tooling)
- Rynt Launcher с поддержкой Extension API
1(extensionApi: "1"в манифесте) - Vue 3.5+ в runtime лаунчера (в бандл расширения Vue не дублируется — один экземпляр с хоста)
