editia-core
Version:
Core services and utilities for Editia applications - Authentication, Monetization, Video Generation Types, and Database Management
77 lines • 3.69 kB
TypeScript
/**
* 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