import { A as ResponseBody, C as HandleFunction, D as MockResponse, E as MockRequest, M as CookiesOption, N as GetCookieOption, O as NextFunction, P as SetCookieOption, S as ExtraRequest, T as Method, _ as RecordedMeta, a as MockWebsocketItem, b as RecordedRes, c as MockHttpItem, d as LogType, f as MockMatchPriority, g as RecordOptions, h as ServerBuildOption, i as MockOptions, j as SimpleHandleFunction, k as NextHandleFunction, l as BodyParserOptions, m as MockServerPluginOptions, n as HttpProxyPlugin, o as WebSocketSetupContext, p as MockMatchSpecialPriority, r as PathFilter, s as MockErrorConfig, t as FormidableFile, u as LogLevel, v as RecordedReq, w as Headers, x as ResolvedRecordOptions, y as RecordedRequest } from "./index-BjZK24gW.js"; import { Transform } from "node:stream"; import { IncomingMessage, OutgoingHttpHeaders, ServerResponse } from "node:http"; //#region src/helpers/createSSEStream.d.ts interface SSEMessage { data?: string | object; comment?: string; event?: string; id?: string; retry?: number; } interface WriteHeaders { writeHead?: (statusCode: number, headers?: OutgoingHttpHeaders) => WriteHeaders; flushHeaders?: () => void; } type HeaderStream = NodeJS.WritableStream & WriteHeaders; /** * Transforms "messages" to W3C event stream content. * See https://html.spec.whatwg.org/multipage/server-sent-events.html * A message is an object with one or more of the following properties: * - data (String or object, which gets turned into JSON) * - event * - id * - retry * - comment * * If constructed with a HTTP Request, it will optimise the socket for streaming. * If this stream is piped to an HTTP Response, it will set appropriate headers. */ declare class SSEStream extends Transform { constructor(req: IncomingMessage); pipe(destination: T, options?: { end?: boolean; }): T; _transform(message: SSEMessage, encoding: string, callback: (error?: (Error | null), data?: any) => void): void; write(message: SSEMessage, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean; write(message: SSEMessage, cb?: (error: Error | null | undefined) => void): boolean; destroy(error?: Error): this; } /** * 创建一个 Server-sent events 写入流,用于支持模拟 EventSource * * @example * ```ts * import { createSSEStream, defineMock } from 'vite-plugin-mock-dev-server' * * export default defineMock({ * url: '/api', * response: (req, res) => { * const sse = createSSEStream(req, res) * sse.write({ event: 'message', data: { message: 'hello world' } }) * } * }) * ``` */ declare function createSSEStream(req: IncomingMessage, res: ServerResponse): SSEStream; //#endregion //#region src/helpers/defineMock.d.ts /** * Mock config Type helper * * mock配置 类型帮助函数 * @param config see config docs: * {@link https://vite-plugin-mock-dev-server.netlify.app/guide/mock-config en-US DOC} | * {@link https://vite-plugin-mock-dev-server.netlify.app/zh/guide/mock-config zh-CN DOC} * * @example * Mock Http Request * ```ts * export default defineMock({ * url: '/api/example', * method: ['GET', 'POST'], * body: { a: 1 }, * }) * ``` * ```ts * export default defineMock({ * url: '/api/example', * method: 'GET', * body: ({ query }) => ({ a: 1, b: query.b }), * }) * ``` * @example * Mock WebSocket * ```ts * export default defineMock({ * url: '/socket.io', * ws: true, * setup(wss) { * wss.on('connection', (ws) => { * ws.on('message', (rawData) => console.log(rawData)) * ws.send('data') * }) * }, * }) * ``` */ declare function defineMock(config: MockHttpItem): MockHttpItem; declare function defineMock(config: MockWebsocketItem): MockWebsocketItem; declare function defineMock(config: MockOptions): MockOptions; /** * Return a custom defineMock function to support preprocessing of mock config. * * 返回一个自定义的 defineMock 函数,用于支持对 mock config 的预处理。 * @param transformer preprocessing function * @example * ```ts * const definePostMock = createDefineMock((mock) => { * mock.url = '/api/post/' + mock.url * }) * export default definePostMock({ * url: 'list', * body: [{ title: '1' }, { title: '2' }], * }) * ``` */ declare function createDefineMock(transformer: (mock: MockHttpItem | MockWebsocketItem) => MockHttpItem | MockWebsocketItem | void): typeof defineMock; //#endregion //#region src/helpers/defineMockData.d.ts /** * Options for defineMockData * * defineMockData 的选项 */ interface DefineMockDataOptions { /** * Whether to persist the data value on HMR (Hot Module Replacement). * * 热更新时是否保持数据值 * * @default false */ persistOnHMR?: boolean; } /** * Mock data type with getter, setter, and value property * * 带有 getter、setter 和 value 属性的 Mock 数据类型 * * @template T - Type of mock data / Mock 数据的类型 */ type MockData = readonly [() => T, (val: T | ((val: T) => T | void)) => void] & { /** * Current value * * 当前值 */ value: T; }; /** * Define mock data with memory-based sharing mechanism * * 定义带有基于内存的共享机制的 Mock 数据 * * @template T - Type of mock data / Mock 数据的类型 * @param key - Unique key for mock data / Mock 数据的唯一键 * @param initialData - Initial data value / 初始数据值 * @param options - Options / 选项 * @returns MockData object with getter, setter, and value property / 带有 getter、setter 和 value 属性的 MockData 对象 */ declare function defineMockData(key: string, initialData: T, options?: DefineMockDataOptions): MockData; //#endregion export { type BodyParserOptions, type CookiesOption, DefineMockDataOptions, type ExtraRequest, type FormidableFile, type GetCookieOption, type HandleFunction, HeaderStream, type Headers, type HttpProxyPlugin, type LogLevel, type LogType, type Method, MockData, type MockErrorConfig, type MockHttpItem, type MockMatchPriority, type MockMatchSpecialPriority, type MockOptions, type MockRequest, type MockResponse, type MockServerPluginOptions, type MockWebsocketItem, type NextFunction, type NextHandleFunction, type PathFilter, type RecordOptions, type RecordedMeta, type RecordedReq, type RecordedRequest, type RecordedRes, type ResolvedRecordOptions, type ResponseBody, SSEMessage, type ServerBuildOption, type SetCookieOption, type SimpleHandleFunction, type WebSocketSetupContext, createDefineMock, createSSEStream, defineMock, defineMockData };