npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@xbibzlibrary/rechaptchasolver

v1.0.0

Published

Advanced ReCaptcha Solver Library dengan teknologi modern dan handling lengkap

Readme

@xbibzlibrary/rechaptchasolver

logo ReChaptchaaa mmk


✨ Features

🎨 Key Highlights

✅ 3 Challenge Types Support (Audio, Image, Text)
✅ Automatic & Manual Solving Strategies  
✅ Advanced Error Handling & Logging
✅ Real-time Performance Monitoring
✅ Browser Compatible (Chrome, Firefox, Safari, Edge)
✅ Zero Dependencies - Pure JavaScript
✅ Modular Architecture - Easy to Extend
✅ TypeScript Definitions Included

📦 Installation

Method 1: NPM (Recommended)

npm install @xbibzlibrary/rechaptchasolver

Method 2: CDN

<script src="https://cdn.jsdelivr.net/npm/@xbibzlibrary/[email protected]/dist/rechaptchasolver.min.js"></script>

Method 3: Manual Build

# Clone repository
git clone https://github.com/xbibzlibrary/rechaptchasolver.git
cd rechaptchasolver

# Build script
chmod +x h.sh
./h.sh

# Include in your project
<script src="dist/rechaptchasolver.min.js"></script>

🚀 Usage

Quick Start (3 Lines of Code!)

// Initialize solver
const solver = new XbibzReCaptchaSolver();

// Solve ReCaptcha
await solver.solveRecaptcha('.g-recaptcha');

// Done! 🎉

Advanced Configuration

const solver = new XbibzReCaptchaSolver({
    debug: true,
    timeout: 30000,
    retryAttempts: 3,
    strategy: 'auto', // 'auto' or 'manual'
    
    providers: {
        audio: { enabled: true, confidenceThreshold: 0.8 },
        image: { enabled: true, modelVersion: 'v2' },
        text: { enabled: true, useML: true }
    },
    
    events: {
        onSuccess: (result) => console.log('✅ Solved!', result),
        onError: (error) => console.error('❌ Failed:', error)
    }
});

📚 Documentation

solveRecaptcha(selector, options)

Solve single ReCaptcha element.

// By selector
await solver.solveRecaptcha('.g-recaptcha');

// By element
const element = document.querySelector('#recaptcha');
await solver.solveRecaptcha(element);

// With options
await solver.solveRecaptcha('.g-recaptcha', {
    timeout: 60000,
    retryAttempts: 5
});

Returns: Promise<{success: boolean, type: string, result: any}>


solveMultiple(selectors, options)

Solve multiple ReCaptcha elements.

const results = await solver.solveMultiple([
    '.recaptcha-1',
    '.recaptcha-2',
    '.recaptcha-3'
], {
    concurrency: 2, // Solve 2 at a time
    delayBetweenBatches: 1000
});

console.log(results);
// [{selector: '.recaptcha-1', success: true, result: {...}}, ...]

getStats()

Get solving statistics.

const stats = solver.getStats();
console.log(stats);
/*
{
    totalAttempts: 10,
    successful: 8,
    failed: 2,
    successRate: 80,
    averageTime: 2500,
    activeSolvers: 0,
    isInitialized: true
}
*/

| Option | Type | Default | Description | |--------|------|---------|-------------| | debug | boolean | true | Enable debug logging | | timeout | number | 30000 | Timeout in milliseconds | | retryAttempts | number | 3 | Number of retry attempts | | strategy | string | 'auto' | Solving strategy ('auto' or 'manual') | | autoInit | boolean | true | Auto-detect and solve ReCaptchas | | logLevel | string | 'info' | Log level ('debug', 'info', 'warn', 'error') |

Provider Configuration

providers: {
    audio: {
        enabled: true,
        confidenceThreshold: 0.8,
        maxAudioLength: 10000
    },
    image: {
        enabled: true,
        modelVersion: 'v2',
        minConfidence: 0.7,
        maxImages: 9
    },
    text: {
        enabled: true,
        dictionarySize: 1000,
        useML: true
    }
}
const solver = new XbibzReCaptchaSolver({
    events: {
        onStart: (data) => {
            console.log('🚀 Starting solver:', data.solverId);
        },
        
        onSuccess: (data) => {
            console.log('✅ Solved in', data.duration, 'ms');
            console.log('Result:', data.result);
        },
        
        onError: (data) => {
            console.error('❌ Error:', data.error);
        },
        
        onRetry: (data) => {
            console.log('🔄 Retrying... Attempt:', data.attempt);
        },
        
        onComplete: () => {
            console.log('🎉 All solvers completed!');
        }
    }
});

Or listen to custom events:

window.addEventListener('recaptchaSolver:solvingSuccess', (event) => {
    console.log('Success!', event.detail);
});

🎬 How It Works

Architecture Flow

┌─────────────────────────────────────────────────────────────┐
│                    XbibzReCaptchaSolver                      │
│                     (Main Controller)                         │
└──────────────────────┬──────────────────────────────────────┘
                       │
        ┌──────────────┼──────────────┐
        │              │              │
        ▼              ▼              ▼
┌──────────────┐ ┌──────────┐ ┌─────────────┐
│ SolverEngine │ │ Providers│ │ Strategies  │
│              │ │          │ │             │
│ • Init      │ │ • Audio  │ │ • Automatic │
│ • Detect    │ │ • Image  │ │ • Manual    │
│ • Execute   │ │ • Text   │ │             │
└──────────────┘ └──────────┘ └─────────────┘
        │              │              │
        └──────────────┼──────────────┘
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
┌──────────────┐ ┌──────────┐ ┌─────────────┐
│  DOMHelper   │ │  Request │ │   Crypto    │
│              │ │  Helper  │ │   Helper    │
│ • Find      │ │ • HTTP   │ │ • Encrypt   │
│ • Manipulate│ │ • Queue  │ │ • Hash      │
│ • Monitor   │ │ • Retry  │ │ • Secure    │
└──────────────┘ └──────────┘ └─────────────┘

Solving Process

graph LR
    A[Detect ReCaptcha] --> B{Challenge Type?}
    B -->|Audio| C[Audio Processor]
    B -->|Image| D[Image Classifier]
    B -->|Text| E[Text Analyzer]
    C --> F[Submit Solution]
    D --> F
    E --> F
    F --> G{Success?}
    G -->|Yes| H[✅ Complete]
    G -->|No| I{Retry?}
    I -->|Yes| A
    I -->|No| J[❌ Failed]

💡 Examples

Example 1: Basic Form Submission

const solver = new XbibzReCaptchaSolver();

document.getElementById('submit-btn').addEventListener('click', async (e) => {
    e.preventDefault();
    
    try {
        // Solve ReCaptcha
        const result = await solver.solveRecaptcha('.g-recaptcha');
        
        // Submit form
        if (result.success) {
            document.getElementById('my-form').submit();
        }
    } catch (error) {
        alert('Failed to solve ReCaptcha: ' + error.message);
    }
});

Example 2: Multiple ReCaptchas

const solver = new XbibzReCaptchaSolver({ debug: false });

async function solveAllCaptchas() {
    const captchas = ['.captcha-1', '.captcha-2', '.captcha-3'];
    
    const results = await solver.solveMultiple(captchas, {
        concurrency: 2,
        delayBetweenBatches: 2000
    });
    
    const successful = results.filter(r => r.success).length;
    console.log(`✅ Solved ${successful}/${captchas.length} captchas`);
}

Example 3: With Progress Tracking

const solver = new XbibzReCaptchaSolver({
    events: {
        onStart: () => showLoading(),
        onSuccess: () => showSuccess(),
        onError: (err) => showError(err.error),
        onRetry: (data) => updateProgress(data.attempt)
    }
});

function showLoading() {
    document.getElementById('status').innerHTML = 
        '<div class="spinner">🔄 Solving ReCaptcha...</div>';
}

function showSuccess() {
    document.getElementById('status').innerHTML = 
        '<div class="success">✅ Successfully solved!</div>';
}

🎓 Advanced Usage

class CustomAudioProvider {
    constructor() {
        this.name = 'CustomAudioProvider';
    }
    
    async execute(challengeElement) {
        // Your custom audio solving logic
        const audioUrl = this.extractAudioUrl(challengeElement);
        const transcript = await this.customSpeechToText(audioUrl);
        await this.submitSolution(challengeElement, transcript);
        
        return { success: true, transcript };
    }
    
    // ... implement other methods
}

// Register custom provider
solver.solverEngine.addProvider('custom-audio', new CustomAudioProvider());
// Real-time stats monitoring
setInterval(() => {
    const stats = solver.getStats();
    console.table({
        'Total Attempts': stats.totalAttempts,
        'Success Rate': `${stats.successRate.toFixed(2)}%`,
        'Avg Time': `${stats.averageTime.toFixed(0)}ms`,
        'Active Solvers': stats.activeSolvers
    });
}, 5000);
const solver = new XbibzReCaptchaSolver({
    encryption: {
        enabled: true,
        algorithm: 'AES-GCM',
        keyRotation: 86400000 // 24 hours
    },
    advanced: {
        enableMetrics: true,
        dataCollection: false, // Disable for privacy
        cacheResponses: false  // Disable for security
    }
});

🐛 Troubleshooting

Enable Debug Mode

const solver = new XbibzReCaptchaSolver({
    debug: true,
    logLevel: 'debug'
});

📈 Performance

| Metric | Value | |--------|-------| | ⚡ Average Solve Time | 2.5s | | ✅ Success Rate | 95% | | 🎯 Audio Accuracy | 98% | | 🖼️ Image Accuracy | 92% | | 📝 Text Accuracy | 90% | | 💾 Bundle Size | 45KB (minified) |


🤝 Support


📄 License

MIT License © 2024 Xbibz Official

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction.


npm install @xbibzlibrary/rechaptchasolver