0.1.1 • Published 8 months ago

modulant-js v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Modulant JS

Overview

Modulant is a stealth web extension framework designed to intercept and route web requests dynamically, enabling you to enhance third-party websites without modifying their source code.

Installation

# NPM
npm install modulant-js

# Or clone the repository
git clone https://github.com/54rkaz71k/ModulantJS.git

Distributed Client-Side Proxy Tool

Modulant.js is a powerful JavaScript library that provides a distributed proxy mechanism for intercepting and routing web navigation and AJAX requests through a hidden iframe, allowing you to enhance vendor platforms without breaking their core experience.

Features

  • šŸ”— Link Interception: Capture and proxy all <a> tag navigations
  • 🌐 AJAX Request Routing: Intercept and route fetch/AJAX requests
  • šŸ›”ļø Secure Communication: Uses postMessage for inter-frame communication
  • šŸ”€ Dynamic Routing: Configure primary and secondary server routing
  • šŸ“¦ Lightweight and Easy to Use

Project Structure

modulant/
│
ā”œā”€ā”€ src/
│   └── modulant.js            # Core Modulant library
│
ā”œā”€ā”€ config/
│   ā”œā”€ā”€ global-setup.js        # Test setup configuration
│   ā”œā”€ā”€ global-teardown.js     # Test cleanup configuration
│   └── playwright.config.js   # Playwright test configuration
│
└── tests/
    ā”œā”€ā”€ mocks/                 # Mock servers and test pages
    │   ā”œā”€ā”€ test-server.js     # Test server implementation
    │   └── test-page.html     # Test page for integration tests
    └── playwright/            # Integration tests
        ā”œā”€ā”€ modulant.playwright.spec.js
        └── performance.playwright.spec.js

Usage

Basic Initialization

// Using npm package
import Modulant from 'modulant-js';
// Or using direct include
// const { Modulant } = require('modulant-js');

const modulant = await Modulant.init({
    primaryServerURL: 'https://primary-server.com',
    secondaryServerURL: 'https://secondary-server.com',
    routes: [
        { 
          match: { 
            hostname: 'primary-server.com',
            path: '/api/*'
          },
          proxy: { target: 'secondary' }
        }
    ],
    defaultHeaders: {
        'X-Modulant-Proxy': 'true'
    }
});

For detailed API documentation and advanced usage, please refer to API.md.

For a quick overview of common use cases and examples, check out TLDR.md.

For detailed technical architecture, see architecture.md.

Development

Available Scripts

# Run all tests
npm test

# Run tests with debug mode
npm run test:debug

# Run tests with console output
npm run test:console

# Start development server
npm run dev

# Run linting
npm run lint

Debug Logging

Enable debug logging in Node.js:

process.env.DEBUG_MODULANT = 'true';

Enable debug logging in browser:

localStorage.setItem('DEBUG_MODULANT', 'true');

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Fuck your Licence (Im Rick James, bitch...)

Contact

GitHub: @54rkaz71k

Project Link: https://github.com/54rkaz71k/ModulantJS