# @hublib-web/video-player Video player package with shared runtime and framework adapters: - `react` entrypoint with SSR-friendly player component - `angular` adapter over framework-agnostic runtime - `core` runtime/utilities for engine selection and token provider ## Install from Git (SSH tag) ```bash yarn add "@hublib-web/video-player@git+ssh://git@github.com/ORG/REPO.git#workspace=@hublib-web/video-player&tag=video-player-v0.1.0" ``` ## Install inside this monorepo ```bash yarn add @hublib-web/video-player ``` ## Release this package 1. Bump `version` in `packages/video-player/package.json`. 2. Build package artifacts: ```bash yarn workspace @hublib-web/video-player build ``` 3. Commit release files: ```bash git add packages/video-player/package.json packages/video-player/dist git commit -m "release(video-player): v0.1.0" ``` 4. Create and push tag: ```bash git tag -a video-player-v0.1.0 -m "@hublib-web/video-player v0.1.0" git push origin main --follow-tags ``` Detailed docs: - [Release policy](../../docs/release-policy.md) - [Git installation](../../docs/git-installation.md) ## React usage ```tsx import VideoPlayer, { type VideoJsPlayer } from "@hublib-web/video-player/react"; export const Example = () => ( { player.play(); }} /> ); ``` ## Core usage ```ts import { setVideoPlayerTokenProvider } from "@hublib-web/video-player/core"; setVideoPlayerTokenProvider(async () => { // host app token resolver return null; }); ``` ## Angular usage ```ts import { AngularVideoPlayerAdapter } from "@hublib-web/video-player/angular"; const adapter = new AngularVideoPlayerAdapter(); await adapter.attach(containerElement, { source: { src: "https://example.com/stream.m3u8" }, }); ``` ## Development Run from repository root: ```bash yarn workspace @hublib-web/video-player build yarn workspace @hublib-web/video-player typecheck yarn workspace @hublib-web/video-player storybook ``` Build static Storybook: ```bash yarn workspace @hublib-web/video-player storybook:build ```