Socket
Book a DemoInstallSign in
Socket

@chess-captcha/core

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package was removed
Sorry, it seems this package was removed from the registry

@chess-captcha/core

A chess-based CAPTCHA library that generates mate-in-1 puzzles using Stockfish engine. Built with TypeScript, React, and chess.js. For the React chessboard component for this CAPTCHA, see [@chess-captcha/react-jsx](https://www.npmjs.com/package/@chess-cap

1.0.2
latest
Source
npmnpm
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

@chess-captcha/core

A chess-based CAPTCHA library that generates mate-in-1 puzzles using Stockfish engine. Built with TypeScript, React, and chess.js. For the React chessboard component for this CAPTCHA, see @chess-captcha/react-jsx

Installation

npm i @chess-captcha/core

Quick Start

Core CAPTCHA Engine

import { ChessCaptcha } from "chess-captcha";

// Create a captcha instance
const captcha = new ChessCaptcha({
  queueCapacity: 3, // Number of pre-generated puzzles
  expirationTime: 180, // Expiration time in seconds
});

// Initialize the puzzle queue
await captcha.init();

// Get a puzzle for the user
const puzzle = await captcha.getMateIn1Captcha();
console.log("Puzzle FEN:", puzzle.fen);
console.log("Expires at:", new Date(puzzle.expireAt));

// Verify user's answer (e.g., "e2e4")
const isCorrect = await captcha.verifyCaptcha(puzzle, "e2e4");
console.log("Answer correct:", isCorrect);

Using Pre-generated Puzzles

// Load puzzles from CSV file
const captcha = new ChessCaptcha({
  filename: "path/to/puzzles.csv", // CSV file with FEN strings
  expirationTime: 300,
});

await captcha.init(); // Loads puzzles from CSV

API Reference

ChessCaptcha Class

Constructor

new ChessCaptcha(config?: Partial<CaptchaConfig>)

Configuration Options:

  • queueCapacity: Number of pre-generated puzzles (default: 3)
  • expirationTime: Puzzle expiration time in seconds (default: 180)
  • filename: Path to CSV file with pre-generated FEN strings (optional)

Methods

init(): Promise<void>

Initialize the puzzle queue. If filename is provided, loads puzzles from CSV file. Otherwise, generates puzzles using Stockfish engine.

getMateIn1Captcha(): Promise<CaptchaResult>

Get a mate-in-1 puzzle. Returns a promise that resolves to:

{
  fen: string; // Chess position in FEN notation
  expireAt: number; // Expiration timestamp
}

Note: A generated puzzle may have more than one valid solution.

verifyCaptcha(secret: CaptchaSecret, answer: string): Promise<boolean>

Verify a user's answer. Returns true if the answer is correct and not expired.

Parameters:

  • secret: The puzzle secret returned by getMateIn1Captcha()
  • answer: The move in format "e2e4" (from square + to square)

CSV File Format

When using pre-generated puzzles, provide a CSV file with the following format:

fen,description
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1,Starting position
r1bqkbnr/pppp1ppp/2n5/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - 0 1,After 1.e4 Nc6

Only the first column (FEN) is required. Additional columns are ignored.

License

MIT

FAQs

Package last updated on 10 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.