/// import { Response, Request, NextFunction } from "express"; import { SequelizeOptions } from "sequelize-typescript"; import DFWInstance from "./scripts/system/DFWInstance"; import SessionManager, { DFWSessionSchema } from "./scripts/modules/SessionManager"; import APIManager, { DFWAPISchema } from "./scripts/modules/APIManager"; import SecurityManager, { DFWSecuritySchema } from "./scripts/modules/SecurityManager"; import DatabaseManager, { Database } from "./scripts/modules/DatabaseManager"; import dfw_user from "./model/dfw_user.model"; import dfw_access from "./model/dfw_access.model"; import dfw_credential from "./model/dfw_credential.model"; import dfw_session from "./model/dfw_session.model"; import UploadManager, { DFWFileSystemSchema, UploadedFile } from "./scripts/modules/UploadManager"; export default class DFWCore { static instances: { [id: string]: DFWInstance; }; static getIstance(name?: string): DFWInstance; static createInstance(name?: string | DFWConfig, cfg?: DFWConfig): DFWInstance; static dfw_user: typeof dfw_user; static dfw_access: typeof dfw_access; static dfw_credentials: typeof dfw_credential; static dfw_session: typeof dfw_session; static SecurityManager: typeof SecurityManager; static SessionManager: typeof SessionManager; static APIManager: typeof APIManager; static DatabaseManager: typeof DatabaseManager; static UploadManager: typeof UploadManager; } export interface DFWScheme { request: Request & { files: { [x: string]: UploadedFile; }; }; response: Response; security: DFWSecuritySchema; session: DFWSessionSchema; api: DFWAPISchema; db: Database; file: DFWFileSystemSchema; next: NextFunction; modules: DFWModuleSchema; DFWInstance: DFWInstance; } export interface DFWModuleSchema { securityManager: SecurityManager; sessionManager: SessionManager; APIManager: APIManager; databaseManager: DatabaseManager; uploadManager: UploadManager; } /** * Configuration script */ export interface DFWConfig { /** * */ databases?: { [id: string]: SequelizeOptions; }; /** * */ database?: SequelizeOptions; /** * */ session?: { /** * Session token name space in cookie */ stk?: string; /** * Session id name space in cookie */ sid?: string; }; /** * */ server?: { requestBody?: "json" | "urlencoded" | "form-data" | "none"; requestBodyConfig?: any; }; upload?: busboy.BusboyConfig & { localPrivateUploadDir?: string; localUploadDir?: string; staticUploadPath?: string; tempDir?: string; }; }