open-index/open-npm huggingface dataset:
npm package: @h2orange/device-detector
Description: Device detector for web (ESM/CJS/UMD) with TypeScript types。获取设备信息（操作系统、设备类型、浏览器、屏幕信息、网络在线状态）。
Author: h2orange@foxmail.com
Latest version: 1.0.0

# Device Detector

一个纯 JavaScript/TypeScript 的网页端设备信息检测插件，不依赖任何前端框架运行时，可在 Vue / React / Angular / 原生 HTML/JS 中直接使用。

## GitHub 仓库 About 建议

- Description：Device detector for web (ESM/CJS/UMD) with TypeScript types
- Website：README 或 Demo 地址（例如 GitHub Pages / Vercel 预览）
- Topics：device-detector、user-agent、browser-detection、os-detection、typescript、umd、vite

## 功能特点

- 设备信息检测：操作系统、设备类型、浏览器、屏幕信息、网络在线状态
- 通用模块产物：ESM / CommonJS / UMD（支持 `<script>` 直接引入）
- 全局统一入口：`window.DeviceDetector`
- 支持配置检测规则与事件监听（可选）
- TypeScript 类型声明

本仓库仍保留了旧版 `getDeviceInfo()`（legacy）API，便于平滑迁移。

## 安装

```bash
npm install @h2orange/device-detector
```

## 使用方法

### ESM / CommonJS（任何框架均可）

```typescript
import { DeviceDetector, createDetector } from '@h2orange/device-detector'

const info = DeviceDetector.getInfo()
console.log(info)

const detector = createDetector({
  listen: true
})

detector.on('deviceChanged', (next) => {
  console.log('device changed', next)
})
```

### `<script>` 直接引入（UMD）

```html
<script src="https://cdn.jsdelivr.net/npm/@h2orange/device-detector/dist/device-detector.umd.min.js"></script>
<script>
  const DeviceDetector = window.DeviceDetector
  const info = DeviceDetector.getInfo()
  console.log(info)
  const detector = DeviceDetector.init({ listen: true })
  detector.on('deviceChanged', (next) => console.log(next))
</script>
```

### React / Vue / Angular 的使用方式

核心原则是：把它当作“普通 JS 库”使用即可，不需要框架适配层。

## 设备信息对象

`getInfo()` / `detect()` 返回结构化对象：

```ts
{
  os: { name: 'iOS', version: '16.5' },
  device: { type: 'mobile', model: 'iPhone' },
  browser: { name: 'Safari', version: '16.5' },
  screen: { width: 1170, height: 2532, pixelRatio: 3 },
  network: { online: true, type: 'wifi' },
  ua: '...',
  userAgent: '...',
  platform: '...'
}
```

## 使用示例

### 判断设备类型 / 系统 / 浏览器
```typescript
const info = DeviceDetector.getInfo()
if (info.device.type === 'mobile') {}
if (info.os.name === 'iOS') {}
if (info.browser.name === 'Safari') {}
```

## 兼容性

- 支持浏览器：Chrome / Firefox / Safari / Edge（不依赖框架）
- 网络类型字段：`navigator.connection` 在部分浏览器不可用，插件会回退到 `unknown`

## 许可证

MIT
npm package: @h2otest/h2o-contract-api
Description: This provide a simple JS interface to interact with the core GEB contracts.
Author: Guillaume Felley
Latest version: 1.1.50

# Contract API

This provide a simple JS interface to interact with the core GEB contracts.

It includes the following smart-contract repos:

-   geb
-   geb-safe-manager
-   geb-proxy-registry
-   geb-proxy-action
-   ds-proxy
npm package: @h3/eslint-config
Description: Official HackerHappyHour eslint configuration
Author: Brian Vanderbusch
Latest version: 1.3.0

# @h3/eslint-config

The Hacker Happy Hour js style guide

## Installation

```javascript
$ npm install --save-dev @h3/eslint-config
```

## Usage

Add one of the following to your project's `.eslintrc.*` file:

```javascript
{
  extends: "@h3/eslint-config",
  extends: "@h3/eslint-config/yolk"
}
```
npm package: @h3/mucky
Description: Material UI Component Kit for Yolk
Author: Brian Vanderbusch
Latest version: 1.0.3

# MUCKy
Material UI Component Kit for yolk.js


## Usage

*mucky* exposes a custom `<MDL />` component, which is capable of dynamically rendering
components from [getmdl.io][mdl-io]

You will need to add the getmdl.io `js` and `css` file you desire, by following the instructions for your preferred installation method on the [getmdl.io][mdl-io] site.

Once you have the getmdl.io js/css included in your page, you can dynamically render mdl based components from the getmdl.io site, by using the `<MDL>` component from `@h3/mucky`.

For example:

```
import {h} from 'yolk';
import {MDL} from '@h3/mucky`;

export function MyComponent({props, children, createEventHandler}){
	return (
		<MDL className="mdl-card">
			<div className="mdl-card__title">
				<h2 className="mdl-card__title-text">Welcome</h2>
			</div>
			<div className="mdl-card__supporting-text">
				Lorem ipsum dolor sit amet, consectetur adipiscing elit.
				Mauris sagittis pellentesque lacus eleifend lacinia...
			</div>
			<div className="mdl-card__actions mdl-card--border">
				<a className="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
      Get Started
				</a>
			</div>
			<div className="mdl-card__menu">
				<button className="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect">
					<i className="material-icons">share</i>
			</button>
			</div>
		</MDL>
	)
}
```

[mdl-io]: https://getmdl.io
npm package: @h3c/aes
Description: rollup + eslint + typeScript + babel + uglify + jest
Author: zhangpeng
Latest version: 0.1.7

### @h3c/aes

基于员工头像参数加密

### 使用方法

```js
cnpm i @h3c/aes
//在main.js里
import {  myEncrypt } from '@h3c/aes/lib/index.cjs'
//挂载全局
Vue.prototype.$myEncrypt = myEncrypt
//使用
<a-avatar size="small" :src="$myEncrypt(currentUser.empCode,true)" />

```

#### 参数说明

```js
//avatar为工号 env为当前是否是生产环境
myEncrypt(avatar, env);
```
npm package: @h3channels/sdk
Description: H3Channels client SDK for browser and Node.js
Latest version: 0.1.0

# @h3channels/sdk

H3Channels client SDK for browser and Node.js.

## Installation

```bash
pnpm add @h3channels/sdk
# or
npm install @h3channels/sdk
```

## Usage

See the main [README](../README.md) for usage examples.

## API

### `connect(options)`

Creates and connects a new H3Channels client.

### `H3ChannelsClient`

- `subscribe(channel, options)` - Subscribe to a channel
- `publish(channel, data, options)` - Publish a message
- `disconnect()` - Disconnect from the server
- `on(event, callback)` - Listen to connection state changes
- `off(event, callback)` - Remove event listener

### `Subscription`

- `onMessage(callback)` - Register message handler
- `unsubscribe()` - Unsubscribe from channel

## Transport Modes

- **WebTransport**: Used in browsers when available (Chrome 97+, Edge 97+)
- **WebSocket**: Fallback transport, used in Node.js and when WebTransport is unavailable

## Message Delivery Modes

- **DATAGRAM**: Fast, unreliable delivery. Client automatically drops stale messages based on sequence numbers.
- **RELIABLE_STREAM**: Guaranteed ordered delivery for critical messages.