open-index/open-npm huggingface dataset:
npm package: @series-inc/venus-sdk
Description: Venus H5 API runtime with type-safe default export.
Latest version: 5.0.2

# Venus SDK API

Build connected HTML5 games that integrate deeply with the Venus platform. This package provides the client SDK used by hosted games as well as the local mock environment for development.

## Highlights

- Typed APIs for Venus platform services (simulation, rooms, analytics, ads, and more)
- Host-aware tooling including lifecycle hooks, safe-area utilities, and asset loading helpers

## Quick Start

### Installation

```bash
npm install @series-inc/venus-sdk@latest
```

### Initialize

```typescript
import { default as VenusAPI } from '@series-inc/venus-sdk/api'

// Initialize the API
await VenusAPI.initializeAsync()
```

## Documentation

The complete Venus SDK manuals live on [Venus Docs](https://series-1.gitbook.io/getreel-docs). Start there for setup guides, API references, tutorials, and best practices.

## Support & Links

- [Join our Discord!](https://discord.gg/NcjhKQHx)
npm package: @series-one/cli-common
Description: ONECLI系列工具基础通用模块
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# ONECLI 系列工具基础通用模块

该模块主要提供能力给上层 CLI 工具使用;

> 上层 CLI 工具请查看 https://github.com/series-one/series-one/
npm package: @series-one/toolkit-cliui
Description: CLI UI 集合
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Cliui

CLI UI 集合

## BACKGROUND

部分构建工具都需要 UI 选择项目，根据选中项目查找相关依赖关系等。
该公共模块主要是提供通用方法，快速接入命令行 UI，并能通过通用函数快速理清依赖关系等。

## FEATURE

- MonoRepo 项目提供 `Project` 选择 UI 能力。
- 其他能力待完善
  - 扩展只需要在 `options` 中扩展选项能力即可。

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-cliui
# global install
$ yarn global add @series-one/toolkit-cliui
```

## USAGE

```ts
import { uiSelectProject } from '@series-one/toolkit-cliui'
;(async () => {
  const selected = ['app']
  const include = ['packages/*']
  const exclude = ['test/*']
  const response = await uiSelectProject('请选择需要运行的项目', true, { selected, include, exclude })
  console.log(response)
})()
```

```ts
import { findProjects, graphDependency } from '@series-one/toolkit-cliui'

const projects = await findProjects()
console.log(projects)

const graph = graphDependency(projects)
console.log(graph)
```

> `findProjects` 并不是使用 `yarn workspaces info`，而是利用 `pacakge.json` 去遍历。
> 如果保证 context 肯定在当前项目中，可以直接 `yarn workspaces info`
> 使用场景，如果在 e2e 环境中，`yarn workspaces info` 会读取测试用例的上下文，
> 而需要测试的则在另外一个环境中，此时就可以使用 `findProjects` 利用 `context`
> 去变更上下文。当然也可以使用将 `spawn` 等方法来更改上下文。

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-dotenv
Description: dotenv 工具集
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Dotenv

dotenv 工具集

## BACKGROUND

环境变量一般存储与 `.env` 中，但部分 `.env` 只存在于测试、沙盒等环境相对于少使用。
为了避免添加环境变量时忘记添加部分少用的环境变量文件中，则需要使用进行差异对比，从而快速寻找差异点来保证环境声明统一。

## FEATURE

- 检测 dotenv 文件中变量声明是否相同
- 将差异变量详细标注于所在的文件与不在的文件

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-dotenv
# global install
$ yarn global add @series-one/toolkit-dotenv
```

## USAGE

```ts
import { validateDotEnv } from '@series-one/toolkit-dotenv'

const invalids = await validateDotEnv(files)
if (invalids.length > 0) {
  console.log(`环境变量(dotenv)配置错误 \n - ${invalids.join('\n - ')}`)
}
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-port
Description: 端口工具集
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Port

端口工具集

## BACKGROUND

NodeJS 服务等项目经常需要关注端口是否被占用;
该工具主要封装一套便捷的端口工具;

## FEATURE

- 判断端口是否可用
- 获取可用端口

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-port
# global install
$ yarn global add @series-one/toolkit-port
```

## USAGE

```ts
import { getPorts } from '@series-one/toolkit-port'

const idlePort = await getPorts({ host, exclude: busyPorts })
console.log({ idlePort })
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-prepare
Description: 代码源文件预处理工具
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Prepare

代码源文件预处理工具

## BACKGROUND

大部分非原生 `js` 项目都需要编译;
该工具主要为了动态编译这些文件, 让 `Typescript` 可以直接加载;

## FEATURE

- 支持 Typescript 文件预处理载入

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-prepare
# global install
$ yarn global add @series-one/toolkit-prepare
```

## USAGE

```ts
import path from 'path'
import { findTsConfig, prepare } from '@series-one/toolkit-prepare'
;(async () => {
  const file = path.join(__dirname, 'index.ts')
  const configFile = await findTsConfig(file)
  const entry = await prepare(file, {
    ts: {
      configFile,
    },
  })

  console.log({ entry })
})()
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-pretty
Description: 提示工具
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Pretty

提示工具

## BACKGROUND

大部分非原生 `js` 项目都需要编译;
该工具主要为了动态编译这些文件, 让 `Typescript` 可以直接加载;

## FEATURE

- 支持 Typescript 文件预处理载入

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-pretty
# global install
$ yarn global add @series-one/toolkit-pretty
```

## USAGE

```ts
import path from 'path'
import { findTsConfig, prepare } from '@series-one/toolkit-prepare'
;(async () => {
  const file = path.join(__dirname, 'index.ts')
  const configFile = await findTsConfig(file)
  const entry = await prepare(file, {
    ts: {
      configFile,
    },
  })

  console.log({ entry })
})()
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-semver
Description: 版本号工具
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Semver

版本号工具

## BACKGROUND

项目中经常需要对版本进行一些处理.
该工具主要为了快速处理一些版本上的功能, 提供便捷的函数.

## FEATURE

- 能对比线上版本
- 对比版本并返回差异类型

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-semver
# global install
$ yarn global add @series-one/toolkit-semver
```

## USAGE

```ts
import { latestVersion, diffVersion } from '@series-one/toolkit-semver'
// 获取依赖最后版本
// 需要输入当前版本, 否则以 `0.0.1-alpha.0` 作为对比版本号
latestVersion('@series-one/toolkit-semver', {
  /* 当前版本 */
  compare: '1.0.0',
  /* 对比版本相差 */
  includes: ['minor', 'patch'],
}).then((version) => {
  console.log({ version })
})

// 版本对比
diffVersion('1.0.0', '1.0.0').then((diff) => {
  console.log({ diff }) // false
  // 1.1.0 1.1.1 => patch
  // 1.1.0 1.2.0 => minor
  // 1.1.0 2.1.0 => major
  // 1.1.0 1.1.1-alpha.1 => prepatch
  // 1.1.0 1.2.0-alpha.1 => preminor
  // 1.1.0 2.1.0-alpha.1 => premajor
  // 1.1.0 1.1.0-alpha.0 => prerelease
  // 1.1.0 1.1.0+hash => build
})
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-shell
Description: Git 相关工具集
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Shell

Git 相关工具集

## BACKGROUND

项目管理工具需要调用本地一些命令, 例如: `Git`, `NPM` 等.
该项目主要封装一些便捷的命令执行能力.

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-shell
# global install
$ yarn global add @series-one/toolkit-shell
```

## USAGE

```ts
import { execCommand, gitRepoUrl, gitContributors, pmInfo, pmRegistryUrl, pmWorkspaces } from '@series-one/toolkit-shell'

console.log(await gitRepoUrl())
console.log(await gitContributors())
console.log(await pmInfo())
console.log(await pmRegistryUrl())
console.log(await pmWorkspaces())
console.log(await execCommand(`${command} -h`))
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-updater
Description: 依赖更新工具
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Updater

依赖更新工具

## BACKGROUND

在工具维护能力上, 版本更新的通知是十分必要的.
由于项目中(例如本项目)工具过多, 而每一个都需要单独去接人一套更新程序是十分痛苦的事情.
该工具主要服务于上层工具, 通过遍历查找到对应需要更新的版本并给予用户提醒.

## FEATURE

- 自动获取当前依赖是否需要更新
- 能对比线上版本
- 能够获取在项目中有声明并且依赖中包含本包以及本包父级的依赖
  - 避免多余提醒与在线版本对比
    - 过滤第三方包
    - 过滤子包

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-updater
# global install
$ yarn global add @series-one/toolkit-updater
```

## USAGE

```ts
import { findOutdateds } from '@series-one/toolkit-updater'

const outdates = await findOutdateds({
  /* 仅更新补丁版与功能版本 */
  includes: ['minor', 'patch'],
  /* 发布时间超过(单位毫秒) */
  overTime: 0,
  /* 请求超时, 默认 3 秒 */
  timeout: 3e3,
})

outdates.forEach(({ name, updateType, version, latestVersion }) => {
  console.log(`${name}@${version}有一个新的${updateType}版本,请更新到${latestVersion}`)
})
```

### 单独使用

```ts
import { shouldUpdate } from '@series-one/toolkit-updater'

const {
  name,
  updateType,
  version,
  latestVersion,
  shouldUpdate: needUpdate,
} = await shouldUpdate('name', {
  /* 当前版本 */
  comareVersion: '1.0.0',
  /* 仅更新补丁版与功能版本 */
  includes: ['minor', 'patch'],
  /* 发布时间超过(单位毫秒) */
  overTime: 0,
  /* 请求超时, 默认 3 秒 */
  timeout: 3e3,
})

if (needUpdate) {
  console.log(`${name}@${version}有一个新的${updateType}版本,请更新到${latestVersion}`)
}
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/toolkit-uploader
Description: 上传工具
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Toolkit Uploader

上传工具

## BACKGROUND

工具主要为了磨平不同服务商的 SDK 上传接口，用统一方法对接各个云服务商。
暂时支持 `oss`, `s3`

## FEATURE

- 通过单一方法实现上传
  - 支持 OSS
  - 支持 S3

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/toolkit-uploader
# global install
$ yarn global add @series-one/toolkit-uploader
```

## USAGE

```ts
import { findOutdateds } from '@series-one/toolkit-updater'

const outdates = await findOutdateds({
  /* 仅更新补丁版与功能版本 */
  includes: ['minor', 'patch'],
  /* 发布时间超过(单位毫秒) */
  overTime: 0,
  /* 请求超时, 默认 3 秒 */
  timeout: 3e3,
})

outdates.forEach(({ name, updateType, version, latestVersion }) => {
  console.log(`${name}@${version}有一个新的${updateType}版本,请更新到${latestVersion}`)
})
```

### 单独使用

```ts
import { shouldUpdate } from '@series-one/toolkit-updater'

const {
  name,
  updateType,
  version,
  latestVersion,
  shouldUpdate: needUpdate,
} = await shouldUpdate('name', {
  /* 当前版本 */
  comareVersion: '1.0.0',
  /* 仅更新补丁版与功能版本 */
  includes: ['minor', 'patch'],
  /* 发布时间超过(单位毫秒) */
  overTime: 0,
  /* 请求超时, 默认 3 秒 */
  timeout: 3e3,
})

if (needUpdate) {
  console.log(`${name}@${version}有一个新的${updateType}版本,请更新到${latestVersion}`)
}
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/vite-plugin-dotenv-compare
Description: 检测所有 dotenv 文件环境变量是否统一插件
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Vite Plugin Dotenv Compare

检测所有 dotenv 文件环境变量是否统一插件

## BACKGROUND

一般情况我们都会将各种 dotenv 文件存放在固定的文件夹内，并保存开发、测试、正式等环境的环境变量。
往往我们在新增环境变量的时候很容易漏了同步其他环境，例如：沙盒环境。
而使用动态切换环境变量，该问题将更加突出。
所以我们开发该插件辅助我们检测环境变量是否统一。

## FEATURE

- 找出所有缺漏的变量与对应的文件
- 基于 webpack, 根据构建模式，只有构建状态下才会打断

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/vite-plugin-dotenv-compare
# global install
$ yarn global add @series-one/vite-plugin-dotenv-compare
```

## USAGE

```ts
import react from '@vitejs/plugin-react'
import { oneDotenvCompare } from '@series-one/vite-plugin-dotenv-compare'
import { defineConfig } from 'vite'

// https://vitejs.dev/config/
export default defineConfig(() => {
  return {
    plugins: [
      react(),
      oneDotenvCompare({
        compare: 'dotenv/*.env',
      }),
    ],
  }
})
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/vite-plugin-dynamic-env
Description: 动态环境变量插件
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Vite Plugin Dynamic Env

动态环境变量插件

## BACKGROUND

因为 Vite 使用环境变量不具备动态变更能力。
因此该插件主要将环境变量获取方式从固定替换成通过函数获取，而环境变量则通过变更 HTML 则可注入。

## FEATURE

- 根据 Vite 读取环境变量方式读取

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/vite-plugin-dynamic-env
# global install
$ yarn global add @series-one/vite-plugin-dynamic-env
```

## USAGE

```ts
import react from '@vitejs/plugin-react'
import { onwDynamicEnv } from '@series-one/vite-plugin-dynamic-env'
import { defineConfig } from 'vite'

// https://vitejs.dev/config/
export default defineConfig(() => {
  return {
    plugins: [
      react(),
      onwDynamicEnv({
        __APP_ENV__: JSON.stringify('prod'),
      }),
    ],
  }
})
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/vite-plugins
Description: 底层基础插件
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Vite Plugins

底层基础插件

## BACKGROUND

避免基础能力重复编写，特意使用该基础插件进行基础能力建设。

> 上层插件请查看 https://github.com/series-one/series-one/

## FEATURE

- 支持 logger 日志服务
- 支持 outdate 更新服务

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/vite-plugins
# global install
$ yarn global add @series-one/vite-plugins
```

## USAGE

```ts
import {
  // 注册服务
  connect,
  // 创建插件
  createOneVitePlugin,
  // 基础插件
  oneVitePlugin,
} from '@series-one/vite-plugins'

/** Vite 上传插件 */
export const oneVitePluginDemo = connect(
  createOneVitePlugin('vite-plugin-demo', (custom?: string) => ({ logger, helper }) => {
    const instance = oneVitePlugin()
    // todo something...

    return {
      ...instance,
    }
  })
)
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/webpack-dotenv-compare-plugin
Description: 检测环境变量是否统一插件
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

<!-- This file is dynamically generated. please edit in README -->

# Webpack Dotenv Compare Plugin

检测环境变量是否统一插件

## BACKGROUND

一般情况我们都会将各种 dotenv 文件存放在固定的文件夹内，并保存开发、测试、正式等环境的环境变量。
往往我们在新增环境变量的时候很容易漏了同步其他环境，例如：沙盒环境。
而使用动态切换环境变量，该问题将更加突出。
所以我们开发该插件辅助我们检测环境变量是否统一。

## FEATURE

- 找出所有缺漏的变量与对应的文件
- 基于 webpack, 根据构建模式，只有构建状态下才会打断

## INSTALL

```bash
# local install
$ yarn add --dev @series-one/webpack-dotenv-compare-plugin
# global install
$ yarn global add @series-one/webpack-dotenv-compare-plugin
```

## USAGE

```ts
import { OneWebpackComparePlugin } from '@series-one/webpack-dotenv-compare-plugin'

export default {
  plugins: [new OneWebpackComparePlugin({ compare: 'dotenv/*.env' })],
}
```

## CONTRIBUTING

可以通过 [Git](https://github.com/series-one/series-one.git) 对项目进行贡献;
若没有本项目组权限, 项目需要权限申请, 请通过 OA Git 项目权限申请流程进行申请, 用户角色为 `Developer`

### CONTRIBUTORS

- <qowera@gmail.com>
npm package: @series-one/webpack-plugins
Description: 底层基础插件
Author: DavidJones
Latest version: 2.5.18
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# 底层基础插件

以下插件均为基础插件, 主要提供能力给上层插件使用;

> 上层插件请查看 https://github.com/series-one/series-one/

- [OneWebpackDynamicEnvsPlugin](https://github.com/series-one/series-one/tree/main/%40webpack-plugin/webpack-plugins) - 动态环境变量插件
- [OneWebpackHtmlDynamicPublicPathPlugin](https://github.com/series-one/series-one/tree/main/%40webpack-plugin/webpack-plugins) - HTML 动态切换路径插件(作用于 `html-webpack-plugin`)
- [OneWebpackHtmlInjectEnvsPlugin](https://github.com/series-one/series-one/tree/main/%40webpack-plugin/webpack-plugins) - HTML 注入环境变量插件(作用于 `html-webpack-plugin`)
- [OneWebpackHtmlInjectPlugin](https://github.com/series-one/series-one/tree/main/%40webpack-plugin/webpack-plugins) - HTML 注入插件(作用于 `html-webpack-plugin`)
- [OneWebpackHtmlOverridePlugin](https://github.com/series-one/series-one/tree/main/%40webpack-plugin/webpack-plugins) - HTML 重写插件(作用于 `html-webpack-plugin`)
- [OneWebpackPlugin](https://github.com/series-one/series-one/tree/main/%40webpack-plugin/webpack-plugins) - Basic
npm package: @serieseight/cli
Description: A pointless CLI
Author: Colin Meinke
Latest version: 1.7.1

# CLI

## Installation

```
npm install -g @serieseight/cli
```

and then:

```
s8 setup
```

## Usage

```
s8 <command>
```

To view all available commands run `s8 --help`.

## Development

Clone the repository from https://github.com/serieseight/cli.

Install dependencies with `npm install` (avoid yarn as internals use npm).
npm package: @seriesfi/cypress-courier
Description: A Cypress plugin for handling email testing with Courier
Author: Series Financial
Latest version: 0.1.0

# @seriesfi/cypress-courier

A Cypress plugin for handling email testing with Courier. This plugin provides utilities and commands for testing email functionality in your Cypress tests.

## Installation

```bash
npm install --save-dev @seriesfi/cypress-courier
```

## Usage

1. Import the plugin in your `cypress/support/e2e.ts`:

```typescript
import "@seriesfi/cypress-courier";
```

2. Configure your Cypress environment variables in `cypress.env.json`:

```json
{
  "courierApiKey": "your-courier-api-key"
}
```

3. Use the provided commands in your tests:

```typescript
cy.getCourierEmail("recipient@example.com")
  .should("have.subject", "Welcome Email")
  .and("contain.text", "Welcome to our platform!");
```

## Available Commands

- `cy.getCourierEmail(email)`: Get the latest email for a recipient
- `cy.waitForCourierEmail(email, options)`: Wait for an email to arrive
- `cy.clearCourierEmails(email)`: Clear all emails for a recipient

## License

MIT
npm package: @serikavideo/serika-cli
Description: Watch Serika videos directly from your terminal with ASCII art mode
Author: pikachubolk
Latest version: 1.1.1

# Serika CLI

Watch Serika videos directly from your terminal!

## Prerequisites

- Node.js
- `ffmpeg` (specifically `ffplay`) installed and available in your PATH.

## Installation

### From NPM (Global)

You can install the CLI globally directly from npm:

```bash
npm install -g @serikavideo/serika-cli
```

This will automatically configure the `serika-cli` command in your terminal.

### Local Development

1. Navigate to this directory:
   ```bash
   cd serika-cli
   ```

2. Install dependencies and link the command:
   ```bash
   npm install
   npm link
   ```

## Usage

1. Ensure the Serika web server is running (usually on `http://localhost:3000`).

2. Run the CLI from anywhere:
   ```bash
   serika-cli
   ```
   
   Or specify a custom API URL:
   ```bash
   SERIKA_API_URL=https://serika.video/api serika-cli
   ```

3. Select a video from the list to play it in `ffplay`.
npm package: @seriouscoderone/dynamodb-dataloader
Description: A DataLoader that batches DynamoDB item lookups
Author: Matt Lavin
Latest version: 1.0.7

# dynamodb-dataloader

[![npm](https://img.shields.io/npm/v/@lifeomic/dynamodb-dataloader.svg)](https://www.npmjs.com/package/@lifeomic/dynamodb-dataloader)
[![Build Status](https://travis-ci.org/lifeomic/dynamodb-dataloader.svg?branch=master)](https://travis-ci.org/lifeomic/dynamodb-dataloader)
[![Greenkeeper badge](https://badges.greenkeeper.io/lifeomic/dynamodb-dataloader.svg)](https://greenkeeper.io/)

A DataLoader that batches requests for DynamoDB. The DataLoader can fetch items
from multiple tables at once so you should only need one instance per request.

You should be able to replace your calls to `dynamoClient.get` with
`loader.load` and automaticly switch your network calls from `GetItem` to
`BatchGetItem`.

NOTE: Make sure you update your IAM policy to allow `dynamodb:BatchGetItem` if
you have strict IAM policies

# Example code

```javascript
const { createDataLoader } = require('@lifeomic/dynamodb-dataloader');

// Once per request or scope that can share data access
const client = new AWS.DyanmoDB();
const loader = createDataLoader({ client });

// Once per item fetch
const item = await loader.load({
  table: 'your table name',
  key: { idAattribute: { S: 'some id' } }
});
```
npm package: @seriouslag/chatbot-api-core
Description: This library was generated with [Nx](https://nx.dev).
Author: Landon Gavin
Latest version: 0.0.12

# @seriouslag/chatbot-api-core

This library was generated with [Nx](https://nx.dev).

[![npm version](https://badge.fury.io/js/@seriouslag%2Fchatbot-api-core.svg)](https://badge.fury.io/js/@seriouslag%2Fchatbot-api-core)

## Building

Run `nx build chatbot-api-core` to build the library.

## Running unit tests

Run `nx test chatbot-api-core` to execute the unit tests via [Vitest](https://vitest.dev/).
npm package: @seriouslag/chatbot-api-ndjson
Description: This library was generated with [Nx](https://nx.dev).
Author: Landon Gavin
Latest version: 0.0.12

# @seriouslag/chatbot-api-ndjson

This library was generated with [Nx](https://nx.dev).

[![npm version](https://badge.fury.io/js/@seriouslag%2Fchatbot-api-ndjson.svg)](https://badge.fury.io/js/@seriouslag%2Fchatbot-api-ndjson)

## Building

Run `nx build chatbot-api-ndjson` to build the library.

## Running unit tests

Run `nx test chatbot-api-ndjson` to execute the unit tests via [Vitest](https://vitest.dev/).
npm package: @seriouslag/chatbot-react
Description: A simple chatbot component for React to interface with AI chats. It uses @MUI for some of the components. Internally uses tailwindcss for styling.
Author: Landon Gavin
Latest version: 0.0.12

# @seriouslag/chatbot-react

A simple chatbot component for React to interface with AI chats.
It uses @MUI for some of the components.
Internally uses tailwindcss for styling.

[![npm version](https://badge.fury.io/js/@seriouslag%2Fchatbot-react.svg)](https://badge.fury.io/js/@seriouslag%2Fchatbot-react)

![Demo](https://github.com/seriouslag/ui-chatbot-monorepo/blob/main/images/demo.gif?raw=true)

Peer dependencies include:

- react
- react-dom
- @mui/material
- @mui/icons-material
- @mui/lab
- rxjs

Currently only one service is available, the NdJsonChatService, which is a chat service that sends messages to a server that accepts NDJSON messages.

The chat service is a simple interface that can be implemented to send messages to a chat server.

- [ ] Split service and components into separate packages
- [ ] Add Unit tests
- [ ] Add example page
- [ ] Remove MUI dependencies
- [ ] Replace RXJS with native JS

## Installation

```bash
npm install @seriouslag/chatbot-react @seriouslag/chatbot-api-ndjson
```

## Usage

```jsx
import {
  NdJsonChatApiImpl,
  NdJsonChatService,
} from '@seriouslag/chatbot-api-ndjson';
import { ChatButton } from '@seriouslag/chatbot-react';
import { v4 } from 'uuid';
// load the css
import '@seriouslag/chatbot-react/css';

// setup the API
const chatApi = new NdJsonChatApiImpl({
  baseUrl: 'http://localhost:3000/api/chat',
});
// setup the chat service
const chatServiceInstance = new NdJsonChatService(chatApi, {
  defaultMessages: [
    {
      id: v4(),
      message: 'Hello! How can I help you?',
      role: 'info',
    },
  ],
});

const App = () => {
  return (
    <ChatButton
      service={chatServiceInstance}
      botName="ChatBot"
      botDescription="Chat with me!"
      inputTextPlaceholder="Type a message..."
      sendButtonText="Send"
    />
  );
};

export default App;
```
npm package: @seriouslag/nx-openapi-ts-plugin
Description: 🚀 Nx plugin for `@hey-api/openapi-ts` codegen.
Latest version: 0.0.41

# @seriouslag/nx-openapi-ts-plugin

This plugin provides a generator and executor for generating and updating OpenAPI clients using the `@hey-api/openapi-ts` library. This can be tied in to automation and CI workflows to ensure your API clients are always up to date.

## Installation

```bash
npm install -D @seriouslag/plugin-nx
```

## Usage

### Generators

#### openapi-client

[Docs](./src/generators/openapi-client/README.md)

This plugin provides a generator for generating OpenAPI clients using the `@hey-api/openapi-ts` library.

Run in interactive mode `nx g @seriouslag/nx-openapi-ts-plugin:openapi-client`

##### Options

- `name`: The name of the project. [ string ] (required)
- `scope`: The scope of the project. [ string ] (required)
- `spec`: The path to the OpenAPI spec file. [ URI or string ] (required)
- `directory`: The directory to create the project in. [ string ] (optional) (default: `libs`)
- `client`: The type of client to generate. [ string ] (optional) (default: `@hey-api/client-fetch`)
  To specify a specific version of the client you can use `@hey-api/client-fetch@1.x.x`.
- `tags`: The tags to add to the project. [ string[] ] (optional) (default: `api,openapi`)
  The defaults tags will not be added to the project if you specify this option.
- `plugins`: Additional plugins to provide to the client api. [ string[] ] (optional)
- `test`: The type of tests to setup. [ 'none' | 'vitest' ] (optional) (default: `none`)

##### Example

```bash
nx g @seriouslag/nx-openapi-ts-plugin:openapi-client --name=my-api --client=@hey-api/client-fetch --scope=@my-app --directory=libs --spec=./spec.yaml --tags=api,openapi
```

### Executors

#### update-api

This executor updates the OpenAPI spec file and generates a new client.
The options for the executor will be populated from the generator.

Run `nx run @my-org/my-generated-package:updateApi`

##### Options

- `spec`: The path to the OpenAPI spec file. [ URI or string ] (required)
- `name`: The name of the project. [ string ] (required)
- `scope`: The scope of the project. [ string ] (required)
- `client`: The type of client to generate. [ string ] (optional) (default: `@hey-api/client-fetch`)
- `directory`: The directory to create the project in. [ string ] (optional) (default: `libs`)
- `plugins`: Additional plugins to provide to the client api. [ string[] ] (optional) (default:[])

###### Spec File Notes

If the spec file is a relative path and is located in the workspace then the containing project will be listed as an implicit dependency.
The assumption is made that that project will generate the API spec file on build.

If the spec file is a URL then we fetch the spec during cache checks to determine if we should rebuild the client code.
npm package: @seriouslag/react-chatbot
Description: A simple chatbot component for React to interface with AI chats. It uses @MUI for some of the components. Internally uses tailwindcss for styling.
Author: Landon Gavin
Latest version: 0.0.4

# @seriouslag/react-chatbot

A simple chatbot component for React to interface with AI chats.
It uses @MUI for some of the components.
Internally uses tailwindcss for styling.

[![npm version](https://badge.fury.io/js/%40seriouslag%2Freact-chatbot.svg)](https://badge.fury.io/js/%40seriouslag%2Freact-chatbot)

![Demo](https://github.com/seriouslag/react-chatbot/blob/main/images/demo.gif?raw=true)

Peer dependencies include:

- react
- react-dom
- @mui/material
- @mui/icons-material
- @mui/lab
- rxjs

Currently only one service is available, the NdJsonChatService, which is a chat service that sends messages to a server that accepts NDJSON messages.

The chat service is a simple interface that can be implemented to send messages to a chat server.

- [ ] Split service and components into separate packages
- [ ] Add Unit tests
- [ ] Add example page
- [ ] Remove MUI dependencies

## Installation

```bash
npm install @seriouslag/react-chatbot
```

## Usage

```jsx
import React from 'react';
import { ChatButton, NdJsonChatService, NdJsonChatApi } from '@seriouslag/react-chatbot';
import { v4 } from 'uuid';
// load the css
import '@seriouslag/react-chatbot/css';

// setup the API
const chatApi = new NdJsonChatApi('http://localhost:3000/chat');
// setup the chat service
const chatServiceInstance = new NdJsonChatService(chatApi, {
  defaultMessages: [
    {
      id: v4(),
      message: 'Hello! How can I help you?',
      role: 'info',
    },
  ],
});

const App = () => {
  return (
    <ChatButton
      service={chatServiceInstance}
      botName="ChatBot"
      botDescription="Chat with me!"
      inputTextPlaceholder="Type a message..."
      sendButtonText="Send"
    />
  );
};

export default App;
```

## Development

```bash
# install dependencies
npm install
```

```bash
# run local development server
npm run dev
```

```bash
# build the package
npm run build
```

## License

MIT
npm package: @serity-ui/react
Description: React UI library that contains easy-to-use components.
Author: Edman Cota
Latest version: 0.1.9

# Serity UI

![npm (scoped)](https://img.shields.io/npm/v/@serity-ui/react) ![npm](https://img.shields.io/npm/dm/@serity-ui/react) ![GitHub Repo stars](https://img.shields.io/github/stars/serity-ui/serity-ui)

React UI library that contains easy-to-use components.

Serity UI provides a set of accesible, reusable, and composable React components that make it super easy to create websites and apps.

> **Warning**
> This app is a work in progress. I'm building this in public.


## Looking for documentation?

It's the https://serity-ui.com website for the latest version of Serity UI.


## Features

- Easey of Styling: Serity UI contains a set of layout components like `Box` and `Stack` that make it easy to style your components by passing props. [Learn more](https://serity-ui.com/docs/styled-system/style-props)
- Flexible & composable: Serity UI components are built on top of a React UI Primitive for endless composability.
- Accessible: Serity UI components follow the WAI-ARIA guidelines specifications and have the right `aria-*` attributes.
- Dark Mode: Most components in Serity UI are dark mode compatible.
npm package: @serive/ngx-datatable
Description: This is temporary library of an Angular table grid component. Fork from @swimline/ngx-datatable and add feature of drag and drop.
Author: serive
Latest version: 0.0.4

# ngx-datatable(Add drag and drop feature)

this project is fork from @swimlane/ngx-datatable because of Add drag and drop feature


--------------
`ngx-datatable` is an Angular component for presenting large and complex data. It has all the features you would expect from any other table but in a light package with _no external dependencies_. The table was designed to be extremely flexible and light; it doesn't make any assumptions about your data or how you: filter, sort or page it.
--------------

## Features

- Handle HTML5 drag and drop event.
- Handle large data sets ( Virtual DOM )
- Expressive Header and Cell Templates
- Horizontal & Vertical Scrolling
- Column Reordering & Resizing
- Client/Server side Pagination & Sorting
- Intelligent Column Width Algorithms ( Force-fill & Flex-grow )
- Integrated Pager
- Cell & Row Selection ( Single, Multi, Keyboard, Checkbox )
- Fixed AND Fluid height
- Left and Right Column Pinning
- Row Detail View
- Decoupled theme'ing with included Google Material theme
- Light codebase / No external dependencies
- AoT Compilation Support
- Universal Support

## Add bug fix from @serive
- Fix for not correct height and width when use mat dialog.
- Fix for not redraw when call recalculate method.

## Installation

To use ngx-datatable in your project install it via [npm](https://www.npmjs.com/package/@serive
/ngx-datatable):

```
npm i @serive/ngx-datatable --save
```

## How to use it.
1. Set isDrag flag in ngx-datatable tag.
```HTML
<ngx-datatable
  class="material"
  [rows]="rows"
  headerHeight="50"
  footerHeight="50"
  [scrollbarV]="true"
  [isDrag]="true"
></ngx-datatable>
```

2. Add "drop" event and "dragover" event as followings.

Drop target.
```HTML
<h3 (drop)="ondrop($event)" (dragover)="allowDrop($event)" ></h3>
```

Add Component.ts
```ts
  // Allow drop event for cancel dragover event.
  allowDrop(event): void {
    event.preventDefault();
  }
  // Allow drop event and get data for target row.
  ondrop(event): void {
    event.preventDefault();
    const text = event.dataTransfer.getData("text");
    alert(text); // Please replace for your code.
  }
```

## Credits

the followings is refer from original site
-------------------
`ngx-datatable` is a [Swimlane](http://swimlane.com) open-source project; we believe in giving back to the open-source community by sharing some of the projects we build for our application. Swimlane is an automated cyber security operations and incident response platform that enables cyber security teams to leverage threat intelligence, speed up incident response and automate security operations.

[SecOps Hub](http://secopshub.com) is an open, product-agnostic, online community for security professionals to share ideas, use cases, best practices, and incident response strategies.
npm package: @serjpas/with-rn-image-crop-picker
Description: An Expo config plugin for painless setup of `react-native-image-crop-picker` (fork from https://github.com/mwegener-com/with-rn-image-crop-picker)
Author: Marius Wegener, Serj Paskhalov
Latest version: 0.3.0

# with-rn-image-crop-picker

Expo config plugin for [react-native-image-crop-picker](https://github.com/ivpusic/react-native-image-crop-picker).

## About

This plugin adds the required attributes to the specific files as mentioned in the [docs.](https://github.com/ivpusic/react-native-image-crop-picker#step-3)

### iOS

InfoPlist:

- `NSPhotoLibraryUsageDescription`
- `NSCameraUsageDescription`
- `NSMicrophoneUsageDescription`

### Android

AndroidManifest: 
- `<uses-permission android:name="android.permission.CAMERA"/>`
- `<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>`

Project build.gradle:

- `maven { url 'https://maven.google.com' }`
- `maven { url "https://www.jitpack.io" }`

App build.gradle `vectorDrawables.useSupportLibrary = true`

## Important note

Currently there is no full support for front-camera on android.

Requires Expo Dev Client in half-managed workflow.
Learn more about:

- Expo Managed Workflow in 2021: [part 1](https://blog.expo.io/expo-managed-workflow-in-2021-5b887bbf7dbb), [part 2](https://blog.expo.io/expo-managed-workflow-in-2021-d1c9b68aa10)
- [Expo dev-client docs](https://docs.expo.dev/clients/getting-started/)
- [Expo config plugin](https://docs.expo.io/guides/config-plugins)

## Usage

1. Install with Expo

```sh
$ expo install with-rn-image-crop-picker expo-build-properties
```

2. Check your app.json. It should look like this:

```json
 "plugins": [
      "with-rn-image-crop-picker"
    ],
    [
      "expo-build-properties",
      {
        "android": {
          "compileSdkVersion": 33,
          "targetSdkVersion": 33
        }
      }
]
```

3. Rebuild your app

```sh
$ expo prebuild
$ expo run:ios --device
$ expo run:android --device
```

## Configuartion

You can configure the iOS messages by adding the following props to your app.json file:

- PhotoLibraryUsageDescription
- CameraUsageDescription
- MicrophoneUsageDescription

Example:

```json
"plugins": [
  [
		"with-rn-image-crop-picker",
		{
			"PhotoLibraryUsageDescription": "Allow app XYZ to access your photos",
			"CameraUsageDescription": "Allow app XYZ to access your camera",
			"MicrophoneUsageDescription": "Allow app XYZ to access your microphone"
		}
	]
]
```

## Contributing

Contributions are very welcome!

## Support

[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/mwegener)
npm package: @serkanalgl/dappeteer
Description: E2E testing for dApps using Puppeteer + MetaMask
Latest version: 4.2.5

# dAppeteer

E2E testing for dApps using Puppeteer + MetaMask

## Installation

```
$ npm install -s @chainsafe/dappeteer
$ yarn add @chainsafe/dappeteer
```

## Usage

```js
import dappeteer from '@chainsafe/dappeteer';

async function main() {
  const { metaMask, browser } = await dappeteer.bootstrap();

  // create a new page and visit your dapp
  const dappPage = await browser.newPage();
  await dappPage.goto('http://my-dapp.com');

  // you can change the network if you want
  await metaMask.switchNetwork('goerli');

  // do something in your dapp that prompts MetaMask to add a Token
  const addTokenButton = await dappPage.$('#add-token');
  await addTokenButton.click();
  // instruct MetaMask to accept this request
  await metaMask.acceptAddToken();

  // do something that prompts MetaMask to confirm a transaction
  const payButton = await dappPage.$('#pay-with-eth');
  await payButton.click();

  // 🏌
  await metaMask.confirmTransaction();
}

main();
```

## Usage with Snaps

```js
import dappeteer from '@chainsafe/dappeteer';
import { exec } from "child_process";

async function buildSnap(): Promise<string> {
  console.log(`Building my-snap...`);
  await new Promise((resolve, reject) => {
    exec(`cd ./my-snap && npx mm-snap build`, (error, stdout) => {
      if (error) {
        reject(error);
        return;
      }
      resolve(stdout);
    });
  });

  return "./my-snap";
}

async function main() {
  // build your local snap
  const builtSnapDir = await buildSnap()

  // setup dappateer and install your snap
  const { metaMask, snapId, browser } = await dappeteer.initSnapEnv({
    snapIdOrLocation: builtSnapDir,
  });

  // you need to have a webpage open to interact with MetaMask, you can also visit a dApp page
  const dappPage = await browser.newPage();
  await dappPage.goto('http://example.org/');

  // invoke a method from your snap that prompts users with approve/reject dialog
  await metaMask.snaps.invokeSnap(dappPage, snapId, "my-method")

  // instruct MetaMask to accept this request
  await metaMask.snaps.dialog.positive();

  // get the notification emitter and the promise that will receive the notifications
  const emitter = await metaMask.snaps.getNotificationEmitter();
  const notificationPromise = emitter.waitForNotification();

  // do something that prompts your snap to emit notifications
  await metaMask.snaps.invokeSnap(dappPage, snapId, "notify");

  // Make sure the notification promise has resolved
  await notificationPromise;

  // You can now read the snap notifications and run tests against them
  const notifications = await metaMask.snaps.getAllNotifications();
}

main();
```

- All methods can be found on [API page](docs/API.md)  
- Instructions to setup [dAppeteer with Jest](docs/JEST.md)  
- Mocha example can be found [inside test folder](./test)
npm package: @serkodev/svgtofont
Description: Converts SVG to TTF/EOT/WOFF/WOFF2/SVG format fonts.
Author: Kenny
Latest version: 3.21.1

# @serkodev/svgtofont

> This repository forks from [jaywcjlove/svgtofont](https://github.com/jaywcjlove/svgtofont).

Compared with the original repo, we support the `unicodeMap` option, allowing developers to specify the unicode of each icon font.

## Install
```
npm i @serkodev/svgtofont
```
npm package: @serkonda7/ts-result
Description: Minimalistic Result type for TypeScript.
Author: serkonda7
Latest version: 1.0.3

# ts-result
[![CI][ci-badge]][ci-status]
[![npm version][npm-badge]][npm-link]
[![npm updated][npm-date-badge]][npm-link]

Minimalistic Result type for TypeScript.


## 📦 Installation
```sh
npm install @serkonda7/ts-result
```


## 🚀 Usage
```ts
import { ok, err, unwrap, type Result } from '@serkonda7/ts-result'

// To use, wrap a functions return type into `Result<>`
function parsePort (input: string): Result<number> {
    const port = Number.parseInt(input, 10)

    if (!Number.isInteger(port)) {
        // Return an error result by using the `err()` helper
        return err('PORT must be an integer')
    }

    if (port < 1 || port > 65535) {
        // It supports strings, Error classes or any custom object
        return err(new Error('PORT must be between 1 and 65535'))
    }

    // Return an successful result using the `ok()` helper
    return ok(port)
}

const portResult = parsePort(process.env.PORT)

// Check the result for an error:
if (portResult.error) {
    console.error(portResult.error)
    process.exit(1)
}

// Use the value afterwards
let port = portResult.value

// Use the `unwrap()` helper to throw any error or return the value
const port = unwrap(portResult)
```


## 📜 License
This repo is licensed under the [MIT License](LICENSE.txt).


<!-- links -->
[ci-badge]: https://github.com/serkonda7/ts-result/actions/workflows/ci.yml/badge.svg
[ci-status]: https://github.com/serkonda7/ts-result/actions/workflows/ci.yml
[npm-badge]: https://nodei.co/npm/@serkonda7/ts-result.svg?style=shields&data=v&color=blue
[npm-date-badge]: https://nodei.co/npm/@serkonda7/ts-result.svg?style=shields&data=u,d&color=blue
[npm-link]: https://www.npmjs.com/package/@serkonda7/ts-result
npm package: @serkonda7/yaml2json
Description: Utility script for converting YAML files to JSON.
Author: Lukas Neubert
Latest version: 0.9.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# YAML to JSON
[![CI][ci-badge]][ci-workflow]

Utility script for converting YAML files to JSON.

## Installation
```sh
npm i -D @serkonda7/yaml2json
```

## Usage
```
yaml2json [flags] <file.yml> [file2.yml ...]

-o, --out      Specify a custom output dir. Default is ./out/
-p, --pretty   Json files will have an indentation of 2. By default the output is minimized.
```

<!-- LINKS -->
[ci-badge]: https://github.com/serkonda7/yaml2json/actions/workflows/ci.yml/badge.svg
[ci-workflow]: https://github.com/serkonda7/yaml2json/actions/workflows/ci.yml