UNPKG

@kanadi/core

Version:

Multi-Layer CAPTCHA Framework with customizable validators and challenge bundles

81 lines (68 loc) 1.79 kB
import { Schema } from "redis-om"; export interface KanadiContextEntity { sessionId: string; userId: string; bundleId?: string; ip: string; userAgent: string; referrer?: string; } export const kanadiContextSchema = new Schema("KanadiContext", { sessionId: { type: "string" }, userId: { type: "string" }, bundleId: { type: "string" }, ip: { type: "string" }, userAgent: { type: "string" }, referrer: { type: "string" }, }); export interface KanadiBundleSessionEntity { bundleId: string; validatorIds: string[]; totalScore: number; } export const kanadiBundleSessionSchema = new Schema("KanadiBundleSession", { bundleId: { type: "string" }, validatorIds: { type: "string[]" }, totalScore: { type: "number" }, }); export interface KanadiValidatorSessionEntity { validatorId: string; data: string; // JSON serialized } export const kanadiValidatorSessionSchema = new Schema( "KanadiValidatorSession", { validatorId: { type: "string" }, data: { type: "string" }, }, ); export interface KanadiUserEntity { deviceIds: string[]; activeDeviceId: string; } export const kanadiUserSchema = new Schema("KanadiUser", { deviceIds: { type: "string[]" }, activeDeviceId: { type: "string" }, }); export interface KanadiDeviceEntity { sessionId: string; ip: string; userAgent: string; referrer?: string; createdAt: Date; historyIds: string[]; } export const kanadiDeviceSchema = new Schema("KanadiDevice", { sessionId: { type: "string" }, ip: { type: "string" }, userAgent: { type: "string" }, referrer: { type: "string" }, createdAt: { type: "date" }, historyIds: { type: "string[]" }, }); export interface KanadiHistoryEntity { sessionId: string; } export const kanadiHistorySchema = new Schema("KanadiHistory", { sessionId: { type: "string" }, });