| | const Ajv = require("ajv") |
| | const addFormats = require("ajv-formats") |
| |
|
| | const ajv = new Ajv() |
| | addFormats(ajv) |
| |
|
| | const schema = { |
| | "type": "object", |
| | "properties": { |
| | "mode": { |
| | "type": "string", |
| | "enum": ["source", "turnstile-min", "turnstile-max", "waf-session"], |
| | }, |
| | "proxy": { |
| | "type": "object", |
| | "properties": { |
| | "host": { "type": "string" }, |
| | "port": { "type": "integer" }, |
| | "username": { "type": "string" }, |
| | "password": { "type": "string" } |
| | }, |
| | "additionalProperties": false |
| | }, |
| | "url": { |
| | "type": "string", |
| | "format": "uri", |
| | }, |
| | "authToken": { |
| | "type": "string" |
| | }, |
| | "siteKey": { |
| | "type": "string" |
| | } |
| | }, |
| | "required": ["mode", "url"], |
| | "additionalProperties": false |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | function validate(data) { |
| | const valid = ajv.validate(schema, data) |
| | if (!valid) return ajv.errors |
| | else return true |
| | } |
| |
|
| | module.exports = validate |