UNPKG

editia-core

Version:

Core services and utilities for Editia applications - Authentication, Monetization, Video Generation Types, and Database Management

77 lines 3.69 kB
/** * Monetization Middleware for Express * * This middleware integrates with the MonetizationService to protect * endpoints based on user subscription and usage limits. */ import { Request, Response, NextFunction } from 'express'; import { FeatureId, Action, MonetizationCheckResult } from '../../types/monetization'; export interface MonetizationMiddlewareConfig { featureId: FeatureId; incrementUsage?: boolean; action?: Action; errorHandler?: (req: Request, res: Response, result: MonetizationCheckResult) => void; } export interface MonetizationRequest extends Request { monetization?: { hasAccess: boolean; currentPlan: string; remainingUsage: number; totalLimit: number; featureId: FeatureId; }; } /** * Create monetization middleware for a specific feature */ export declare function createMonetizationMiddleware(config: MonetizationMiddlewareConfig): (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Middleware to increment usage after successful operation * This should be placed AFTER the main operation middleware */ export declare function createUsageIncrementMiddleware(): (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void>; /** * Middleware to add monetization info to response headers */ export declare function addMonetizationHeaders(): (req: MonetizationRequest, res: Response, next: NextFunction) => void; /** * Middleware to log monetization checks (development only) */ export declare function logMonetizationChecks(): (req: MonetizationRequest, res: Response, next: NextFunction) => void; /** * Middleware for video generation endpoint */ export declare const videoGenerationMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Middleware for source video upload endpoint */ export declare const sourceVideoUploadMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Middleware for voice cloning endpoint */ export declare const voiceCloneMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Middleware for account analysis endpoint */ export declare const accountAnalysisMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Middleware for script generation */ export declare const scriptGenerationMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Middleware for script conversations */ export declare const scriptConversationsMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Middleware for chat AI (no usage increment) */ export declare const chatAiMiddleware: (req: MonetizationRequest, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * Default error handler for monetization failures */ export declare function defaultMonetizationErrorHandler(req: Request, res: Response, result: MonetizationCheckResult): Response<any, Record<string, any>>; /** * Custom error handler that returns a more user-friendly response */ export declare function userFriendlyMonetizationErrorHandler(req: Request, res: Response, result: MonetizationCheckResult): Response<any, Record<string, any>>; //# sourceMappingURL=monetization-middleware.d.ts.map