Observed since 20 Oct, 21:53 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
007captcha client-side widget and shape analysis engine
Browser widget for 007captcha. Renders challenges, captures user input, and communicates with the server for verification.
pnpm add @007captcha/client
Or via script tag (UMD):
<script src="https://unpkg.com/@007captcha/client/dist/umd/index.global.js"></script>
import { render } from '@007captcha/client';
const widget = render({
siteKey: 'your-secret-key',
container: '#captcha',
method: 'ball',
serverUrl: window.location.origin,
onSuccess: (token) => {
fetch('/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token }),
});
},
});
<div id="captcha"></div>
<script src="https://unpkg.com/@007captcha/client/dist/umd/index.global.js"></script>
<script>
OOSevenCaptcha.render({
siteKey: 'your-secret-key',
container: '#captcha',
method: 'ball',
serverUrl: window.location.origin,
onSuccess(token) {
console.log('Verified:', token);
},
});
</script>
The widget creates a hidden <input name="captcha-token"> in the DOM. For standard form submissions, you can also retrieve the token programmatically:
const token = widget.getToken();
| Method | Description |
|---|---|
'ball' | Follow a moving ball with your cursor in real-time |
'shape' | Draw a randomly assigned shape (circle, triangle, or square) |
'maze' | Navigate a procedurally generated maze from entrance to exit |
'random' | The server picks a random method each time |
All methods require a serverUrl. The server handles session creation, analysis, and token signing — the client is a rendering and input-capture layer.
render(config): CaptchaWidget| Option | Type | Default | Description |
|---|---|---|---|
siteKey | string | required | Secret key shared with server |
container | string | HTMLElement | required | Mount target (CSS selector or element) |
method | 'ball' | 'shape' | 'maze' | 'random' | 'random' | Challenge method |
serverUrl | string | required | Base URL for the captcha server endpoints |
theme | 'light' | 'dark' | 'auto' | 'light' | Widget color theme |
timeLimit | number | varies | Override time limit in ms |
onSuccess | (token: string) => void | — | Called with signed token on pass |
onFailure | (error: Error) => void | — | Called on challenge failure |
onExpired | () => void | — | Called when a token expires |
CaptchaWidgetwidget.getToken() // Returns the current signed token (string)
widget.reset() // Reset and show a new challenge
widget.destroy() // Remove the widget from the DOM entirely
The widget supports 'light', 'dark', and 'auto' themes. In 'auto' mode, it follows the user's system preference via prefers-color-scheme.
render({ theme: 'dark', /* ... */ });
@007captcha/server instance with the appropriate endpoints. See the server package or the Express example for setup.siteKey must match between client and server.Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0Registry latest | 29 Mar 2026 | 0 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:53 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c7e5e53ac763a6d700086f82eaf7b76af43c398cf6f3816897f274f9ea993be4