open-index/open-npm huggingface dataset:
npm package: @philskat/js-sort
Description: Package with a few sorting algorithms
Author: philskat
Latest version: 1.2.0

[![Node.js CI](https://github.com/philskat/js-sort/workflows/Node.js%20CI/badge.svg)](https://github.com/philskat/js-sort/actions/workflows/npm-ci.yml)
[![npm bundle size](https://img.shields.io/bundlephobia/min/@philskat/js-sort)](https://bundlephobia.com/result?p=@philskat/js-sort)
[![npm](https://img.shields.io/npm/v/@philskat/js-sort)](https://www.npmjs.com/package/@philskat/js-sort)
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/philskat/js-sort)
[![Docs](https://img.shields.io/badge/docs-here-green)](https://philskat.github.io/js-sort)

# js-sort

This npm package contains a few sorting algorithms to sort arrays of numbers.

## Quick Sort

```js
const { quickSort } = require('@philskat/js-sort');

const arr = quickSort([3, 1, 2]); // Output: [1, 2, 3]
```

## Bubble Sort

```js
const { bubbleSort } = require('@philskat/js-sort');

const arr = bubbleSort([3, 1, 2]); // Output: [1, 2, 3]
```

## Insertion Sort

```js
const { insertionSort } = require('@philskat/js-sort');

const arr = insertionSort([3, 1, 2]); // Output: [1, 2, 3]
```

## Insert Sorted

Add a new entry to an array and sort that entry in the array.

```js
const { insertSorted } = require('@philskat/js-sort');
const arr = [1, 2, 4, 5];

arr = insertSorted(arr, 3); // Output: [1, 2, 3, 4, 5]
```
npm package: @philtzjp/omni-subagents
Description: Claude Code subagents for multimodal capabilities via OpenCode + OpenRouter
Latest version: 0.1.2

# @philtzjp/omni-subagents

Claude Code subagents that call external AI models via [OpenCode](https://opencode.ai) + [OpenRouter](https://openrouter.ai). Fills Claude Code's multimodal gaps by delegating to specialized models.

## Subagents

| Name | Model | What it does |
|---|---|---|
| `omni-vision` | Gemini 3.1 Pro | Image/screenshot analysis — fine-grained UI inspection, OCR, diagram interpretation |
| `omni-codex` | GPT-5.3 Codex | Code second opinion — alternative implementations, blind spot detection |
| `omni-imagegen` | GPT-5 Image | Image generation — diagrams, UI mockups, charts, illustrations |
| `omni-researcher` | Gemini 3.1 Pro (2M) | Large-context research — cross-file analysis, massive document processing |

## How it works

Each subagent is a lightweight relay (runs on Haiku) that executes `opencode run -m <model>` under the hood. Claude Code invokes them automatically via the `Agent` tool when it determines an external model would handle the task better.

```
User → Claude Code → Agent(subagent_type: "omni-vision") → opencode run → OpenRouter → Gemini 3.1 Pro
```

## Install

```bash
npx @philtzjp/omni-subagents install
```

The installer will:
1. Check that `opencode` CLI is installed
2. Prompt for your OpenRouter API key (if not already configured)
3. Copy subagent definitions to `~/.claude/agents/`

## Commands

```bash
npx @philtzjp/omni-subagents install     # Install subagents + configure key
npx @philtzjp/omni-subagents setup       # Set or update OpenRouter API key
npx @philtzjp/omni-subagents uninstall   # Remove subagents
npx @philtzjp/omni-subagents list        # Show installed subagents
```

## Requirements

- [Claude Code](https://claude.ai/claude-code)
- [OpenCode CLI](https://opencode.ai) with OpenRouter credentials
- [OpenRouter API key](https://openrouter.ai/keys) with access to the target models

## License

MIT
npm package: @philvr/react-template
Description: A CLI for generating a React app template
Author: Philip Van Raalte
Latest version: 0.2.0

# @philvr/react-template ![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square) ![npm (scoped)](https://img.shields.io/npm/v/@philvr/react-template.svg?style=flat-square) [![](https://img.shields.io/badge/speed-blazing%20%F0%9F%94%A5-brightgreen.svg)](https://twitter.com/acdlite/status/974390255393505280)
A CLI for generating a React app template

## Instructions
1. Install
```
npm i -g @philvr/react-template
```

2. Create a new project
```
react-template my-app
cd my-app
npm run start
```

## What's Included
- [React](https://github.com/facebook/react), JSX, ES7, [Less](https://github.com/less/less.js) and [optional chaining](https://github.com/tc39/proposal-optional-chaining) support

## Folder Structure

```
app
├──node_modules
├──src
│  ├──components
│  │  ├──App.js
│  ├──styles
│  │  ├──index.less
│  ├──index.html
│  └──index.js
├──.babelrc
├──.gitignore
├──package.json
├──README.md
└──webpack.config.js
```
npm package: @philwang/hls-player-react
Description: A React HLS player component with smart buffering for EVENT-type m3u8 streams
Latest version: 0.1.0

# @aspect-build/hls-player-react

A React component for playing HLS (m3u8) video streams, built on [hls.js](https://github.com/video-dev/hls.js/).

Designed for **EVENT-type progressive HLS playlists** where segments are generated on-the-fly (e.g. AI video generation pipelines). Handles the common pitfalls: polls for playlist completion before playback, buffers enough content to avoid stalls, and gracefully handles end-of-stream.

## Install

```bash
npm install @aspect-build/hls-player-react
```

## Usage

```tsx
import { HlsPlayer } from "@aspect-build/hls-player-react";

function App() {
  return (
    <HlsPlayer
      src="https://example.com/video.m3u8"
      className="w-full rounded-xl"
      onEnded={() => console.log("done")}
    />
  );
}
```

## Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `src` | `string \| undefined` | — | m3u8 URL. Falsy hides the player. |
| `className` | `string` | — | CSS class for the `<video>` element. |
| `style` | `CSSProperties` | — | Inline styles for the `<video>` element. |
| `autoPlay` | `boolean` | `true` | Auto-play once buffer threshold is met. |
| `muted` | `boolean` | `false` | Mute audio. |
| `loop` | `boolean` | `false` | Loop playback. |
| `controls` | `boolean` | `true` | Show native video controls. |
| `pollInterval` | `number` | `2000` | Interval (ms) for polling playlists for `#EXT-X-ENDLIST`. |
| `pollTimeout` | `number` | `60000` | Max time (ms) to poll before loading anyway. |
| `bufferThreshold` | `number` | `0.8` | Buffer ratio (0–1) of known duration before auto-play. |
| `fetchCredentials` | `RequestCredentials` | `"include"` | Fetch credentials mode for playlist polling. |
| `onEnded` | `() => void` | — | Called when playback ends. |
| `onError` | `(msg: string) => void` | — | Called on fatal error. |
| `onReady` | `() => void` | — | Called when playback starts. |

## How it works

1. **Poll for completion** — Fetches the master m3u8, extracts media playlist URLs, and polls each until `#EXT-X-ENDLIST` appears (or timeout).
2. **Smart buffering** — Prefers hls.js over native HLS. Tracks known duration from `LEVEL_LOADED` / `AUDIO_TRACK_LOADED` events. Delays playback until buffer reaches the configured threshold.
3. **End-of-stream detection** — When the playlist transitions from live to VOD and the buffer is nearly exhausted, pauses playback and fires `onEnded`.

## License

MIT