open-index/open-npm huggingface dataset:
npm package: @mebble/grpc-hello-client
Description: A wrapper over gRPC client stubs for a hello world program
Author: Neil Leeson Syiemlieh
Latest version: 1.0.1

# grpc-hello-client

An npm package that thinly wraps over gRPC client stubs for a gRPC hello world program

## Setup

At the root of the parent project, build the gRPC client stub from the protobuf files
```
$ npm run build:proto
```

Publish the package
```
$ npm login
...
$ npm publish
```
npm package: @mebble/medley
Description: [![CI Status](https://github.com/mebble/medley/workflows/CI/badge.svg)](https://github.com/mebble/medley/actions) [![NPM](https://img.shields.io/npm/v/@mebble/medley?logo=npm&labelColor=000&color=555)](https://www.npmjs.com/package/@mebble/medley)
Latest version: 0.1.1

# medley

[![CI Status](https://github.com/mebble/medley/workflows/CI/badge.svg)](https://github.com/mebble/medley/actions)
[![NPM](https://img.shields.io/npm/v/@mebble/medley?logo=npm&labelColor=000&color=555)](https://www.npmjs.com/package/@mebble/medley)

## Table of Contents

- [Usage](#usage)
- [Installation](#installation)
    * [Using a package manager](#using-a-package-manager)
    * [Using a CDN](#using-a-cdn)
- [API Reference](#api-reference)
- [Contributing](#contributing)

## Usage

```typescript
import { MedleyConfig, startTimer } from "@mebble/medley";

const config: MedleyConfig = {
    name: 'Shoulder stretches',
    timer: {
        type: 'sequence',
        of: [{
            type: 'loop',
            times: 2,
            of: {
                type: 'sequence',
                of: [
                    { type: 'unit', name: 'Left shoulder', duration: 30 },
                    { type: 'unit', name: 'Rest', duration: 10 },
                    { type: 'unit', name: 'Right shoulder', duration: 30 },
                    { type: 'unit', name: 'Rest', duration: 10 },
                ]
            }
        }, {
            type: 'unit',
            name: 'Rest',
            duration: 30
        }]
    }
};

startTimer(config, event => {
    console.log(event)
});
```

## Installation

### Using a package manager

Install with any one of the following package managers:

```
npm install @mebble/medley
yarn add @mebble/medley
pnpm add @mebble/medley
```

### Using a CDN

If your JS code is placed within a `<script type="module">`, you can import as an ES module from a CDN:

```html
<script type="module">
    import medley from 'https://esm.sh/@mebble/medley';
</script>
```

Alternatively, you can import the bundle:

```html
<script src="https://cdn.jsdelivr.net/npm/@mebble/medley@latest/dist/index.umd.js"></script>
```

Here, the library will be available as the global variable `medley`.

## API Reference

The API reference is available on the [website](https://mebble.github.io/medley).

## Contributing

See the contribution guide at [CONTRIBUTING.md](CONTRIBUTING.md).
npm package: @mebsly/img-placeholder-generator
Description: Generate SVG placeholders with custom style with base64 support
Author: mebsly
Latest version: 1.0.3

Generate minimal SVG placeholders with customizable text, colors, and dimensions.

```js
import { generateSVGPlaceholder } from "@mebsly/img-placeholder-generator";

export default function App() {
  const base64Image = generateSVGPlaceholder({
    text: "OK",
    width: 120,
    height: 120,
    bgColor: "#E0FFE0",
    textColor: "#006600",
    fontSize: 36,
    fontFamily: "Courier New",
    borderRadius: 12,
    output: "base64",
  });

  return (
    <div className="App">
      <h2>
        Generate minimal SVG placeholders with customizable text, colors, and
        dimensions.
      </h2>
      <img src={base64Image} alt="placeholder" width={120} height={120} />
    </div>
  );
}
```

```js
const { generateSVGPlaceholder } = require('@mebsly/img-placeholder-generator');

const svg = generateSVGPlaceholder({
  text: "Demo",
  width: 120,
  height: 120,
  bgColor: "#E0FFE0",
  textColor: "#006600",
  fontSize: 36,
  fontFamily: "Courier New",
  borderRadius: 12,
  output: "svg"
});

console.log(svg);

```
npm package: @mebsly/retry
Description: A flexible and configurable retry mechanism for JavaScript functions and fetch requests with exponential delay
Author: mebsly.com
Latest version: 1.0.12

Lightweight retry for JavaScript and fetch requests with exponential delay. Usage: https://github.com/mebsly/retry

```js
const retry = require('@mebsly/retry');

// Retry a function
retry(() => someFunction());

// Retry with custom options
retry(() => someFunction(), {
    retries: 5,
    delay: 1000,
    maxDelay: 5000,
    shouldRetry: (err) => err.code === 'ECONNRESET'
});
```
npm package: @mebsly/smart-console
Description: A smart and colored console logger. No output in production.
Author: Mebsly
Latest version: 1.0.5

A smart and colored console logger. No output in production.

```js
import c from 'smart-console';

c.log("App started");
c.success("User created successfully");
c.warn("Deprecated API usage");
c.error("Unhandled exception!");
```
npm package: @mecatoncheir/bmi
Description: BMI（Body Mass Index）計算と評価を行うJavaScriptライブラリ
Author: mecatoncheir
Latest version: 1.0.0

# @mecatoncheir/bmi

BMI（Body Mass Index）計算と評価を行うJavaScriptライブラリです。

## 特徴

- 精確なBMI計算
- 日本の肥満学会基準に基づく判定
- 複数データの一括処理対応
- 標準体重計算機能
- TypeScript対応（型定義付き）
- 軽量（依存関係なし）

## インストール

```bash
npm install @mecatoncheir/bmi
```

## 基本的な使用方法

```javascript
const { calculateBMI } = require('@mecatoncheir/bmi');

// 身長170cm、体重65kgの場合
const result = calculateBMI(170, 65);

console.log(result);
// {
//   bmi: 22.49,
//   category: "普通体重",
//   height: 170,
//   weight: 65,
//   timestamp: "2025-08-13T12:00:00.000Z"
// }
```

## API リファレンス

### calculateBMI(heightCm, weightKg)

BMIを計算し、カテゴリ判定を行います。

**パラメータ:**
- `heightCm` (number): 身長（cm）
- `weightKg` (number): 体重（kg）

**戻り値:**
- 成功時: `{bmi: number, category: string, height: number, weight: number, timestamp: string}`
- エラー時: `null`

**BMI判定基準:**
- 18.5未満: 低体重（やせ型）
- 18.5以上25未満: 普通体重
- 25以上30未満: 肥満（1度）
- 30以上: 肥満（2度以上）

### calculateMultipleBMI(dataArray)

複数のBMI値を一度に計算します。

**パラメータ:**
- `dataArray` (Array): `[{height: number, weight: number}, ...]` の配列

**使用例:**
```javascript
const { calculateMultipleBMI } = require('@mecatoncheir/bmi');

const data = [
    { height: 170, weight: 65 },
    { height: 160, weight: 50 },
    { height: 180, weight: 80 }
];

const results = calculateMultipleBMI(data);
console.log(results); // 3つの計算結果の配列
```

### calculateStandardWeight(heightCm)

標準体重を計算します（BMI=22として計算）。

**パラメータ:**
- `heightCm` (number): 身長（cm）

**戻り値:**
- 成功時: `number` (標準体重kg)
- エラー時: `null`

**使用例:**
```javascript
const { calculateStandardWeight } = require('@mecatoncheir/bmi');

const standardWeight = calculateStandardWeight(170);
console.log(standardWeight); // 63.58
```

### getBMICategories()

BMIカテゴリの一覧を取得します。

**戻り値:**
カテゴリ情報の配列

## エラーハンドリング

```javascript
const { calculateBMI } = require('@mecatoncheir/bmi');

const result = calculateBMI(0, 65); // 無効な身長
if (result === null) {
    console.log('入力値が無効です');
} else {
    console.log(`BMI: ${result.bmi}`);
}
```

## ライセンス

MIT

## 貢献

プルリクエストや issue の報告を歓迎します。

## サポート

- GitHub Issues: https://github.com/mecatoncheir/bmi/issues
- Email: mecatoncheir@gmail.com

## 更新履歴

### 1.0.0
- 初回リリース
- BMI計算機能
- 複数データ処理機能
- 標準体重計算機能
npm package: @mecc/markdown-it-color
Description: Inline color plugin for markdown-it
Author: mecc
Latest version: 1.0.5

# @mecc/markdown-it-color

## Install / 安装

```shell
npm i @mecc/markdown-it-color
```

## How to use / 如何使用

```javascript
var md = require('markdown-it')()
            .use(require('@mecc/markdown-it-color'))
```

## Options / 配置项

你可以在引用项目时添加配置项，以下为全部的默认配置：
```javascript
var md = require('markdown-it')()
            .use(require('@mecc/markdown-it-color'), {
              classPrefix: 'md-color', // default
              inlineStyle: false, // default
              customColor: {} // default
            })
```

- 设置`classPrefix`可以自定义class前缀，可以在项目中自定义样式：

```javascript
var md = require('markdown-it')()
            .use(require('@mecc/markdown-it-color'), {
              classPrefix: 'hello-world'
            })
md.render('{primary}(sample)')
// => '<span class="hello-world hello-world--primary">sample</span>'
```

- 设置`customColor`可以预定义颜色：
```javascript
var md = require('markdown-it')()
            .use(require('@mecc/markdown-it-color'), {
              customColor: {
                primary: '#409EFF',
                success: '#67C23A',
                warning: '#E6A23C',
                info: '',
                danger: '#F56C6C'
              }
            })

md.render('{primary}(sample)')
// => '<span class="md-color md-color--primary" style="color: #409EFF;">sample</span>'
// 组件读取到customColor配置后，当检测到已知配置项的颜色代码时，会自动添加相应的行内样式
```

设置`inlineStyle`为`true`可以为当前行添加行内样式：

```javascript
var md = require('markdown-it')()
            .use(require('@mecc/markdown-it-color'), {
              inlineStyle: true,
            })

md.render('{#f80}(sample)')
// => '<span class="md-color" style="color: #f80;">sample</span>'
// 注意：组件已设置为仅检测16进制颜色代码
```
npm package: @mecenas/google-maps
Description: for github:mecenariat/cordova-plugin-googlemaps
Author: Piotr Mec
Latest version: 1.0.1

# @mecenas/google-maps (v5.5.0)

@mecenas/google-maps plugin is a wrapper plugin for [cordova-plugin-googlemaps](https://github.com/mecenariat/cordova-plugin-googlemaps) for Ionic framework.

Ionic Native wraps plugin callbacks in a Promise or Observable, providing a common interface for all plugins and making it easy to use plugins with Angular change detection.
npm package: @mecenas/pan360-viewer
Description: Panorama 360 viewer module with hotspot 
Author: Piotr Mec
Latest version: 1.0.12
Deprecated: false

## pan360-viewer

The package allows you to view panoramas in both HMD and normal modes with the possibility of applying clickable markers.
configuration:

`Pan360Options {`
`     id: string; - HTML element identifier in which the panorama will be displayed (required)`
`     width: number; - HTML element width (required)`
`     height: number; - height of HTML element (required)`
`     Zoom: number; - camera zoom (optional, 20 .. 130 by default 70)`
`     firstview: number; - initial rotation of the panorama by a given angle (optional, 0 .. 360 by default 0)`
`     component: HTMLElement; - HTML element in which the panorama will be displayed (optional)`
`     marker: string; - marker image (optional default '/assets/hotspot.png' not included)`
`     hotspots: HotSpot []; - array of clickable markers on the panorama (optional)`
`     mode: number; - If it is 0 then both the reaction to device orientation and manual image dragging are enabled (after releasing the image returns to the device orientation). If 1 then you can switch between manual dragging and device orientation (optional, 0,1 by default 0)`
`}`



Marker object:

`HotSpot {`
`    tilt:number; - angle -90 .. 90`
`    pan:number; - angle 0 .. 360`
`    size:number;
`    name:string;`
`    text:string;`
`}`

Methods:

`    show(image:string):Promise<boolean>;`
`    getScreenShot():string; - screen shot base64 image`
`    toggleHmd(); - switch HMD mode`
`    toggleManual(); - if mode 1 switch between manual drag and device orientation`
`    setHotspotsFunction((hotspotname)=>{ ... }); - set click markers funcrion`
`    destroy(); - destroy renderer and events`
`    setSize(width:number,height:number); - set HTML element dimension`

Property:

`hmd:boolean - get hmd mode read-only `
`manual:boolean - get manual mode read-only `

Example:

on your html page:

`<div id="panorama-360-viewer"></div>` 

in js code:

`   let conf:Pan360Options = { `
`        id: "panorama-360", `
`        height: window.innerHeight, `
`        width: window.innerWidth, `
`        zoom: 100,`
`        hotspots: hotspotsarray`
`   }`
`   let panView = new Pan360View(conf);`
`   panView.show(img).then((success)=>{`
`        // do something`
`    })`
npm package: @mecene/cli
Description: Mecene CLI - Authenticate and setup AI agent video editing
Author: Mecene.ai
Latest version: 0.0.2

# @mecene/cli

Authenticate and setup AI agents for video editing with [Mecene.ai](https://mecene.ai).

## Installation

```bash
npx @mecene/cli
```

Or install globally:

```bash
npm install -g @mecene/cli
mecene
```

## What It Does

The Mecene CLI helps you:

1. **Authenticate** with your Mecene.ai account
2. **Install skills** for your AI coding agent (Claude Code, OpenCode, Codex, Cursor, etc.)

Once set up, your AI agent can read and edit videos through the Mecene API.

## Usage

### Interactive Setup (Recommended)

```bash
npx @mecene/cli
```

This will:
- Check if you're authenticated (and log you in if not)
- Check if Mecene skills are installed
- Offer to install skills for your AI agent

### Individual Commands

```bash
# Authenticate with Mecene.ai
mecene login

# Check authentication status
mecene status

# Print your API token
mecene token

# Remove stored credentials
mecene logout
```

## Installing Skills Directly

If you prefer to install skills manually (without the CLI), use the [skills CLI](https://github.com/vercel-labs/skills):

```bash
npx skills add mecene-studio/skills
```

This installs the Mecene skill to your project for any supported AI agent.

## What Are Skills?

Skills are instruction sets that teach AI agents how to use the Mecene API. Once installed, your agent can:

- **List videos** in your account
- **Read video data** (transcripts, scenes, speakers)
- **Read clips** with timeline overlays
- **Edit overlays** (captions, text, images, shapes)

## Supported AI Agents

Skills work with 30+ AI coding agents including:

- Claude Code
- OpenCode
- Codex
- Cursor
- Windsurf
- GitHub Copilot
- And [many more](https://github.com/vercel-labs/skills#supported-agents)

## Credentials

Your API token is stored locally at `~/.mecene/credentials.json` with secure file permissions (600).

## Links

- [Mecene.ai](https://mecene.ai)
- [Skills Repository](https://github.com/mecene-studio/skills)
- [Agent Skills Specification](https://agentskills.io)

## License

MIT
npm package: @mechairoi/qwik-solid
Description: QwikSolid allows adding Solid components into existing Qwik application
Latest version: 0.2.0

# qwik-solid ⚡️

QwikSolid allows adding Solid components into existing Qwik application

## How to Integrate into a Qwik app

Integration is pretty much the same as <https://qwik.builder.io/docs/integrations/react/>.

First, install `@mechairoi/qwik-solid` with npm, pnpm or yarn.

solid.tsx

```tsx
import { qwikify$ } from '@mechairoi/qwik-solid';

// import Solid component from other package
import { Motion } from 'solid-motionone';

// Convert Solid component to Qwik component
export const QCounter = qwikify$(Counter, { eagerness: 'hover' });
```

index.tsx

```tsx
import { component$ } from '@builder.io/qwik';
import { QCounter } from './solid';

export default component$(() => {
  return (
    <main>
      <QCounter />
    </main>
  );
});
```


Please keep in mind that this is an experimental implementation based on `qwik-react`. So, there might be bugs and unwanted behaviours.

Thanks to https://github.com/BuilderIO/qwik/pull/2291, it has been incredibly helpful.
npm package: @mechakeys/iohook
Description: Node.js global keyboard and mouse hook
Author: Robolab
Latest version: 1.1.1

<p align="center">
  <img width="100%" src="https://github.com/robolab-io/iohook/assets/52982404/edec7f92-70bc-43bf-9ec8-19a0a1be7921"/>
</p>

iohook is a global native keyboard and mouse listener for Node.js. This is a fork of https://github.com/wilix-team/iohook, which is abandoned and unmainntained.

We provide a modern CI pipeline for easy, fast, reliable, builds of iohook for modern versions of Node and Electron. At Robolab, we use this library in [MechaKeys](https://v2.robolab.io), the integrated typing environment.

## Supported Versions
- Versions >= 0.9.4 support Electron 25 and Node 18
- For older version support, use the wilix-team library

## Installation
```sh
# Install MechaKeys iohook
npm install --save @mechakeys/iohook
```

```sh
# Install prebuilt binaries for your platform, architecture, and ABIs.
cd ./node_modules/@mechakeys/iohook
npm i
node install.js
```

By default, prebuilds will be downloaded for your own platform and architecture, but you can download specific ones through your package.json:
```json
"iohook": {
    "targets": [
        "node-108",
        "electron-116"
    ],
    "platforms": [
        "win32",
        "darwin",
        "linux"
    ],
    "arches": [
        "x64",
    ]
}
```

As of right now, we do not build 32-bit versions.
npm package: @mechamobau/simplestorage
Description: The module to simplify the usage of Storage API in React.js
Author: Lucas Viana
Latest version: 0.0.3

# Simple Storage

[![Build Status](https://travis-ci.org/mechamobau/simplestorage.svg?branch=master)](https://travis-ci.org/mechamobau/simplestorage)
[![License](https://badgen.net/github/license/mechamobau/simplestorage)](./LICENSE)
[![Library minified size](https://badgen.net/bundlephobia/min/@mechamobau/simplestorage)](https://bundlephobia.com/result?p=@mechamobau/simplestorage)
[![Library minified + gzipped size](https://badgen.net/bundlephobia/minzip/@mechamobau/simplestorage)](https://bundlephobia.com/result?p=@mechamobau/simplestorage)

The module to simplify the usage of Storage API in React.js

## Installation

This library is published in the NPM registry and can be installed using any compatible package manager.

```sh
npm install simplestorage --save

# For Yarn, use the command below.
yarn add simplestorage
```

### Installation from CDN

This module has an UMD bundle available through JSDelivr and Unpkg CDNs.

```html
<!-- For UNPKG use the code below. -->
<script src="https://unpkg.com/@mechamobau/simplestorage"></script>

<!-- For JSDelivr use the code below. -->
<script src="https://cdn.jsdelivr.net/npm/@mechamobau/simplestorage"></script>

<script>
  // UMD module is exposed through the "simpleStorage" global variable.
  console.log(simpleStorage);
</script>
```

## Usage

This module needs to be used inside a functional component. The `useStorage` hook
return `value` from Storage API and `setValue` change that value.

```javascript
import React, { useState } from 'react';
import { useStorage } from '@mechamobau/simplestorage';

const Todo = () => {
  const [value, setValue] = useStorage('<YOUR-LOCAL-STORAGE-KEY>', {
    placeholder: 'undone'
  });
  const [status, setStatus] = useState(false)

  handleClick = () => {
    setValue(status ? 'done' : 'undone')
    setStatus(!status);
  };

  return (
    <p>Todo Status: {value}</p>
    <button onClick={handleClick}>Toggle Status</button>
  );
};
```

## Documentation

[Documentation generated from source files by Typedoc](./docs/README.md).

## License

Released under [MIT License](./LICENSE).
npm package: @mechanema/pulley
Description: Lift the heavy objects out of basic actions for a Redux store.
Author: Christopher Roussel
Latest version: 1.0.0

# Pulley

In classic mechanics, the wedge was used to lift heavy objects by distributing and
transmitting force.

With Redux, this pulley is primarily used for supporting movement and change of
direction in the mutation of a Redux store. This is done by providing some basic
methods to create a epics (aka sagas) and aggregate them into a root watcher.
npm package: @mechanic-design/create
Description: Create Mechanic projects.
Author: Fernando Florenzano Hernández
Latest version: 0.6.0
Deprecated: Package no longer supported. Please change to create-mechanic

# @mechanic-design/create

## DEPRECATED

Use `npm init mechanic` instead or check [`create-mechanic`](https://github.com/designsystemsinternational/mechanic/tree/main/packages/create-mechanic).
npm package: @mechanic-design/engine-canvas
Description: Mechanic engine that powers the Canvas API.
Author: Rune Skjoldborg Madsen
Latest version: 2.0.0-beta.12

# Mechanic Canvas Engine

## Mechanic engine that powers the Canvas API

### @mechanic-design/engine-canvas

## Usage

```js
export const settings = {
    engine: require("@mechanic-design/engine-canvas)
}
```
npm package: @mechanic-design/engine-p5
Description: Mechanic engine that powers p5.js.
Author: Rune Skjoldborg Madsen
Latest version: 2.0.0-beta.12

# Mechanic p5.js Engine

## Mechanic engine that powers p5.js.

### @mechanic-design/engine-p5

## Usage

As a setting for a design function definition in a Mechanic project:

```js
export const settings = {
    engine: require("@mechanic-design/engine-p5)
}
```
npm package: @mechanic-design/engine-react
Description: Mechanic engine that powers React SVG declaration.
Author: Rune Skjoldborg Madsen
Latest version: 2.0.0-beta.12

# Mechanic React Engine

## Mechanic engine that powers React SVG declaration.

### @mechanic-design/engine-react

## Usage

As a setting for a design function definition in a Mechanic project:

```js
export const settings = {
    engine: require("@mechanic-design/engine-react)
}
```
npm package: @mechanic-design/engine-svg
Description: Mechanic engine that powers string SVG usage.
Author: Rune Skjoldborg Madsen
Latest version: 2.0.0-beta.12

# Mechanic SVG Engine

## Mechanic engine that powers string SVG usage.

### @mechanic-design/engine-svg

## Usage

As a setting for a design function definition in a Mechanic project:

```js
export const settings = {
    engine: require("@mechanic-design/engine-svg)
}
```
npm package: @mechanica/preact-redux
Description: Wraps react-redux up for Preact, without preact-compat
Author: Jason Miller
Latest version: 2.0.4-0

# preact-redux

[![NPM](http://img.shields.io/npm/v/preact-redux.svg)](https://www.npmjs.com/package/preact-redux)
[![travis-ci](https://travis-ci.org/developit/preact-redux.svg)](https://travis-ci.org/developit/preact-redux)

Wraps [react-redux] up for [Preact], without using [preact-compat](https://github.com/developit/preact-compat).

> Think of this as a version of `react-redux` that is pre-aliased to use preact in place of React.

**See [preact-redux-example](https://github.com/developit/preact-redux-example):** _a full working example of `redux` + `preact` using `preact-redux`!_

---


### Usage Example

> This is a contrived example. Please refer to Redux's [Usage with React](http://redux.js.org/docs/basics/UsageWithReact.html) documentation for details on how to work with Redux from Preact.

```js
import { Provider, connect } from 'preact-redux';
import { h, render } from 'preact';

const Main = () => (
	<Provider store={store}>
		<Child />
	</Provider>
);

const Child = connect(
	state => state
)( ({ text, setText }) => (
	<input value={text} onInput={e => setText(e.target.value)} />
) );

render(<Main />, document.body);
```


---


### License

[MIT]


[react-redux]: https://github.com/reactjs/react-redux
[Preact]: https://github.com/developit/preact
[MIT]: http://choosealicense.com/licenses/mit/
npm package: @mechanicalhuman/logger
Description: An opinionated logger exending bunyan
Author: Jorge Proaño
Latest version: 0.4.12

<!--@h1([pkg.name])-->
# @mechanicalhuman/logger
<!--/@-->

<!--@pkg.description-->
An opinionated logger exending bunyan
<!--/@-->

<!--@installation()-->
## Installation

```sh
npm install --save @mechanicalhuman/logger
```
<!--/@-->

<!--@license()-->
## License

[MIT](./LICENSE) © [Jorge Proaño](https://www.hidden-node-problem.com/)
<!--/@-->