npm package: @nightnetwork/enigma
Description: Modular transport wrapper for bare-mux that enables composable transport functionality through a plugin system
Author: Amplify
Latest version: 1.0.0

# Enigma

A modular transport wrapper for bare-mux that enables composable transport functionality through a module system.

## What is Enigma?

Enigma is a framework that wraps base transports and allows you to layer multiple capabilities through modules:

- **Middleware** - Request/response interception and modification
- **Protocol Conversion** - WebSocket → WebRTC, WebSocket → WebTransport
- **Security** - Encryption, authentication, custom protocols
- **Performance** - Caching, compression, optimization
- **Monitoring** - Logging, analytics, debugging

Instead of creating monolithic transport implementations, Enigma lets you compose functionality from independent, reusable modules.

## Installation

```bash
npm install @nightnetwork/enigma
```

## Quick Start

```javascript
import BareMux from '@mercuryworkshop/bare-mux';

const connection = new BareMux.BareClient();
await connection.setTransport('/enigma/index.mjs', [{
  base: '/epoxy/index.mjs',
  wisp: 'wss://wisp.example.com/',
  modules: [
    '/modules/logger.mjs'
  ]
}]);

console.log('Enigma ready!');
```

## Features

- ✅ **Composable** - Mix and match modules for your use case
- ✅ **Type-safe** - Full TypeScript support with comprehensive types
- ✅ **Extensible** - Create custom modules with simple API
- ✅ **Priority-based** - Control execution order with module priorities
- ✅ **Zero Overhead** - Unused hooks have zero performance impact
- ✅ **Runtime Management** - Enable/disable modules dynamically

## Architecture

```
Client Request
    ↓
EnigmaTransport
    ↓
[Module 1: Priority 80] - Authentication
    ↓
[Module 2: Priority 50] - Content modification
    ↓
[Module 3: Priority 20] - Logging
    ↓
Base Transport (Epoxy, Curl, etc.)
    ↓
Response flows back through modules
```

## Documentation

📚 **[Complete Documentation](./docs/)** - Full documentation hub

### Essential Guides

- **[Getting Started](./docs/getting-started.md)** - Installation and first module
- **[API Reference](./docs/api-reference.md)** - Complete API documentation
- **[Type System](./docs/types.md)** - TypeScript type reference
- **[Examples](./docs/examples.md)** - Practical code examples

## Demo

A complete demo is available in the `demo/` directory:

```bash
cd demo
npm install
npm start
```

Visit `http://localhost:8080` to see Enigma in action with bare-mux and Scramjet.

## Module Priority Guidelines

- **90-100**: Protocol modifications (RTC, Oxygen)
- **80-89**: Security (encryption, auth)
- **50-79**: Middleware systems (Reflux)
- **40-49**: Caching
- **10-39**: Logging/monitoring
- **0**: Default

Higher priority = executes first in the request chain.

## License

Apache2 License - see [LICENSE](./LICENSE) file for details.

## Related Projects

- [@nightnetwork/reflux](https://github.com/Obsidian-Dev-Labs/Reflux) - Content modification module
- [@mercuryworkshop/bare-mux](https://github.com/MercuryWorkshop/bare-mux) - Transport multiplexer
- [@mercuryworkshop/scramjet](https://github.com/MercuryWorkshop/scramjet) - Web proxy runtime


#### AI was used to write documentation for this codebase and may not be completely accurate because im tired & lazy, however AI slop is not tolerated well in the codebase, other than potentiall writing a simple demo