@osiris-smarttv/device
v0.1.1
Published
Smart TV device platform abstraction — Web, Tizen, webOS, PlayStation
Maintainers
Readme
@osiris-smarttv/device
Platform-agnostic device abstraction for React TV applications.
@osiris-smarttv/device detects the runtime platform (Web, Tizen, webOS, PlayStation, and more), exposes typed subsystems (info, network, lifecycle, storage, display, input), and ships optional React bindings.
Why use it
- Single API across Smart TV platforms
- Typed event bus for lifecycle, network, memory, and input
- PlayStation MASS / MSDK helpers for console builds
- Adapter registry for custom set-top boxes
- Pure TypeScript core — React is optional
Install
npm i @osiris-smarttv/device @osiris-smarttv/tv-input@osiris-smarttv/tv-input is required for virtual key types used by the input subsystem.
Exports
@osiris-smarttv/device—DeviceManager,bootstrap, contracts, detection, events@osiris-smarttv/device/react— React provider / hooks@osiris-smarttv/device/playstation— PlayStation-focused entry@osiris-smarttv/device/launch/*— launch-argument ports@osiris-smarttv/device/ports/*— platform port interfaces@osiris-smarttv/device/adapters/playstation/*— PlayStation adapter internals
Quick start
import { bootstrap, DeviceManager, Platform } from '@osiris-smarttv/device'
import { VirtualKey } from '@osiris-smarttv/tv-input'
await bootstrap({
onReady: () => {
const device = DeviceManager.get()
console.log(device.info.platform)
device.input.on('key', (event) => {
if (event.virtualKey === VirtualKey.BACK) history.back()
})
if (device.is(Platform.PlayStation5)) {
// platform-specific logic
}
},
})React usage
import { DeviceProvider } from '@osiris-smarttv/device/react'
export function App() {
return (
<DeviceProvider>
<Shell />
</DeviceProvider>
)
}Platforms
Adapters shipped: Web, Tizen, webOS, PlayStation 4/5, plus Android TV / HbbTV (Web fallback).
See ARCHITECTURE.md for platform matrices, subsystem design, and migration notes.
Source privacy on npm
This package is published as a public npm package, but npm tarballs include only:
dist/**README.md- metadata files (
package.json,LICENSE)
Source files under src/** are excluded by the files allowlist in package.json.
Local development
yarn install
yarn build
yarn typecheck
yarn testManual publish
yarn publish:check
yarn publish:dry-run
yarn publish:manualSee PUBLISHING.md for the full checklist.
