@evoteg/extension-sdk
v0.1.2
Published
Evoteg Extension Host protocol — guest client + host bridge (no remote eval)
Maintainers
Readme
@evoteg/extension-sdk
Protocolo Evoteg Extension Host (evoteg.ext/v1): packs instalables vía Store sin eval en el host.
Capas
| Tipo | Contenido del zip | Runtime |
|------|-------------------|---------|
| Declarativo | manifest.json (theme, settings, menus…) | Host aplica |
| Mini-app | manifest + dist/ estático | iframe sandbox + bridge |
Guest (iframe)
import { createExtensionClient } from '@evoteg/extension-sdk';
const client = createExtensionClient({ extensionId: 'ext.demo.hello' });
await client.handshake();
await client.toast.show('Hola desde el plugin');
await client.theme.setTokens({ '--color-brand-500': 'oklch(0.55 0.2 250)' });Host
import { createExtensionHost } from '@evoteg/extension-sdk';
const host = createExtensionHost({
extensionId: 'ext.demo.hello',
permissions: ['toast', 'theme'],
handlers: {
onToast: (msg) => console.log(msg),
onThemeSetTokens: (tokens) => tokens
}
});Permisos
menu, pageSlot, dashboardWidget, route, dataProvider, theme, settings, navigation, toast, slot, storage, surface.
Desarrollo
pnpm install
pnpm build
pnpm checkPublicación
El versionado usa bumpp (semver). Al crear un tag v*, GitHub Actions publica en npm con Trusted Publishing (OIDC) — sin NPM_TOKEN.
Requisitos previos (una sola vez)
- Acceso al scope npm
@evoteg - En npmjs.com →
@evoteg/extension-sdk→ Settings → Trusted Publisher:- Provider: GitHub Actions
- Organization / user:
evoteg - Repository:
lib-extension-sdk - Workflow filename:
publish.yml - Environment:
production(debe existir en el repo de GitHub)
- (Opcional) Borra el secret
NPM_TOKENdel repo si lo tenías; ya no hace falta
El paquete 0.1.0 ya está en npm; a partir de ahí CI publica los siguientes tags.
Docs: https://docs.npmjs.com/trusted-publishers/
Subir versión
Working tree limpio, en main:
pnpm release:patch # 0.1.0 → 0.1.1
pnpm release:minor # 0.1.0 → 0.2.0
pnpm release:major # 0.1.0 → 1.0.0
# O interactivo:
pnpm releaseEsto hace bump de versión, commit, tag vX.Y.Z y push. CI entonces:
- Publica
@evoteg/extension-sdken npm - Crea un GitHub Release con el enlace a npm y la lista de commits desde el tag anterior
Instalación (consumidores)
pnpm add @evoteg/extension-sdk