import { H3Event, App, Router, RouterMethod } from 'h3'; import { FetchRequest, FetchOptions, FetchResponse } from 'ofetch'; import { a as NitroOptions, b as NitroConfig, N as NitroModule } from '../shared/nitro.TNvtAJEc.js'; export { A as AppConfig, C as CacheEntry, c as CacheOptions, d as CachedEventHandlerOptions, e as CompressOptions, D as DatabaseConnectionConfig, f as DatabaseConnectionConfigs, g as DatabaseConnectionName, h as DevServerOptions, E as EsbuildOptions, H as HTTPStatusCode, L as LoadConfigOptions, i as Nitro, j as NitroBuildInfo, k as NitroDevEventHandler, l as NitroDevServer, m as NitroDynamicConfig, n as NitroErrorHandler, o as NitroEventHandler, p as NitroFrameworkInfo, q as NitroHooks, r as NitroMeta, s as NitroModuleInput, t as NitroOpenAPIConfig, u as NitroPreset, v as NitroPresetMeta, w as NitroRouteConfig, x as NitroRouteMeta, y as NitroRouteRules, z as NitroRuntimeConfig, B as NitroRuntimeConfigApp, F as NitroTypes, G as NitroWorker, I as NodeExternalsOptions, P as PrerenderGenerateRoute, J as PrerenderRoute, K as PublicAssetDir, R as RawOptions, M as ResponseCacheEntry, O as RollupConfig, Q as RollupVirtualOptions, S as ServerAssetDir, T as ServerAssetOptions, U as StorageMounts, V as VercelISRConfig, W as VirtualModule } from '../shared/nitro.TNvtAJEc.js'; import { Hookable } from 'hookable'; import { NitroRuntimeHooks as NitroRuntimeHooks$1 } from 'nitropack'; import { AbstractRequest, AbstractResponse } from 'node-mock-http'; import { CaptureError as CaptureError$1, CapturedErrorContext as CapturedErrorContext$1, CacheOptions } from 'nitropack/types'; import 'consola'; import 'nitropack/presets'; import 'unimport'; import 'unstorage'; import '@rollup/plugin-commonjs'; import 'c12'; import 'chokidar'; import 'compatx'; import 'db0'; import 'httpxy'; import 'pkg-types'; import 'rollup-plugin-visualizer'; import 'unenv'; import 'unimport/unplugin'; import 'unwasm/plugin'; import 'node:http'; import 'node:net'; import 'node:worker_threads'; import 'listhen'; import 'unplugin-utils'; import '@vercel/nft'; import 'esbuild'; import 'rollup'; import 'rolldown'; import '@scalar/api-reference'; import 'std-env'; interface PublicAsset { type: string; etag: string; mtime: string; path: string; size: number; encoding?: string | null; data?: string; } interface AssetMeta { type?: string; etag?: string; mtime?: string; } interface NitroApp { h3App: App; router: Router; hooks: Hookable; localCall: (aRequest: AbstractRequest) => Promise; localFetch: (req: string | URL | Request, init?: RequestInit & AbstractRequest) => Promise; captureError: CaptureError; } interface NitroAppPlugin { (nitro: NitroApp): void; } interface NitroAsyncContext { event: H3Event; } interface RenderResponse { body: any; statusCode: number; statusMessage: string; headers: Record; } type RenderHandler = (event: H3Event) => Partial | Promise>; interface RenderContext { event: H3Event; render: RenderHandler; response?: Partial; } interface CapturedErrorContext { event?: H3Event; [key: string]: unknown; } type CaptureError = (error: Error, context: CapturedErrorContext) => void; interface NitroRuntimeHooks extends NitroRuntimeHooks$1 { } type MaybePromise = T | Promise; /** @experimental */ interface TaskContext { } /** @experimental */ interface TaskPayload { [key: string]: unknown; } /** @experimental */ interface TaskMeta { name?: string; description?: string; } /** @experimental */ interface TaskEvent { name: string; payload: TaskPayload; context: TaskContext; } /** @experimental */ interface TaskResult { result?: RT; } /** @experimental */ interface Task { meta?: TaskMeta; run(event: TaskEvent): MaybePromise<{ result?: RT; }>; } /** @experimental */ interface TaskRunnerOptions { cwd?: string; buildDir?: string; } interface InternalApi { } type NitroFetchRequest = Exclude | Exclude | (string & {}); type MiddlewareOf = Method extends keyof InternalApi[MatchedRoutes] ? InternalApi[MatchedRoutes][Method] : never; type TypedInternalResponse = Default extends string | boolean | number | null | void | object ? Default : Route extends string ? MiddlewareOf extends never ? MiddlewareOf extends never ? Default : MiddlewareOf : MiddlewareOf : Default; type AvailableRouterMethod = R extends string ? keyof InternalApi[MatchedRoutes] extends undefined ? RouterMethod : Extract], "default"> extends undefined ? Extract]> : RouterMethod : RouterMethod; interface NitroFetchOptions = AvailableRouterMethod> extends FetchOptions { method?: Uppercase | M; } type ExtractedRouteMethod> = O extends undefined ? "get" : Lowercase> extends RouterMethod ? Lowercase> : "get"; type Base$Fetch = = NitroFetchOptions>(request: R, opts?: O) => Promise extends O ? "get" : ExtractedRouteMethod>>; interface $Fetch extends Base$Fetch { raw = NitroFetchOptions>(request: R, opts?: O): Promise extends O ? "get" : ExtractedRouteMethod>>>; create(defaults: FetchOptions): $Fetch; } declare global { var $fetch: $Fetch; namespace NodeJS { interface Global { $fetch: $Fetch; } } } type MatchResult = { [k in Key]: { key: k; exact: Exact; score: Score; catchAll: catchAll; }; }[Key]; type Subtract = Minuend extends [...Subtrahend, ...infer Remainder] ? Remainder : never; type TupleIfDiff = First extends `${Second}${infer Diff}` ? Diff extends "" ? [] : Tuple : []; type MaxTuple = { current: T; result: MaxTuple; }[[N["length"]] extends [Partial["length"]] ? "current" : "result"]; type CalcMatchScore = `${Key}/` extends `${infer KeySeg}/${infer KeyRest}` ? KeySeg extends FirstKeySegMatcher ? Subtract<[ ...Score, ...TupleIfDiff ], TupleIfDiff> : `${Route}/` extends `${infer RouteSeg}/${infer RouteRest}` ? `${RouteSeg}?` extends `${infer RouteSegWithoutQuery}?${string}` ? RouteSegWithoutQuery extends KeySeg ? CalcMatchScore : KeySeg extends `:${string}` ? RouteSegWithoutQuery extends "" ? never : CalcMatchScore : KeySeg extends RouteSegWithoutQuery ? CalcMatchScore : never : never : never : never; type _MatchedRoutes = MatchResult> = MatchedResultUnion["key"] extends infer MatchedKeys ? MatchedKeys extends string ? Route extends MatchedKeys ? MatchResult : MatchedKeys extends `${infer Root}/**${string}` ? MatchedKeys extends `${string}/**` ? Route extends `${Root}/${string}` ? MatchResult : never : MatchResult> : MatchResult> : never : never; type MatchedRoutes = MatchResult, Matches extends MatchResult = _MatchedRoutes> = Route extends "/" ? keyof InternalApi : Extract extends never ? Extract, { score: MaxTuple; }>["key"] | Extract["key"] : Extract["key"]; /** * @link https://github.com/remix-run/remix/blob/2248669ed59fd716e267ea41df5d665d4781f4a9/packages/remix-server-runtime/serialize.ts */ type JsonPrimitive = string | number | boolean | string | number | boolean | null; type NonJsonPrimitive = undefined | Function | symbol; type IsAny = 0 extends 1 & T ? true : false; type FilterKeys = { [TKey in keyof TObj]: TObj[TKey] extends TFilter ? TKey : never; }[keyof TObj]; type Serialize = IsAny extends true ? any : T extends JsonPrimitive | undefined ? T : T extends Map | Set ? Record : T extends NonJsonPrimitive ? never : T extends { toJSON(): infer U; } ? U : T extends [] ? [] : T extends [unknown, ...unknown[]] ? SerializeTuple : T extends ReadonlyArray ? (U extends NonJsonPrimitive ? null : Serialize)[] : T extends object ? SerializeObject : never; /** JSON serialize [tuples](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types) */ type SerializeTuple = { [k in keyof T]: T[k] extends NonJsonPrimitive ? null : Serialize; }; /** JSON serialize objects (not including arrays) and classes */ type SerializeObject = { [k in keyof Omit>]: Serialize; }; /** * @see https://github.com/ianstormtaylor/superstruct/blob/7973400cd04d8ad92bbdc2b6f35acbfb3c934079/src/utils.ts#L323-L325 */ type Simplify = TType extends any[] | Date ? TType : { [K in keyof TType]: Simplify; }; interface NitroStaticBuildFlags { _asyncContext?: boolean; _websocket?: boolean; _tasks?: boolean; dev?: boolean; client?: boolean; nitro?: boolean; baseURL?: string; prerender?: boolean; preset?: NitroOptions["preset"]; server?: boolean; versions?: { nitro?: string; }; } declare global { namespace NodeJS { interface Process extends NitroStaticBuildFlags { } } interface ImportMeta extends NitroStaticBuildFlags { } } declare global { const defineNitroConfig: (config: NitroConfig) => NitroConfig; const defineNitroModule: (definition: NitroModule) => NitroModule; } type H3EventFetch = (request: NitroFetchRequest, init?: RequestInit) => Promise; type H3Event$Fetch = Base$Fetch; declare module "h3" { interface H3Event { /** @experimental Calls fetch with same context and request headers */ fetch: H3EventFetch; /** @experimental Calls fetch with same context and request headers */ $fetch: H3Event$Fetch; waitUntil: (promise: Promise) => void; /** @experimental */ captureError: CaptureError$1; } interface H3Context { nitro: { _waitUntilPromises?: Promise[]; /** @experimental */ errors: { error?: Error; context: CapturedErrorContext$1; }[]; }; cache: { options: CacheOptions; }; } } export { NitroConfig, NitroModule, NitroOptions }; export type { $Fetch, AssetMeta, AvailableRouterMethod, Base$Fetch, CaptureError, CapturedErrorContext, ExtractedRouteMethod, H3Event$Fetch, H3EventFetch, InternalApi, MatchedRoutes, MiddlewareOf, NitroApp, NitroAppPlugin, NitroAsyncContext, NitroFetchOptions, NitroFetchRequest, NitroRuntimeHooks, NitroStaticBuildFlags, PublicAsset, RenderContext, RenderHandler, RenderResponse, Serialize, SerializeObject, SerializeTuple, Simplify, Task, TaskContext, TaskEvent, TaskMeta, TaskPayload, TaskResult, TaskRunnerOptions, TypedInternalResponse };