modulant-js v0.1.1
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
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Fuck your Licence (Im Rick James, bitch...)
Contact
GitHub: @54rkaz71k
Project Link: https://github.com/54rkaz71k/ModulantJS