modulant-js
v0.1.1
Published
Stealth web extension framework for intercepting and routing web requests
Downloads
170
Maintainers
Readme
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