open-index/open-npm huggingface dataset:
npm package: @forward-protocol/ui-icons
Description: A project containing icons used in UI
Author: forward-protocol
Latest version: 2.0.2

# @forward-protocol/ui-icons

## About

This package contains useful icons.

## Table of contents

- [Installation](#installation)
- [Example usage](#example-usage)

## Installation

with npm

```shell
  npm install @forward-protocol/ui-icons
```

with yarn

```shell
  yarn add @forward-protocol/ui-icons
```

## Example usage

```typescript
import { UserIcon } from '@forward-protocol/ui-icons';

// Import styles (You can also use without importing it as well)
import '@forward-protocol/ui-icons/assets/styles/index.css';

// Then use it as a normal React component
<UserIcon size="M" />;
```
npm package: @forward-protocol/uikit
Description: A React UI package used by Forward Enterprise
Author: forward-protocol
Latest version: 3.2.5

# @forward-protocol/uikit

## About

This package provides not only all core UI components, but also scss variables and mixins.

## Table of contents

- [Installation](#installation)
- [Example usage](#example-usage)

## Installation

with npm

```shell
  npm install @forward-protocol/uikit
```

with yarn

```shell
  yarn add @forward-protocol/uikit
```

## Example usage

Using components

```typescript
import { Avatar } from '@forward-protocol/uikit';

// Import styles
import '@forward-protocol/uikit/assets/styles/index.css';

// Then use it as a normal React component
<Avatar variant="default" size="XL" />;
```

Using scss variables and mixins in scss files

```scss
@import '~@forward-protocol/uikit/assets/styles/_colors.scss';
```
npm package: @forward-software/gulp-browser-sync
Description: Custom plugin for gulp toolkit to setup a browser that can be auto-refreshed when files change
Author: ForWarD Software
Latest version: 1.0.1

# gulp-browser-sync

> Custom plugin for [gulp](https://gulpjs.com/) toolkit to setup a browser that can be auto-refreshed when files change using [Browsersync](https://browsersync.io/) library.

## Usage

Install this plugin and the required peer dependencies

```sh
$ npm install --save-dev gulp @forward-software/gulp-browser-sync
```

### Setup

```js
import gulp from 'gulp';
import { gulpBrowsersync } from "@forward-software/gulp-browser-sync";

//
// LIVE-RELOAD WEBSERVER
//
const { browserServe, browserReload } = gulpBrowsersync({
  host: "0.0.0.0",
  port: 8081,
  single: true, // Enable SPA-mode
  open: false,
  ui: false,
  server: {
    baseDir: PACKAGE_DIRECTORY,
  },
});

// watch files for changes and trigger rebuild tasks
async function watchFiles() {
  gulp.watch("src/assets/*", gulp.series(buildAssets, browserReload));
  gulp.watch(`src/**/*.html`, gulp.series(buildHtml, browserReload));
}

// npm run watch / npx gulp watch: continuously update index.html from deps
export const watch = gulp.series(dist, gulp.parallel(browserServe, watchFiles));
```

## License

MIT

---

Made with ✨ & ❤️ by [ForWarD Software](https://github.com/forwardsoftware) and [contributors](https://github.com/forwardsoftware/gulp-plugins/graphs/contributors)
npm package: @forward-software/reveal.js-caffeine
Description: Custom plugin for Reveal.js to avoid screen going to sleep during active presentations
Author: ForWarD Software
Latest version: 1.1.0

# ☕️ Caffeine

> Custom plugin for [Reveal.js](https://revealjs.com/) to avoid screen going to sleep during active presentations

## How To

Simply include `RevealCaffeine` plugin and it will automatically activate on presentation start if [`Screen Wake Lock API`](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API) is supported by the browser.

```js
Reveal.initialize({
  // ...
  plugins: [
    // ...,
    RevealCaffeine,
  ],
});
```

> [!IMPORTANT]  
> The Wake Lock will be released when the presentation is paused or the tab is hidden.

## Configuration

You can configure the plugin with the following options:

```js
// ...
plugins: [ /* ... */ ],
caffeine: {

}
```

## License

MIT

---

Made with ✨ & ❤️ by [ForWarD Software](https://github.com/forwardsoftware) and [contributors](https://github.com/forwardsoftware/revealjs-plugins/graphs/contributors)
npm package: @forward-software/reveal.js-joycontroller
Description: Custom plugin for Reveal.js to control presentations using Nintendo Switch Joy-Cons
Author: ForWarD Software
Latest version: 1.0.0

# 🎮 JoyController

> Custom plugin for [Reveal.js](https://revealjs.com/) to control presentations using Nintendo Switch Joy-Cons

## Key bindings

By default, the plugin is configured with the following key bindings:

| Left    | Right | Action         |
| ------- | ----- | -------------- |
| `RIGHT` | `A`   | Right          |
| `DOWN`  | `B`   | Down           |
| `UP`    | `X`   | Up             |
| `LEFT`  | `Y`   | Left           |
| `SR`    | `SR`  | Next slide     |
| `SL`    | `SL`  | Previous slide |
| `-`     | `+`   | Toggle pause   |

## Configuration

You can configure the plugin with the following options:

```js
// ...
plugins: [ /* ... */ ],
joycon: {
    type: 'right',   // or 'left', depending on the Joy Con you want to use, default is 'right'
    cooldown: 200,   // the time in ms between two actions, default is 300
    pointerSpeed: 10 // the speed of the pointer, default is 20
}
```

## Credits

Inspired by [Firnael/reveal.js-joycon-plugin](https://github.com/Firnael/reveal.js-joycon-plugin)

## License

MIT

---

Made with ✨ & ❤️ by [ForWarD Software](https://github.com/forwardsoftware) and [contributors](https://github.com/forwardsoftware/revealjs-plugins/graphs/contributors)
npm package: @forward-widget/danmu-universe
Description: [![NPM Version](https://img.shields.io/npm/v/@forward-widget/danmu-universe)](https://www.npmjs.com/package/@forward-widget/danmu-universe) [![License](https://img.shields.io/npm/l/@forward-widget/danmu-universe)](https://github.com/baranwang/forward-widg
Latest version: 0.15.1

# 通用弹幕插件 (Danmu Universe)

[![NPM Version](https://img.shields.io/npm/v/@forward-widget/danmu-universe)](https://www.npmjs.com/package/@forward-widget/danmu-universe)
[![License](https://img.shields.io/npm/l/@forward-widget/danmu-universe)](https://github.com/baranwang/forward-widgets)

一个通用的弹幕聚合插件，支持从多个主流视频平台获取弹幕数据，为 Forward 生态系统提供跨平台的弹幕服务

## 支持的平台

- [x] 腾讯视频
- [x] 优酷视频
- [x] 爱奇艺
- [x] 哔哩哔哩
- [x] 人人视频
- [x] 芒果 TV


## 安装使用

### 一键安装

[![Forward Widget](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Funpkg.com%2F%40forward-widget%2Fdanmu-universe%2Fpackage.json&query=%24.version&prefix=%E9%80%9A%E7%94%A8%E5%BC%B9%E5%B9%95%20v&style=flat-square&label=Forward%20Widget&labelColor=black)](https://gocy.pages.dev/#forward://widget?url=https%3A%2F%2Funpkg.com%2F%40forward-widget%2Fdanmu-universe)

### 手动安装

在Forward Widget的模块管理中导入以下URL：

```bash
https://unpkg.com/@forward-widget/danmu-universe # 完整版

https://unpkg.com/@forward-widget/danmu-universe/lite # 精简版
```

## 开发

项目自豪的使用 [forward-widget-libs](https://github.com/baranwang/forward-widget-libs) 开发工具链

欢迎社区贡献，如果你想为项目做出贡献可按照以下流程：

### 环境要求

- Node.js >= 24
- pnpm >= 9

### 安装依赖

仓库根目录

```bash
pnpm install
```

### 开发模式

项目目录

```bash
pnpm dev
```

### 构建

```bash
pnpm build
```

### 测试

本地测试需要用到 TMDB 的 API，参考  `.env.example` 创建 `.env` 文件，令牌需要到 [TMDB](https://www.themoviedb.org/settings/api) 获取

```bash
pnpm test
```

### 提交

在仓库根目录执行 `pnpm changeset` 创建 changeset 文件，同时使用标准的 Conventional Commits 提交代码

## 鸣谢

- [misaka_danmu_server](https://github.com/l429609201/misaka_danmu_server)
npm package: @forward-widget/libs
Description: [![NPM Version](https://img.shields.io/npm/v/@forward-widget/libs)](https://www.npmjs.com/package/@forward-widget/libs) ![NPM License](https://img.shields.io/npm/l/@forward-widget/libs)
Author: baranwang
Latest version: 2.1.0

# @forward-widget/libs

[![NPM Version](https://img.shields.io/npm/v/@forward-widget/libs)](https://www.npmjs.com/package/@forward-widget/libs)
![NPM License](https://img.shields.io/npm/l/@forward-widget/libs)

> Forward Widget 开发工具库

## 🚀 简介

`@forward-widget/libs` 是一个专为 Forward Widget 开发者设计的工具库，提供了完整的类型定义和测试工具，帮助开发者更高效地构建和测试 Widget 应用。

## 📦 安装

```bash
npm install @forward-widget/libs
# 或
yarn add @forward-widget/libs
# 或
pnpm add @forward-widget/libs
```

## 🛠️ 使用方法

### 环境类型定义

#### TypeScript 项目

在你的项目中创建一个 `.d.ts` 文件，引入类型定义：

```ts
// forward-widget-env.d.ts
/// <reference types="@forward-widget/libs/env" />
```

这样你就可以在 TypeScript 代码中获得完整的类型支持：

```ts
// 现在可以使用 Widget 相关的类型和全局变量
WidgetMetadata = {
  name: "My Widget",
  version: "1.0.0",
  // ... 其他配置
};

async function loadDetail(url: string) {
  const resp = await Widget.http.get('https://api.example.com/data')

  const result: VideoItem = {
    // ...
  }
  // ...
  return result
}
```

#### JavaScript 项目

对于 JavaScript 项目，你可以使用 JSDoc 来获得类型提示：

```js
/**
 * @type {import('@forward-widget/libs/env')}
 */


WidgetMetadata = {
  name: "My Widget",
  version: "1.0.0",
  // ... 其他配置
};

async function loadDetail(url) {
  const resp = await Widget.http.get('https://api.example.com/data')
  /**
   * @type {import('@forward-widget/libs/env').VideoItem}
   */
  const result = {
    // ...
  }
  // ...
  return result
}
```

### 单元测试

`@forward-widget/libs` 提供了 `WidgetAdaptor` 来模拟 Widget 运行环境，方便进行单元测试。

以 [Rstest](http://rstest.rs/) 为例：

```ts
import { expect, test, beforeAll } from "@rstest/core";

beforeAll(async () => {
  const { WidgetAdaptor } = await import("@forward-widget/libs/widget-adaptor");
  rstest.stubGlobal("Widget", WidgetAdaptor);
});

test("测试 HTTP 请求", async () => {
  const response = await Widget.http.get("https://api.example.com/data");
  expect(response).toBeDefined();
  expect(response.status).toBe(200);
});
```

#### TMDB

如果需要使用到 `Widget.tmdb` 下的方法，需要环境变量中配置 `TMDB_API_KEY`

```ini
# .env
TMDB_API_KEY=xxxx
```

```ts
// rstest.config.ts

import { defineConfig } from "@rstest/core";

export default defineConfig({
  testEnvironment: "node",
  pool: {
    type: "forks",
    execArgv: ["--env-file=.env"], // 通过指定 env-file 加载环境变量
  },
});
```

## 🤝 贡献

欢迎提交 Issue 和 Pull Request 来改善这个项目。

## 📄 许可证

MIT License
npm package: @forward-widget/nsfw
Description: ```bash https://unpkg.com/@forward-widget/nsfw/91porn ```
Latest version: 0.10.2

# @forward-widget/nsfw

## 91Porn

```bash
https://unpkg.com/@forward-widget/nsfw/91porn
```

## XVideos

```bash
https://unpkg.com/@forward-widget/nsfw/xvideos
```