open-index/open-npm huggingface dataset:
npm package: @stratpoint-fe/react-onclickout
Description: An ES6-friendly on-click-outside React component.
Author: Bob Lauer
Latest version: 1.0.0

> **Forked from `boblauer/react-onclickout` to include React 18.x compatibility.**

# An ES6-friendly on-click-outside React component.

This is a React component that can be used to listen for clicks outside of a given component. As an example, you may need to hide a menu when a user clicks elsewhere on the page.

This component was created specifically to support ES6-style React components. If you want to use a mixin instead, I would recommend the [react-onclickoutside](https://github.com/Pomax/react-onclickoutside) mixin.

## Installation

```
npm install @stratpoint-fe/react-onclickout --save
```

## React Version Support

For React `0.14` or later, use version `2.x` of this package. For React `0.13` or earlier, use version `1.x` of this package.

## Usage

There are two ways to use this component.

### As a wrapper component

```jsx
const ClickOutHandler = require("react-onclickout");

class ExampleComponent extends React.Component {
  onClickOut(e) {
    alert("user clicked outside of the component!");
  }

  render() {
    return (
      <ClickOutHandler onClickOut={this.onClickOut}>
        <div>Click outside of me!</div>
      </ClickOutHandler>
    );
  }
}
```

### As a base component

```jsx
const ClickOutComponent = require("react-onclickout");

class ExampleComponent extends ClickOutComponent {
  onClickOut(e) {
    alert("user clicked outside of the component!");
  }

  render() {
    return <div>Click outside of me!</div>;
  }
}
```

## Ignoring Elements

There are times when you may want to ignore certain elements that were clicked outside of the target component. You can handle such a scenario by inspecting the event passed to your `onClickOut` method handler.

```jsx
const ClickOutHandler = require("react-onclickout");

class ExampleComponent extends React.Component {
  onClickOut(e) {
    if (hasClass(e.target, "ignore-me")) return;
    alert("user clicked outside of the component!");
  }

  render() {
    return (
      <ClickOutHandler onClickOut={this.onClickOut}>
        <div>Click outside of me!</div>
      </ClickOutHandler>
    );
  }
}
```

That's pretty much it. Pull requests are more than welcome!
npm package: @stratum-hq/mongodb
Description: MongoDB tenant isolation for Stratum — shared collection, collection-per-tenant, and database-per-tenant strategies
Latest version: 0.1.0

# @stratum-hq/mongodb

MongoDB tenant isolation adapters for Stratum.

Three isolation strategies:
- **Shared collection** — tenant_id field injection via Collection Proxy
- **Collection-per-tenant** — `{collection}_{slug}` naming convention
- **Database-per-tenant** — dedicated database with MongoPoolManager LRU cache

## Installation

```bash
npm install @stratum-hq/mongodb mongodb
```
npm package: @stratum-hq/stratum
Description: Drop-in hierarchical multi-tenancy for Node.js — tenant hierarchy, config inheritance, permissions, audit, and GDPR in one library.
Latest version: 0.0.1

# @stratum-hq/stratum

> This package is a placeholder to reserve the npm name. Use `@stratum-hq/lib` for the direct library or `@stratum-hq/sdk` for the HTTP client.
npm package: @stratum-mcp/mcp-proxy
Description: MCP proxy server combining multiple backends with auth, rate limiting, and billing
Author: Muntaha Tanbirullah
Latest version: 1.0.0

# Foxy MCP Proxy

JSON-RPC router combining multiple MCP backends into one endpoint. Supports STDIO (local) and HTTP (remote) transports with API key auth and Stripe billing.

## Quick Start

```bash
npx @stratum/mcp-proxy
```

Or install globally:

```bash
npm install -g @stratum/mcp-proxy
mcp-proxy
```

## MCP Client Configuration

### Claude Desktop (STDIO mode)

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "foxy-proxy": {
      "command": "npx",
      "args": ["@stratum/mcp-proxy"]
    }
  }
}
```

### Remote HTTP Mode

For remote access with API key authentication:

```json
{
  "mcpServers": {
    "foxy-proxy": {
      "url": "https://your-proxy.koyeb.app/mcp",
      "headers": {
        "Authorization": "Bearer mcp_sk_your_api_key"
      }
    }
  }
}
```

Get your API key from the [dashboard](https://your-dashboard.vercel.app).

## Features

- **Multi-backend routing** - Combine multiple MCP servers with namespaced tools
- **Dual transport** - STDIO for local, HTTP for remote access
- **API key authentication** - SHA-256 hashed keys with `mcp_sk_` prefix
- **Usage-based billing** - Stripe Meters API integration
- **Rate limiting** - Per-user request limits by tier
- **Dashboard** - Next.js app for key management and billing

## Tier Limits

| Tier | Requests/month | Backends | Price |
|------|----------------|----------|-------|
| free | 5,000 | 3 | $0 |
| pro | 100,000 | 10 | $7/mo |
| max | 500,000 | unlimited | $10/mo |

## Environment Variables

### Required for HTTP mode

| Variable | Description |
|----------|-------------|
| `SUPABASE_URL` | Supabase project URL |
| `SUPABASE_SERVICE_ROLE_KEY` | Supabase service role key |
| `UPSTASH_REDIS_REST_URL` | Upstash Redis URL for rate limiting |
| `UPSTASH_REDIS_REST_TOKEN` | Upstash Redis token |

### Optional

| Variable | Description | Default |
|----------|-------------|---------|
| `PORT` | HTTP server port | `3000` |
| `HTTP_MODE` | Enable HTTP mode | `false` |
| `ALLOWED_HOSTS` | Comma-separated allowed hosts | `localhost,127.0.0.1` |

## Backend Configuration

Configure backends in `config/backends.json`:

```json
{
  "backends": [
    {
      "name": "filesystem",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
    },
    {
      "name": "github",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxx"
      }
    }
  ]
}
```

Tools are namespaced: `filesystem__read_file`, `github__search_repositories`.

## Development

```bash
# Clone and install
git clone https://github.com/anthropic/mcp-proxy.git
cd mcp-proxy
bun install

# STDIO mode (local)
bun run dev:stdio

# HTTP mode (remote)
bun run dev:http

# Dashboard
cd dashboard && bun run dev
```

## License

MIT