npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

omnicast

v1.3.0

Published

[![CI](https://github.com/zubiaks/omnicast/actions/workflows/ci-main.yml/badge.svg?branch=main)](https://github.com/zubiaks/omnicast/actions/workflows/ci-main.yml) [![Acessibilidade](https://github.com/zubiaks/omnicast/actions/workflows/accessibility.yml

Readme

CI Acessibilidade Performance release license

OmniCast

Versão 1.2.0 – Segurança & Manutenção Automática

O que há de novo:

  • [x] Integração do CodeQL Action v3.30.5 para análise estática de segurança
  • [x] Budget de performance via Lighthouse CI com arquivo de budgets JSON
  • [x] Ajustes nos workflows de CI e performance para Windows e Linux
  • [x] Documentação de segurança e performance no CHANGELOG.md

Sumário


Visão Geral

OmniCast é uma Progressive Web App modular para streaming de IPTV, VOD, rádio e webcams, desenhada para ser leve, extensível e fácil de contribuir.


Status da Versão

  • Versão: 1.2.0
  • Data de Release: 2025-10-01
  • Foco: Segurança & Manutenção Automática

Estrutura do Projeto

omnicast/
├─ docs/
│  ├─ troubleshooting.md
│  └─ ci-setup.md
├─ .github/
│  ├─ ISSUE_TEMPLATE/
│  ├─ PULL_REQUEST_TEMPLATE/
│  └─ workflows/
│     ├─ ci-main.yml
│     ├─ accessibility.yml
│     ├─ lighthouse.yml
│     └─ codeql-analysis.yml
├─ index.html
├─ vite.config.js
├─ public/
│  ├─ manifest.webmanifest
│  ├─ offline.html
│  └─ assets/css/
├─ js/
│  ├─ main.js
│  ├─ router.js
│  ├─ hls-loader.js
│  ├─ utils/
│  └─ pages/
├─ .lighthouserc.cjs
├─ lhci-budgets.json
├─ CONTRIBUTING.md
├─ package.json
├─ CHANGELOG.md
└─ README.md

Instalação e Execução

Clone e instale dependências:

git clone https://github.com/zubiaks/omnicast.git
cd omnicast
npm install

Primeiros Passos

  1. Instale sem opcionais
    npm ci --no-audit --omit=optional
  2. Setup (Playwright browsers)
    npm run setup
  3. Desenvolvimento
    npm run dev
  4. Build & Preview
    npm run build
    npm run preview -- --port 5500
  5. Testes E2E
    npm run test:e2e
    npm run test:e2e:report

Scripts Úteis

npm run setup
npm run dev
npm run dev:ci
npm run build
npm run preview
npm run serve:dist
npm run test:e2e
npm run test:e2e:headed
npm run test:e2e:report

Testes E2E (Playwright)

Cobertura de fluxos críticos, sem alterações nesta versão.


Testes de Acessibilidade

Integrado ao CI via axe-core, sem alterações nesta versão.


Configuração do Vite

Otimizações padrão para dev e prod, sem alterações nesta versão.


Router Code-Split

Roteamento modular por página, sem alterações nesta versão.


Lazy-Load de HLS

Carregamento dinâmico do módulo HLS, sem alterações nesta versão.


PWA Avançada

Service Worker e manifest configurados, sem alterações nesta versão.


Fallback Offline

Página offline personalizada, sem alterações nesta versão.


Spinner Global

Indicador de carregamento global reutilizável, sem alterações nesta versão.


Toast Notifications

Sistema de notificações leve, sem alterações nesta versão.


Páginas do App

  • Home
  • IPTV
  • VOD
  • Rádio
  • Webcams
  • Not Found

Performance & Bundle Analysis

Implementamos budgets de performance versionados com LHCI:

  1. Budget File na raiz: lhci-budgets.json

    [
      {
        "path": "/",
        "timings": [
          { "metric": "first-contentful-paint",    "budget": 2000 },
          { "metric": "largest-contentful-paint",  "budget": 2500 },
          { "metric": "interactive",               "budget": 5000 },
          { "metric": "total-blocking-time",       "budget": 300  },
          { "metric": "cumulative-layout-shift",   "budget": 0.10 }
        ]
      },
      { "path": "/iptv",   "timings": [ … ] },
      { "path": "/vod",    "timings": [ … ] },
      { "path": "/radio",  "timings": [ … ] },
      { "path": "/webcams","timings": [ … ] }
    ]
  2. Configuração LHCI: .lighthouserc.cjs

    module.exports = {
      ci: {
        collect: { /* URLs e comandos */ },
        assert: {
          budgetsFile: './lhci-budgets.json'
        },
        upload: { target: 'temporary-public-storage' }
      }
    };
  3. Workflow: .github/workflows/lighthouse.yml

    name: Performance Budget
    on: [ push, pull_request, workflow_dispatch ]
    jobs:
      lhci:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: '20.x'
              cache: npm
          - run: npm ci --no-audit
          - run: npm install -g @lhci/cli
          - run: lhci autorun --config ./.lighthouserc.cjs

Rodando local:

npx lhci autorun --config ./.lighthouserc.cjs

Falha apenas se algum timing ultrapassar o budget.


CI & E2E no GitHub Actions

  • ci-main.yml – build, lint e E2E
  • accessibility.yml – acessibilidade
  • lighthouse.yml – performance budget
  • codeql-analysis.yml – segurança estática

Contribuindo

Veja CONTRIBUTING.md e use os templates em .github.


Licença

MIT License. Veja LICENSE.


Roadmap

  • [x] v0.1.0 – Streaming Demo
  • [x] v0.1.1 – PWA & Code-Split
  • [x] v1.0.0 – Lançamento Estável
  • [x] v1.1.0 – Documentação & Onboarding
  • [x] v1.2.0 – Segurança & Performance Automática
  • [ ] v1.3.0 – Monitoramento de Performance & Budgets
  • [ ] v1.4.0 – Acessibilidade Avançada (WCAG 2.1 AA/AAA)
  • [ ] v1.5.0 – Testes Unitários & Storybook
  • [ ] v1.6.0 – Regressão Visual (Playwright Snapshots)
  • [ ] v1.7.0 – PWA Avançado (Push, Background Sync, Web Share)
  • [ ] v2.0.0 – Autenticação, Favoritos, APIs Externas

Para acompanhar, veja Projects.