open-index/open-npm huggingface dataset:
npm package: @nostrbox/core
Description: Core functionality for NostrBox - a TypeScript library for both Node.js and web environments
Latest version: 1.15.1

# NostrBox Core

A TypeScript library providing core functionality for NostrBox, designed to work in both Node.js and web environments.

## Features

- 🚀 **Universal**: Works in Node.js and web browsers
- 🔒 **Type Safe**: Full TypeScript support with strict typing
- 📦 **NPM Ready**: Properly configured for npm publishing
- 🧪 **Tested**: Jest testing framework with coverage
- ✨ **Formatted**: Prettier with consistent code style
- 🏗️ **Build System**: Rollup for multiple output formats

## Installation

```bash
npm install @nostrbox/core
```

## Usage

### Basic Usage

```typescript
import { NostrBox } from '@nostrbox/core'

const nostrBox = new NostrBox()
```

### CLI Functionality

```typescript
import { NostrCli } from '@nostrbox/core'

const cli = new NostrCli()

// NIP-05 lookup
const result = await cli.nip05Lookup('dave@domain.com', 'hex')

// Domain validation
const validation = await cli.nip05Check('domain.com')
```

## Development

### Prerequisites

- Node.js >= 16.0.0
- npm or yarn

### Setup

```bash
# Install dependencies
npm install

# Build the project
npm run build

# Run tests
npm test

# Run tests in watch mode
npm run test:watch

# Check formatting
npm run lint

# Fix formatting
npm run lint:fix

# Type checking
npm run type-check
```

### Project Structure

```
src/
├── index.ts          # Main entry point
├── types/            # Type definitions
├── utils/            # Utility functions
└── public/             # Core functionality exposed for usage
```

## Building

The project builds to multiple formats:

- **CommonJS**: `dist/index.js` (for Node.js)
- **ES Modules**: `dist/index.esm.js` (for modern bundlers)
- **Type Definitions**: `dist/index.d.ts`

## Testing

Tests are written using Jest and TypeScript. Run the test suite with:

```bash
npm test
```

## Examples

Run the CLI demo to see the library in action:

```bash
npm run cli:demo
```

This demonstrates NIP-05 lookup, domain validation, and error handling functionality.

## Publishing

This project uses Gitea Actions for automated publishing to npm.

### 3. Semantic Versioning

This project uses semantic versioning with conventional commits. The version is automatically determined based on your commit messages: