open-index/open-npm huggingface dataset:
npm package: @livewing/eslint-config
Description: ESLint shareable configs
Author: livewing.net
Latest version: 1.0.6
Deprecated: This package has been deprecated and is no longer maintained.

# `@livewing/eslint-config`

[![CI](https://github.com/livewing/eslint-config/workflows/CI/badge.svg)](https://github.com/livewing/eslint-config/actions?query=workflow%3ACI)
[![LICENSE](https://img.shields.io/github/license/livewing/eslint-config)](./LICENSE)
[![npm](https://img.shields.io/npm/v/@livewing/eslint-config)](https://www.npmjs.com/package/@livewing/eslint-config)

ESLint [shareable configs](https://eslint.org/docs/developer-guide/shareable-configs.html)

## Installation

```sh
npm i -D eslint prettier typescript @livewing/eslint-config
```

## Usage

Create `.editorconfig` file in your project root.

```ini
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
```

Then specify [`@livewing`](./src/index.yml) in the `extends` section of your ESLint configuration.

```yaml
# .eslintrc.yml

root: true
extends: "@livewing"
```

If you are using React, specify [`@livewing/eslint-config/react`](./src/react.yml) instead of `@livewing`.

```yaml
# .eslintrc.yml

root: true
extends: "@livewing/eslint-config/react"
```

## Examples

### Next.js + Tailwind CSS

```sh
npm i -D eslint-config-next eslint-plugin-tailwindcss
```

```yaml
# .eslintrc.yml

root: true
extends:
  - "@livewing/eslint-config/react"
  - next/core-web-vitals
  - plugin:tailwindcss/recommended
rules:
  jsx-a11y/anchor-is-valid: off
```

## Visual Studio Code settings

```jsonc
// .vscode/extensions.json

{
  "recommendations": [
    "dbaeumer.vscode-eslint",
    "EditorConfig.EditorConfig",
    "esbenp.prettier-vscode"
  ]
}
```

```jsonc
// .vscode/settings.json

{
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "typescript.tsdk": "node_modules/typescript/lib",
  "[javascript]": {
    "editor.formatOnSave": false
  },
  "[javascriptreact]": {
    "editor.formatOnSave": false
  },
  "[typescript]": {
    "editor.formatOnSave": false
  },
  "[typescriptreact]": {
    "editor.formatOnSave": false
  }
}
```
npm package: @livex/contracts
Description: Contratos compartidos LIVEX (OpenAPI v1 + esquemas de eventos)
Latest version: 0.1.4

# @livex/contracts

Contratos compartidos (OpenAPI v1 + esquemas de eventos) del MVP.

## Uso

```ts
import { openapi, BookingConfirmed } from "@livex/contracts";

console.log(openapi.info.version); // "1.0.0"
console.log(BookingConfirmed.title); // "booking.confirmed"
npm package: @livhana/age-gate-mcp
Description: MCP server for 21+ age verification and 50-state hemp compliance. Fail-closed, zero dependencies beyond MCP SDK.
Author: Jesse Niesen
Latest version: 18.0.34

# @livhana/age-gate-mcp

MCP server for 21+ age verification and 50-state hemp/cannabis compliance. Fail-closed design -- access denied by default.

## Tools

| Tool | Description |
|------|-------------|
| `verify_age` | Check if a birth date passes the 21+ minimum age requirement |
| `check_state` | State-level hemp compliance check (legality, THC limits, smokable bans, online sales) |
| `compliance_matrix` | Full 50-state + DC compliance matrix |
| `age_gate_snippet` | Generate embeddable HTML/JS age gate for licensee websites |

## Install

```bash
npm install -g @livhana/age-gate-mcp
```

## Configure (Claude Desktop)

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "age-gate": {
      "command": "npx",
      "args": ["-y", "@livhana/age-gate-mcp"]
    }
  }
}
```

## Configure (Cursor / VS Code)

Add to your MCP settings:

```json
{
  "age-gate": {
    "command": "npx",
    "args": ["-y", "@livhana/age-gate-mcp"]
  }
}
```

## Transport Modes

Set the `MCP_TRANSPORT` environment variable:

| Value | Description | Default |
|-------|-------------|---------|
| `stdio` | Standard I/O (CLI/IDE integration) | Yes |
| `http` | Streamable HTTP on `MCP_PORT` (default 3101) | No |
| `sse` | Server-Sent Events on `MCP_PORT` (default 3101) | No |

## Usage Examples

### Verify Age

```
Use the verify_age tool with birth_year=1990, birth_month=6, birth_day=15
```

### Check State Compliance

```
Use the check_state tool with state=TX, product_type=flower
```

### Generate Age Gate for a Website

```
Use the age_gate_snippet tool with business_name="My Hemp Shop", state=TX, license_number="DSHS #690"
```

## Compliance

- Fail-closed: if verification fails or data is invalid, access is denied
- Conservative age calculation: if birth month/day are omitted, assumes birthday has not occurred yet this year
- State-specific minimums: most states require 21+, configurable per jurisdiction
- COA requirements and smokable bans tracked per state

## Source

Built by Reggie & Dro LLC. Compliance data from the CRAFT framework.

## License

MIT