open-index/open-npm huggingface dataset:
npm package: @prazedotid/protoc
Description: A tool for converting proto buffers (.proto) files into javascript files usable in Closure Compiler with Closure Library.
Author: Amir Saadallah
Latest version: 1.0.1

# Protocol Buffers for Node
A wrapper in Node for the compiled protoc from https://github.com/protocolbuffers/protobuf.

## Version
It's currently using Protocol Buffers `v3.20.3`.

## Platforms
Google only provides binary files for Windows, Linux and OSX in x86_64 and x86_32.

## Examples
There's currently no documentation. Hopefully this example will help.

```JavaScript
var protoc = require("protoc");

protoc.library(["path/to/file.proto", "path/to/file2.proto"], function(err, files) {
  if (err) {
    console.error(err);
    return;
  }

  // Handle the JavaScript Vinyl files.
  // These files can be used in Google Closure Compiler,
  // but they require the files in
  // https://github.com/google/protobuf/tree/master/js
  
  // ...
});
```

It's also possible to directly call the protoc binary file:
```
npx protoc --help
```
npm package: @prazzol/currency-formatter
Description: Format currency in Nepali and international styles with custom prefix support.
Author: Prajwal Gautam
Latest version: 1.0.0

# @prazzol/currency-formatter

A simple and powerful currency formatter for Nepali, International, and any locale-based formats. Useful for applications needing localized number formatting and currency symbols like `रू`, `$`, `€`, etc.

---

## ✨ Features

- 🇳🇵 Nepali number format (e.g., `12,34,567`)
- 🌐 International format (e.g., `1,234,567`)
- 🌍 Locale + currency code support (e.g., `₹12,34,567`, `$1,234,567`)
- 🔣 Optional or custom currency prefix (like `रू`, `Rs`, `$`, `€`)
- 🔒 Fully written in **TypeScript**

---

## 📦 Installation

```bash
npm install @prazzol/currency-formatter
```

## 📚 Usage
```bash
import { formatCurrency } from '@prazzol/currency-formatter';

formatCurrency(1234567);
// → रू 12,34,567

formatCurrency(1234567, { showPrefix: false });
// → 12,34,567

formatCurrency(1234567, { prefix: '$', format: 'international' });
// → $ 1,234,567

formatCurrency(1234567, {
  format: 'locale',
  locale: 'en-US',
  currency: 'USD'
});
// → $1,234,567
```

## 🧰 API
formatCurrency(amount: number, options?: CurrencyFormatOptions): string

| Property     | Type                                      | Default    | Description                                         |
| ------------ | ----------------------------------------- | ---------- | --------------------------------------------------- |
| `format`     | `'nepali' \| 'international' \| 'locale'` | `'nepali'` | Choose format style                                 |
| `prefix`     | `string`                                  | `'रू'`     | Custom prefix (e.g., `'$', 'Rs', '€'`)              |
| `showPrefix` | `boolean`                                 | `true`     | Whether to show the prefix                          |
| `locale`     | `string`                                  | `'en-US'`  | Locale (only used if `format` is `'locale'`)        |
| `currency`   | `string`                                  | `'NPR'`    | Currency code (only used if `format` is `'locale'`) |


## 🔄 Format Types

### 🏷 Nepali Format
```bash
formatCurrency(1234567);
// → रू 12,34,567
```

### 🗺 International Format
```bash
formatCurrency(1234567, {
  prefix: '$',
  format: 'international'
});
// → $ 1,234,567

```

### 🌍 Locale Format (Fully Automatic)
```bash
formatCurrency(1234567, {
  format: 'locale',
  locale: 'fr-FR',
  currency: 'EUR'
});
// → 1 234 567 €

formatCurrency(1234567, {
  format: 'locale',
  locale: 'hi-IN',
  currency: 'INR'
});
// → ₹12,34,567

```

## 🧪 Running Locally for Development
```bash
npm install
npm run test
```
npm package: @prb/effect-evm-safe
Description: Effect-TS integration for Safe Apps
Author: Paul Razvan Berg
Latest version: 3.0.1

# effect-evm-safe

[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Effect](https://img.shields.io/badge/Effect-v3-7C3AED)](https://effect.website)

> [!WARNING]
>
> This is experimental, beta software. It is provided "as is" without warranty of any kind, express or implied.

Safe Apps + Safe multisig utilities for Effect, built on top of `@prb/effect-evm`.

![Banner](./banner.png)

## Installation

```bash
bun add @prb/effect-evm-safe @prb/effect-evm @safe-global/safe-apps-sdk
```

Peer dependencies

- `effect@^3`
- `@effect/platform@^0.93`
- `@prb/effect-evm@^1.0.0`
- `@safe-global/safe-apps-sdk@9.1.0`
- `viem@^2.43`
- Optional: `@wagmi/core@>=2.0.0` (for hooks using wagmi)
- Optional: `react@>=18.2.0`, `react-dom@>=18.2.0` (for React hooks)

## Usage

```typescript
import { Layer } from "effect";
import { makeEffectEvmLayer } from "@prb/effect-evm";
import { SafeAppsServiceLive } from "@prb/effect-evm-safe";

const baseLayer = makeEffectEvmLayer(/* chain configs */, window.ethereum);
const layer = Layer.provideMerge(SafeAppsServiceLive(), baseLayer);
```

## Exports

- Safe Apps service: `SafeAppsService`, `SafeAppsServiceLive`
- Safe detection: `isSafeMultisig`
- Safe simulation: `SafeMultisigSimulationService`, `SafeMultisigSimulationServiceLive`
- Types + errors: `safe/*`
- React hooks: `@prb/effect-evm-safe/react-hooks`

## License

MIT
npm package: @prb/effect-xstate
Description: Effect-TS and xState v5 workflow utilities
Author: Paul Razvan Berg
Latest version: 3.0.1

# @prb/effect-xstate

> [!WARNING]
>
> This is experimental, beta software. It is provided "as is" without warranty of any kind, express or implied.

Effect-TS and xState v5 workflow utilities for React applications.

## Overview

This package provides reusable state machines and React hooks that combine Effect-TS's functional effect system with
xState v5's state management capabilities.

## Features

- **Form Machine**: Generic form workflow with validation, processing, and error handling
- **Facilitator Machine**: Check-then-create workflow for eligibility and resource creation
- **React Hooks**: Type-safe hooks for managing machine state in React components
- **Error Utilities**: Helpers for extracting and displaying structured error data

## Installation

```bash
bun add @prb/effect-xstate effect xstate @xstate/react
```

## Usage

### Form Machine

Create a form workflow that validates inputs before processing:

```typescript
import { createFormMachine } from "@prb/effect-xstate";
import { Effect } from "effect";

const machine = createFormMachine({
  id: "create-stream",
  services: {
    onCheck: (payload) => Effect.succeed(undefined),
    onValidate: (payload) => Effect.succeed({ validated: true }),
    onProcess: ({ payload, preprocess }) => Effect.succeed(undefined),
  },
});
```

### Facilitator Machine

Create a check-then-create workflow:

```typescript
import { createFacilitatorMachine } from "@prb/effect-xstate";
import { Effect } from "effect";

const machine = createFacilitatorMachine({
  id: "claim-airdrop",
  services: {
    onCheck: (payload) => Effect.succeed({ status: "true", transitive: { proof: "0x..." } }),
    onCreate: ({ create, transitive }) => Effect.succeed(undefined),
  },
});
```

### React Hook

```typescript
import { useFacilitatorWorkflow } from "@prb/effect-xstate";

function MyComponent() {
  const workflow = useFacilitatorWorkflow(machine);

  return (
    <div>
      <button onClick={() => workflow.check({ id: 123 })}>
        Check Eligibility
      </button>
      {workflow.status.isEligible && (
        <button onClick={() => workflow.create({ id: 123 })}>
          Create Resource
        </button>
      )}
    </div>
  );
}
```

## Migration (v3.0.0)

- `FormMachineContext.payload` is now `TPayload | null`.
- `FormMachineContext.preprocess` is now `TPreprocess | null`.
- `useFormWorkflow(...).preprocess` now returns `TPreprocess | null`.
- `createFacilitatorMachine` accepts `CREATE` only from `checked` when eligibility `status === "true"`.
- `CREATE` from `failed` is ignored; retry via `CHECK` or `RESET`.
- `createTxMachine` now strictly validates gas/simulate outputs and hash-bearing sign/confirm outputs at runtime.

## License

MIT
npm package: @prb0t/pr
Description: Make PR on GitHub, with JSON description of changes
Author: Mauro Mandracchia
Latest version: 2.0.1

# 🤖 PRB0t

The Pull Request Bot for Anonymous contributions on GitHub!

---

With PRB0t you can make pull request on GitHub by using a `JSON` description of the changes.

## Install

```
npm install -S @prb0t/pr
```

## Usage

```javascript
const pr = new PR(body.user, body.repo, body.branch, body.token);

pr.configure(
  [{ path: '<file-path>', content: '<file-content>' }],
  '<commit-message>',
  '<title>',
  '<description>',
  body.author || {
    name: 'PRB0t',
    email: '34620110+PRB0t@users.noreply.github.com',
  },
);

const { data } = await pr.send(); // data holds the response of the PR creation.
```

with docker:

```shell
docker run --rm p 8000:8000 ideabile/prb0t
```

## What can you do with it?

- If you have a static website hosted in github... you could add a button **Edit this page**.
- You can contribute anonymously to the _Internet 🕸_
- You can upload files...
- You can use your github for storage...
- ... etc... ecc..

## Try it!

```
curl -X POST \
  https://xrbhog4g8g.execute-api.eu-west-2.amazonaws.com/prod/prb0t \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
  "user": "PRB0t",
  "repo": "PRB0t",
  "description": "🤖",
  "title": "Dare to try",
  "commit": "a try",
  "files": [
  	{"path": "README.md", "content": "Failure is when you stop trying to do something."}
  ]
}'
```

## Contribute

[We're looking for Team members](https://github.com/PRB0t/PRB0t/issues/5) to form a little community around this little tool which we believe has a lot of potentialities ✨
npm package: @prbelief/supabase-db-admin
Description: OpenClaw Plugin — Supabase database admin (CRUD + DDL + Raw SQL) with protectedTables guard
Latest version: 1.0.6

# @prbelief/supabase-db-admin

> 🦞 OpenClaw Plugin — จัดการ Supabase database (CRUD + DDL + Raw SQL)

ส่วนหนึ่งของ [openclaw-supabase](../../README.md) monorepo

## Features

- **Structured tools**: list, describe, select, insert, update, delete, create, drop, alter
- **Raw SQL**: read-only + write (สำหรับกรณีพิเศษ)
- **protectedTables**: config table ที่ห้าม write/drop/alter (read ยังได้)
- **Safety guards**: DELETE/UPDATE ต้องมี filter, DROP ต้อง confirm

## Install

```bash
# จาก repo
openclaw plugins install ./packages/db-admin

# จาก npm (หลัง publish)
openclaw plugins install @prbelief/supabase-db-admin
```

## Setup

### 1. รัน Migration

paste `migration.sql` ใน **Supabase SQL Editor** — สร้าง `exec_sql` RPC function

### 2. Config ใน openclaw.json

```jsonc
{
  "allow": ["supabase-db-admin"],
  "plugins": {
    "entries": {
      "supabase-db-admin": {
        "enabled": true,
        "config": {
          "supabaseUrl": "https://YOUR_PROJECT.supabase.co",
          "supabaseServiceKey": "eyJhbGci...",
          "protectedTables": ["longterm_memory", "knowledge_base"],
        },
      },
    },
  },
}
```

## protectedTables

| Operation                     | Protected table | Unprotected table |
| ----------------------------- | :-------------: | :---------------: |
| SELECT / describe             |       ✅        |        ✅         |
| INSERT / UPDATE / DELETE      |   ❌ blocked    |        ✅         |
| DROP / ALTER / TRUNCATE       |   ❌ blocked    |        ✅         |
| Raw SQL write ที่มีชื่อ table |   ❌ blocked    |        ✅         |

## Tools

### Structured (9 tools)

| Tool                | หน้าที่                    | Guard                     |
| ------------------- | -------------------------- | ------------------------- |
| `db_list_tables`    | ดู table ทั้งหมด           | —                         |
| `db_describe_table` | ดู columns, types, indexes | —                         |
| `db_select`         | SELECT ข้อมูล              | —                         |
| `db_insert`         | INSERT rows                | protectedTables           |
| `db_update`         | UPDATE rows                | protectedTables + filter  |
| `db_delete_rows`    | DELETE rows                | protectedTables + filter  |
| `db_create_table`   | CREATE TABLE               | —                         |
| `db_drop_table`     | DROP TABLE                 | protectedTables + confirm |
| `db_alter_table`    | ALTER TABLE                | protectedTables           |

### Raw SQL (2 tools)

| Tool           | หน้าที่                 | Guard                              |
| -------------- | ----------------------- | ---------------------------------- |
| `db_raw_read`  | SELECT / SHOW / EXPLAIN | —                                  |
| `db_raw_write` | Any SQL                 | protectedTables + confirm for DROP |

## License

[MIT](../../LICENSE)
npm package: @prbelief/supabase-vector-memory
Description: OpenClaw Plugin — Supabase pgvector long-term memory + knowledge base with auto-recall
Latest version: 1.0.6

# @prbelief/supabase-vector-memory

> 🦞 OpenClaw Plugin — Long-term memory + Knowledge base ด้วย Supabase pgvector

ส่วนหนึ่งของ [openclaw-supabase](../../README.md) monorepo

## Features

- **2 Tables**: `longterm_memory` (ข้อมูลส่วนตัว, tasks, finance) + `knowledge_base` (ความรู้, docs)
- **Auto-recall**: ค้นทั้ง 2 table ก่อน agent ตอบทุกครั้ง (hook `before_prompt_build`)
- **Semantic search**: pgvector cosine similarity ผ่าน RPC
- **Local embedding**: Ollama + nomic-embed-text (ข้อมูลไม่ออกนอก server)
- **Dedup**: ตรวจซ้ำอัตโนมัติก่อนบันทึก
- **Supabase REST API ตรง**: ไม่มีปัญหา query size limit

## Install

```bash
# จาก repo
openclaw plugins install ./packages/vector-memory

# จาก npm (หลัง publish)
openclaw plugins install @prbelief/supabase-vector-memory
```

## Setup

### 1. รัน Migration

paste `migration.sql` ใน **Supabase SQL Editor**

### 2. Pull embedding model

```bash
ollama pull nomic-embed-text
```

### 3. Config ใน openclaw.json

```jsonc
{
  "allow": ["supabase-vector-memory"],
  "plugins": {
    "entries": {
      "supabase-vector-memory": {
        "enabled": true,
        "config": {
          "supabaseUrl": "https://YOUR_PROJECT.supabase.co",
          "supabaseServiceKey": "eyJhbGci...",
          "ollamaUrl": "http://localhost:11434",
          "embeddingModel": "nomic-embed-text",
          "autoRecall": true,
          "autoRecallResults": 3,
          "minSimilarity": 0.5,
          "userId": "default",
        },
      },
    },
  },
}
```

> หา credentials จาก **Supabase Dashboard → Settings → API Keys**

## Tools

| Tool                   | Table           | หน้าที่                 |
| ---------------------- | --------------- | ----------------------- |
| `supa_store`           | longterm_memory | เก็บข้อมูลส่วนตัว       |
| `supa_store_knowledge` | knowledge_base  | เก็บความรู้             |
| `supa_query`           | เลือกได้        | ค้นหา table เดียว       |
| `supa_query_all`       | ทั้ง 2 table    | ค้นรวม                  |
| `supa_save_fact`       | longterm_memory | บันทึก fact + ตรวจซ้ำ   |
| `supa_save_knowledge`  | knowledge_base  | บันทึกความรู้ + ตรวจซ้ำ |
| `supa_finance_summary` | longterm_memory | สรุปการเงินรายเดือน     |
| `supa_task_update`     | longterm_memory | อัปเดต task             |
| `supa_delete`          | เลือกได้        | ลบ record               |
| `supa_stats`           | ทั้ง 2 table    | นับจำนวน records        |

## License

[MIT](../../LICENSE)
npm package: @prcdavid/quill-image-uploader
Description: A module for Quill rich text editor to allow images to be uploaded to a server instead of being base64 encoded
Latest version: 1.2.3-SNAPSHOT-20221025-1

# Quill ImageHandler Module

A module for Quill rich text editor to allow images to be uploaded to a server instead of being base64 encoded.
Adds a button to the toolbar for users to click, also handles drag,dropped and pasted images.

## Demo

![Image of Yaktocat](/static/quill-example.gif)

### Install

Install with npm:

```bash
npm install quill-image-uploader --save
```

### Webpack/ES6

```javascript
import Quill from "quill";
import ImageUploader from "quill.imageUploader.js";

Quill.register("modules/imageUploader", ImageUploader);

const quill = new Quill(editor, {
  // ...
  modules: {
    // ...
    imageUploader: {
      upload: (file) => {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve(
              "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/JavaScript-logo.png/480px-JavaScript-logo.png"
            );
          }, 3500);
        });
      },
    },
  },
});
```

### Quickstart (React with react-quill)

React Example on [CodeSandbox](https://codesandbox.io/s/react-quill-demo-qr8xd)

### Quickstart (script tag)

Example on [CodeSandbox](https://codesandbox.io/s/mutable-tdd-lrsvh)

```javascript
// A link to quill.js
<script src="/dist/quill.js"></script>
<script src="/dist/quill.imageUploader.min.js"></script>

Quill.register("modules/imageUploader", ImageUploader);

var quill = new Quill(editor, {
  // ...
  modules: {
    // ...
    imageUploader: {
      upload: file => {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve(
              "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/JavaScript-logo.png/480px-JavaScript-logo.png"
            );
          }, 3500);
        });
      }
    }
  }
});
```
npm package: @pre-bundled/browserify-istanbul
Description: A browserify transform for the istanbul code coverage tool
Author: Devon Govett
Latest version: 3.0.1

# browserify-istanbul

A [browserify](http://github.com/substack/node-browserify) transform for the [istanbul](https://github.com/gotwarlost/istanbul) code coverage tool.

## Installing

    npm install --save-dev browserify-istanbul

## Usage

There are several ways to register browserify transforms: on the command line, in your `package.json`, or using the browserify API.
You can use all of these with browserify-istanbul: see the [browserify docs](http://github.com/substack/node-browserify) for more info.

There are a few options available to browserify-istanbul when you use it from JavaScript.  They are shown in the following code example:

```javascript
var istanbul = require('browserify-istanbul');

// use without any options...
browserifyBundle.transform(istanbul);

// or with some options...
browserifyBundle.transform(istanbul({
  // ignore these glob paths (the ones shown are the defaults)
  ignore: ['**/node_modules/**', '**/bower_components/**', '**/test/**', '**/tests/**', '**/*.json'],

  // by default, any paths you include in the ignore option are ignored
  // in addition to the defaults. set the defaultIgnore option to false
  // to only ignore the paths you specify.
  defaultIgnore: true
}));
```

### Command line

- without options:

```
./node_modules/.bin/browserify -t browserify-istanbul test/test-*.js -o bundle.js
```

- with options

```
./node_modules/.bin/browserify -t [ browserify-istanbul --ignore "**/bower_components/**" ] test/test-*.js -o bundle.js
```

### Interacting With Coverage Reports

To load and manipulate coverage reports, the command line tool [nyc](https://www.npmjs.com/package/nyc) can be used:

1. output the the `__coverage__` object to `./.nyc_output/coverage.json`.
  * this can be facilitated using a library like [mocha-phantomjs-istanbul](https://www.npmjs.com/package/mocha-phantomjs-istanbul).
2. execute nyc with a list of [reporters](https://github.com/istanbuljs/istanbul-reports/tree/master/lib).
  * `nyc report --reporter=lcov --reporter=text-summary`.

See [istanbul.js.org](https://istanbul.js.org/) for more examples and documentation.

## License

MIT