UNPKG

better-auth

Version:

The most comprehensive authentication framework for TypeScript.

130 lines (128 loc) 2.04 kB
import { parseJSON } from "../../client/parser.mjs"; //#region src/plugins/api-key/schema.ts const apiKeySchema = ({ timeWindow, rateLimitMax }) => ({ apikey: { fields: { name: { type: "string", required: false, input: false }, start: { type: "string", required: false, input: false }, prefix: { type: "string", required: false, input: false }, key: { type: "string", required: true, input: false, index: true }, userId: { type: "string", references: { model: "user", field: "id", onDelete: "cascade" }, required: true, input: false, index: true }, refillInterval: { type: "number", required: false, input: false }, refillAmount: { type: "number", required: false, input: false }, lastRefillAt: { type: "date", required: false, input: false }, enabled: { type: "boolean", required: false, input: false, defaultValue: true }, rateLimitEnabled: { type: "boolean", required: false, input: false, defaultValue: true }, rateLimitTimeWindow: { type: "number", required: false, input: false, defaultValue: timeWindow }, rateLimitMax: { type: "number", required: false, input: false, defaultValue: rateLimitMax }, requestCount: { type: "number", required: false, input: false, defaultValue: 0 }, remaining: { type: "number", required: false, input: false }, lastRequest: { type: "date", required: false, input: false }, expiresAt: { type: "date", required: false, input: false }, createdAt: { type: "date", required: true, input: false }, updatedAt: { type: "date", required: true, input: false }, permissions: { type: "string", required: false, input: false }, metadata: { type: "string", required: false, input: true, transform: { input(value) { return JSON.stringify(value); }, output(value) { if (!value) return null; return parseJSON(value); } } } } } }); //#endregion export { apiKeySchema }; //# sourceMappingURL=schema.mjs.map