Skip to content

TypeScript SDK

Package Content
@freedome/protocol Types generated from the contract: OpenAPI, JSON Schemas, AsyncAPI topics, error codes, scopes
@freedome/client FreedomeClient over fetch, WebSocket, graphql-ws and socket.io, discovery, codecs
react-native-freedome FreeDomeProvider, useFreeDome() and hooks over @freedome/client
import { Credentials, FreedomeClient, FreedomeEndpoint, PlayTargets } from '@freedome/client';
const client = new FreedomeClient({
endpoint: FreedomeEndpoint.parse('dome.local'),
credentials: Credentials.password('operator', '…'),
options: { appName: 'my-app', appVersion: '1.0.0' },
});
await client.open(); // negotiating → authenticating → online (WS freedome.v1 by default)
const off = client.playback.watch((s) => render(s.state));
await client.playback.play(PlayTargets.show(showId));
Import Content
@freedome/client/codecs .dome, .zelim, .boranko, .comics
@freedome/client/node mDNS, ws, file inputs
@freedome/client/testing createFakeTransport()
@freedome/protocol/validate Ajv validators

The suites run with the fake transport and against the fake-dome image. No package has run against a real dome.

NativeMindNONC. Commercial use needs a licence from NativeMind sales.