import { UrlObject } from 'url'; import * as React from 'react'; import React__default, { ComponentType } from 'react'; import * as http from 'http'; import { IncomingMessage, ServerResponse } from 'http'; import { ZodError } from 'zod'; import { ISettingsParam, ILogObj, Logger } from 'tslog'; import c from 'chalk'; import { Table } from 'console-table-printer'; import ora from 'ora'; import Debug from 'debug'; interface Ctx { } type CodegenField = { component: string; inputType: string; zodType: string; prismaType: string; default?: string; }; interface AuthenticatedCtx { } interface AuthenticatedCtx { } type EventHooks = { onSessionCreated?: OnSessionCreated; onRpcError?: OnRpcError; }; type BeforeHttpRequest = (request: RequestInit) => RequestInit; type BeforeHttpResponse = (response: Response) => Response; type OnRpcError = (error: Error) => Promise; type OnSessionCreated = () => Promise; type MiddlewareHooks = { beforeHttpRequest?: BeforeHttpRequest; beforeHttpResponse?: BeforeHttpResponse; }; type ResolverConfig = { httpMethod: "GET" | "POST"; }; type Codegen = { fieldTypeMap?: Partial>; }; type BlitzCliConfig = { codegen?: Codegen; customTemplates?: string; }; type CodegenConfig = { templateDir?: string; fieldTypeMap?: Record; }; interface RouteUrlObject extends Pick { pathname: string; href: string; } interface RouteUrlObject extends Pick { pathname: string; } declare const isRouteUrlObject: (x: any) => x is RouteUrlObject; type AsyncFunc = (...args: any) => Promise; /** * Infer the type of the parameter from function that takes a single argument */ type FirstParam Promise> = Parameters[0]; /** * If type has a Promise, unwrap it. Otherwise return the original type */ type Await = T extends PromiseLike ? U : T; /** * Ensure the type is a promise */ type EnsurePromise = T extends PromiseLike ? T : Promise; /** * Get the return type of a function which returns a Promise. */ type PromiseReturnType Promise> = Await>; interface CancellablePromise extends Promise { cancel?: Function; } type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; type Simplify = { [P in keyof T]: T[P]; }; type AddParameters any, TParameters extends [...args: any]> = (...args: [...Parameters, ...TParameters]) => ReturnType; declare global { var _blitz_prismaClient: any; var __BLITZ_MIDDLEWARE_HOOKS: { beforeHttpRequest: BeforeHttpRequest; beforeHttpResponse: BeforeHttpResponse; }; var __BLITZ_CLEAN_UP_LISTENERS: () => void; } declare class AuthenticationError extends Error { name: string; statusCode: number; constructor(message?: string); get _clearStack(): boolean; } declare class CSRFTokenMismatchError extends Error { name: string; statusCode: number; get _clearStack(): boolean; } declare class OAuthError extends Error { name: string; statusCode: number; redirect?: string; get _clearStack(): boolean; constructor(message: string, redirect?: string); } declare class AuthorizationError extends Error { name: string; statusCode: number; constructor(message?: string); get _clearStack(): boolean; } declare class NotFoundError extends Error { name: string; statusCode: number; constructor(message?: string); get _clearStack(): boolean; } declare class RedirectError extends Error { name: string; statusCode: number; url: UrlObject | string; constructor(url: UrlObject | string); get _clearStack(): boolean; } declare class PaginationArgumentError extends Error { name: string; statusCode: number; constructor(message?: string); } declare function registerBlitzErrorClasses(): void; interface Constructor { new (...args: never[]): T; } interface EnhancedPrismaClientAddedMethods { $reset: () => Promise; } interface EnhancedPrismaClientConstructor { new (...args: ConstructorParameters): InstanceType & EnhancedPrismaClientAddedMethods; } declare const enhancePrisma: >(client: TPrismaClientCtor) => EnhancedPrismaClientConstructor; declare const runPrisma: (args: string[], silent?: boolean) => Promise<{ success: boolean; stderr: string | undefined; } | { success: boolean; stderr?: undefined; }>; declare function handleRequestWithMiddleware>(req: Req, res: Res, middleware: RequestMiddleware[], { throwOnError, stackPrintOnError, }?: { throwOnError?: boolean; stackPrintOnError?: boolean; }): Promise; /** * If the middleware function doesn't declare receiving the `next` callback * assume that it's synchronous and invoke `next` ourselves */ declare function noCallbackHandler(req: Req, res: Res, next: MiddlewareNext, middleware: RequestMiddleware): void | Promise; /** * The middleware function does include the `next` callback so only resolve * the Promise when it's called. If it's never called, the middleware stack * completion will stall */ declare function withCallbackHandler(req: Req, res: Res, next: MiddlewareNext, middleware: RequestMiddleware): Promise; /** * Returns a Blitz middleware function that varies its async logic based on if the * given middleware function declares at least 3 parameters, i.e. includes * the `next` callback function */ declare function connectMiddleware(middleware: RequestMiddleware): RequestMiddleware; declare const secureProxyMiddleware: RequestMiddleware; type PaginateArgs = { skip?: number; take?: number; maxTake?: number; count: () => Promise; query: (args: { skip: number; take: number; }) => Promise; }; declare function paginate({ skip, take, maxTake, count: countQuery, query, }: PaginateArgs): Promise<{ items: Awaited; nextPage: { take: number; skip: number; } | null; hasMore: boolean; pageCount: number; pageSize: number; from: number; to: number; count: number; }>; type BlitzLoggerSettings = ISettingsParam; type BlitzLogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal"; declare const baseLogger: (options?: BlitzLoggerSettings) => Logger; declare const BlitzLogger: (settings?: BlitzLoggerSettings) => Logger; declare const initializeLogger: (logger: Logger) => void; declare const table: typeof Table; declare const chalk: c.Chalk & c.ChalkFunction & { supportsColor: false | c.ColorSupport; Level: c.Level; Color: ("black" | "red" | "green" | "yellow" | "blue" | "magenta" | "cyan" | "white" | "gray" | "grey" | "blackBright" | "redBright" | "greenBright" | "yellowBright" | "blueBright" | "magentaBright" | "cyanBright" | "whiteBright") | ("bgBlack" | "bgRed" | "bgGreen" | "bgYellow" | "bgBlue" | "bgMagenta" | "bgCyan" | "bgWhite" | "bgGray" | "bgGrey" | "bgBlackBright" | "bgRedBright" | "bgGreenBright" | "bgYellowBright" | "bgBlueBright" | "bgMagentaBright" | "bgCyanBright" | "bgWhiteBright"); ForegroundColor: "black" | "red" | "green" | "yellow" | "blue" | "magenta" | "cyan" | "white" | "gray" | "grey" | "blackBright" | "redBright" | "greenBright" | "yellowBright" | "blueBright" | "magentaBright" | "cyanBright" | "whiteBright"; BackgroundColor: "bgBlack" | "bgRed" | "bgGreen" | "bgYellow" | "bgBlue" | "bgMagenta" | "bgCyan" | "bgWhite" | "bgGray" | "bgGrey" | "bgBlackBright" | "bgRedBright" | "bgGreenBright" | "bgYellowBright" | "bgBlueBright" | "bgMagentaBright" | "bgCyanBright" | "bgWhiteBright"; Modifiers: "hidden" | "reset" | "bold" | "dim" | "italic" | "underline" | "inverse" | "strikethrough" | "visible"; stderr: c.Chalk & { supportsColor: false | c.ColorSupport; }; }; declare const newLine: () => void; declare const log: { withBrand: (str: string) => string; withCaret: (str: string) => string; branded: (msg: string) => void; clearLine: (msg?: string) => void; clearConsole: () => void; progress: (msg: string) => void; spinner: (str: string) => ora.Ora; success: (msg: string) => void; greenText: (str: string) => string; error: (msg: string) => void; variable: (val: any) => string; debug: Debug.Debugger; Table: typeof Table; chalk: c.Chalk & c.ChalkFunction & { supportsColor: false | c.ColorSupport; Level: c.Level; Color: ("black" | "red" | "green" | "yellow" | "blue" | "magenta" | "cyan" | "white" | "gray" | "grey" | "blackBright" | "redBright" | "greenBright" | "yellowBright" | "blueBright" | "magentaBright" | "cyanBright" | "whiteBright") | ("bgBlack" | "bgRed" | "bgGreen" | "bgYellow" | "bgBlue" | "bgMagenta" | "bgCyan" | "bgWhite" | "bgGray" | "bgGrey" | "bgBlackBright" | "bgRedBright" | "bgGreenBright" | "bgYellowBright" | "bgBlueBright" | "bgMagentaBright" | "bgCyanBright" | "bgWhiteBright"); ForegroundColor: "black" | "red" | "green" | "yellow" | "blue" | "magenta" | "cyan" | "white" | "gray" | "grey" | "blackBright" | "redBright" | "greenBright" | "yellowBright" | "blueBright" | "magentaBright" | "cyanBright" | "whiteBright"; BackgroundColor: "bgBlack" | "bgRed" | "bgGreen" | "bgYellow" | "bgBlue" | "bgMagenta" | "bgCyan" | "bgWhite" | "bgGray" | "bgGrey" | "bgBlackBright" | "bgRedBright" | "bgGreenBright" | "bgYellowBright" | "bgBlueBright" | "bgMagentaBright" | "bgCyanBright" | "bgWhiteBright"; Modifiers: "hidden" | "reset" | "bold" | "dim" | "italic" | "underline" | "inverse" | "strikethrough" | "visible"; stderr: c.Chalk & { supportsColor: false | c.ColorSupport; }; }; box: (mes: string, title: string) => Promise; }; declare function merge([...fns]: Array<(args: T) => U>): (args: T) => U[]; declare function pipe(...fns: Array<(x: T) => T>): (x: T) => T; declare function reduceBlitzClientPlugins[]>({ plugins, }: { plugins: TPlugins; }): { exports: Simplify; }[number]>>; middleware: { beforeHttpRequest: (x: RequestInit) => RequestInit; beforeHttpResponse: (x: Response) => Response; }; events: { onRpcError: (args: Error) => Promise[]; onSessionCreated: (args: void) => Promise[]; }; withPlugins: (x: React.ComponentType) => React.ComponentType; }; declare function reduceBlitzServerPlugins[]>({ plugins, }: { plugins: TPlugins; }): { pluginExports: Simplify; }[number]>>; middlewares: RequestMiddleware>[]; contextMiddleware: (((ctx: Ctx) => Ctx) | undefined)[]; }; declare function findNodeModulesRoot(src?: string): Promise; declare function findNodeModulesRootSync(src?: string): string; declare function startWatcher(pagesDir?: string): Promise; declare function stopWatcher(): Promise; interface MiddlewareResponse extends ServerResponse { blitzCtx: C; blitzResult: unknown; } type MiddlewareNext = (error?: Error) => Promise | void; type RequestMiddleware | void> = { (req: TRequest, res: TResponse, next: MiddlewareNext): TResult; type?: string; config?: Record; }; type BlitzServerPlugin, TCtx extends Ctx = Ctx> = { requestMiddlewares: RequestMiddlewareType[]; contextMiddleware?: (ctx: TCtx) => TCtx; exports: () => TExports; }; declare function createServerPlugin(pluginConstructor: (options: TPluginOptions) => BlitzServerPlugin): (options: TPluginOptions) => BlitzServerPlugin; declare function createSetupServer(setupServerConstructor: (plugins: BlitzServerPlugin) => TExports): (plugins: BlitzServerPlugin) => TExports; declare const BlitzServerMiddleware: > = RequestMiddleware, void | Promise>>(middleware: TMiddleware) => BlitzServerPlugin<{}>; declare function assert(condition: any, message: string): asserts condition; declare const isServer: boolean; declare const isClient: boolean; declare const isPast: (date: Date) => boolean; declare function differenceInMilliseconds(dateLeft: Date, dateRight: Date): number; declare function differenceInMinutes(dateLeft: Date, dateRight: Date): number; declare function addMilliseconds(date: Date, amount: number): Date; declare function addMinutes(date: Date, amount: number): Date; declare function addYears(date: Date, amount: number): Date; declare function readCookie(name: string): any; declare const setCookie: (name: string, value: string, expires: string) => void; declare const deleteCookie: (name: string) => void; declare function compose(middleware: RequestMiddleware[]): RequestMiddleware, void | Promise>; /** * Formats milliseconds to a string * If more than 1s, it'll return seconds instead * @example * prettyMs(100) // -> `100ms` * prettyMs(1200) // -> `1.2s` * @param ms */ declare function prettyMs(ms: number): string; declare function interopDefault(mod: any): any; declare function truncateString(str: string, maxLength: number): string; declare function isNotInUserTestEnvironment(): boolean; type ParserType = "sync" | "async"; declare function recursiveFormatZodErrors(errors: any): Record; declare function formatZodError(error: ZodError): Record; declare function validateZodSchema(schema: any, parserType: "sync"): (values: any) => any; declare function validateZodSchema(schema: any, parserType: "async"): (values: any) => Promise; declare function validateZodSchema(schema: any): (values: any) => Promise; type BlitzProviderComponentType = (component: ComponentType) => { (props: TProps): React__default.JSX.Element; displayName: string; }; type BlitzPluginWithProvider = (x: React__default.ComponentType) => React__default.ComponentType; interface ClientPlugin { events: EventHooks; middleware: MiddlewareHooks; exports: () => Exports; withProvider?: BlitzProviderComponentType; } declare function createClientPlugin(pluginConstructor: (options: TPluginOptions) => ClientPlugin): (options: TPluginOptions) => ClientPlugin; export { AddParameters, AsyncFunc, AuthenticatedCtx, AuthenticationError, AuthorizationError, Await, BeforeHttpRequest, BeforeHttpResponse, BlitzCliConfig, BlitzLogLevel, BlitzLogger, BlitzLoggerSettings, BlitzPluginWithProvider, BlitzProviderComponentType, BlitzServerMiddleware, BlitzServerPlugin, CSRFTokenMismatchError, CancellablePromise, ClientPlugin, CodegenConfig, CodegenField, Constructor, Ctx, EnhancedPrismaClientAddedMethods, EnhancedPrismaClientConstructor, EnsurePromise, EventHooks, FirstParam, MiddlewareHooks, MiddlewareNext, MiddlewareResponse, NotFoundError, OAuthError, OnRpcError, OnSessionCreated, PaginateArgs, PaginationArgumentError, ParserType, PromiseReturnType, RedirectError, RequestMiddleware, ResolverConfig, RouteUrlObject, Simplify, UnionToIntersection, addMilliseconds, addMinutes, addYears, assert, baseLogger, chalk, compose, connectMiddleware, createClientPlugin, createServerPlugin, createSetupServer, deleteCookie, differenceInMilliseconds, differenceInMinutes, enhancePrisma, findNodeModulesRoot, findNodeModulesRootSync, formatZodError, handleRequestWithMiddleware, initializeLogger, interopDefault, isClient, isNotInUserTestEnvironment, isPast, isRouteUrlObject, isServer, log, merge, newLine, noCallbackHandler, paginate, pipe, prettyMs, readCookie, recursiveFormatZodErrors, reduceBlitzClientPlugins, reduceBlitzServerPlugins, registerBlitzErrorClasses, runPrisma, secureProxyMiddleware, setCookie, startWatcher, stopWatcher, table, truncateString, validateZodSchema, withCallbackHandler };