Socket
Socket
Sign inDemoInstall

algebraic-captcha

Package Overview
Dependencies
10
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    algebraic-captcha

NodeJS math captcha package with algebraic formulas


Version published
Weekly downloads
353
increased by78.28%
Maintainers
1
Install size
4.38 MB
Created
Weekly downloads
 

Readme

Source

algebraic-captcha

Generate CAPTCHA from algebraic equation

version npm license Build Status Commitizen friendly

DEMO

Install

Install package as yet another npm package:

npm install algebraic-captcha

Also yarn package manager can be used:

yarn add algebraic-captcha

Usage

Simple example.

const {AlgebraicCaptcha} = require('algebraic-captcha');

async function generateCaptcha() {
    const algebraicCaptcha = new AlgebraicCaptcha({
        width: 200,
        height: 200,
        background: '#ffffff',
        noise: 1,
        minValue: 1,
        maxValue: 10,
        operandAmount: 1,
        operandTypes: ['+', '-'],
        mode: 'formula',
        targetSymbol: '?'
    });

    const {image, answer} = await algebraicCaptcha.generateCaptcha();
}

Here:

  • answer - is numeric answer for given equation (10 for this case).
  • image - svg image string image

Using inside express middleware.

const express = require('express');
const session = require('express-session');
const {AlgebraicCaptcha} = require('algebraic-captcha');

const app = express();
const algebraicCaptcha = new AlgebraicCaptcha({});

app.use(session({secret: 'my awesome session', resave: true}));

app.get('/captcha', async (req, res) => {
    const {image, answer} = await algebraicCaptcha.generateCaptcha();
    req.session.captcha = answer;
    res.writeHead(200, {'Content-Type': 'image/svg+xml'});
    res.end(image);
});

app.listen(3000);

Options

Available options:

width.

Width of generated image in pixels

  • minimal value: 20
  • minimal value: 1000
  • default value: 200
height

Height of generated image in pixels

  • minimal value: 20
  • minimal value: 1000
  • default value: 100
minValue

Min operand value used in equation

  • minimal value: 1
  • minimal value: 10000
  • default value: 1
maxValue

Max operand value used in equation

  • minimal value: 1
  • minimal value: 10000
  • default value: 1
background

Background color of captcha image

  • default value: '#ffffff'
noise

Number of noise lines

  • default value: 1
operandAmount

Number of equation operations

  • default value: 1
operandTypes

Array of used math operators

  • default value: ['+', '-']
mode

Can have two available values: formula, equation

In formula mode anwer placeholder will be put to the last position of generated string, such as:

5 + 2 = ?

In equation mode answer placeholder will be put on random operand position except last:

5 + ? = 7 //(or ? + 2 = 7)
  • default value: 'formula'
targetSymbol

Symbol which is used as placeholder for answer

  • default value: '?'

Development

Clone repository or its fork to local filesystem

git clone https://github.com/tormozz48/algebraic-captcha.git

Install npm dependencies:

npm install

Here are some suitable commands that can be used during development:

  • npm run build - compile typescript files
  • npm run lint - run tslint verification tool
  • npm test - run tests with mocha
  • npm run watch - launch watcher for compile source files during development

Important Use command npm run cm for commit your changes instead of git commit.

License

Apache-2.0

Support

Bugs, PRs, comments, suggestions welcomed!

Maintainer: Andrey Kuznetsov

Keywords

FAQs

Last updated on 10 Jan 2019

Did you know?

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc