UNPKG

algebraic-captcha

Version:

NodeJS math captcha package with algebraic formulas

98 lines 2.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Joi = require("joi"); class Config { constructor(params) { const result = Joi.validate(params, this.schema); if (result.error) { throw result.error; } this._validated = result.value; } get width() { return this._validated.width; } get height() { return this._validated.height; } get background() { return this._validated.background; } get minValue() { return this._validated.minValue; } get maxValue() { return this._validated.maxValue; } get noise() { return this._validated.noise; } get operandAmount() { return this._validated.operandAmount; } get operandTypes() { return this._validated.operandTypes; } isFormulaMode() { return this._validated.mode === Config.MODE_FORMULA; } get targetSymbol() { return this._validated.targetSymbol; } get schema() { const colorRegexp = /^#([0-9a-f]{3}){1,2}$/i; return Joi.object({ background: Joi.string() .min(3) .max(7) .trim() .regex(colorRegexp) .default('#ffffff'), height: Joi.number() .integer() .min(20) .max(1000) .default(100), maxValue: Joi.number() .integer() .min(1) .max(10000) .default(10), minValue: Joi.number() .integer() .min(1) .max(10000) .default(1), mode: Joi.string() .valid([Config.MODE_FORMULA, Config.MODE_EQUATION]) .default(Config.MODE_FORMULA), noise: Joi.number() .integer() .min(1) .max(10) .default(1), operandAmount: Joi.number() .integer() .min(1) .max(5) .default(1), operandTypes: Joi.array() .items(Joi.string()) .default(['+', '-']), targetSymbol: Joi.string() .min(1) .max(3) .trim() .default('?'), width: Joi.number() .integer() .min(20) .max(1000) .default(200), }); } } Config.MODE_FORMULA = 'formula'; Config.MODE_EQUATION = 'equation'; exports.Config = Config; //# sourceMappingURL=config.js.map