{"version":3,"sources":["../../../src/server/dev/hot-reloader-types.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'http'\nimport type { UrlObject } from 'url'\nimport type { Duplex } from 'stream'\nimport type { webpack } from 'next/dist/compiled/webpack/webpack'\nimport type getBaseWebpackConfig from '../../build/webpack-config'\nimport type { RouteDefinition } from '../route-definitions/route-definition'\nimport type { Project, Update as TurbopackUpdate } from '../../build/swc/types'\nimport type { VersionInfo } from './parse-version-info'\nimport type { DebugInfo } from '../../next-devtools/shared/types'\nimport type { DevIndicatorServerState } from './dev-indicator-server-state'\nimport type {\n  CacheIndicatorState,\n  ServerCacheStatus,\n} from '../../next-devtools/dev-overlay/cache-indicator'\nimport type { DevToolsConfig } from '../../next-devtools/dev-overlay/shared'\nimport type { ReactDebugChannelForBrowser } from './debug-channel'\n\nexport const enum HMR_MESSAGE_SENT_TO_BROWSER {\n  // JSON messages:\n  ADDED_PAGE = 'addedPage',\n  REMOVED_PAGE = 'removedPage',\n  RELOAD_PAGE = 'reloadPage',\n  SERVER_COMPONENT_CHANGES = 'serverComponentChanges',\n  MIDDLEWARE_CHANGES = 'middlewareChanges',\n  CLIENT_CHANGES = 'clientChanges',\n  SERVER_ONLY_CHANGES = 'serverOnlyChanges',\n  SYNC = 'sync',\n  BUILT = 'built',\n  BUILDING = 'building',\n  DEV_PAGES_MANIFEST_UPDATE = 'devPagesManifestUpdate',\n  TURBOPACK_MESSAGE = 'turbopack-message',\n  SERVER_ERROR = 'serverError',\n  TURBOPACK_CONNECTED = 'turbopack-connected',\n  ISR_MANIFEST = 'isrManifest',\n  CACHE_INDICATOR = 'cacheIndicator',\n  DEV_INDICATOR = 'devIndicator',\n  DEVTOOLS_CONFIG = 'devtoolsConfig',\n  REQUEST_CURRENT_ERROR_STATE = 'requestCurrentErrorState',\n  REQUEST_PAGE_METADATA = 'requestPageMetadata',\n\n  // Binary messages:\n  REACT_DEBUG_CHUNK = 0,\n  ERRORS_TO_SHOW_IN_BROWSER = 1,\n}\n\nexport const enum HMR_MESSAGE_SENT_TO_SERVER {\n  // JSON messages:\n  MCP_ERROR_STATE_RESPONSE = 'mcp-error-state-response',\n  MCP_PAGE_METADATA_RESPONSE = 'mcp-page-metadata-response',\n  PING = 'ping',\n}\n\nexport interface ServerErrorMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ERROR\n  errorJSON: string\n}\n\nexport interface TurbopackMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE\n  data: TurbopackUpdate | TurbopackUpdate[]\n}\n\nexport interface BuildingMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.BUILDING\n}\n\nexport interface CompilationError {\n  moduleName?: string\n  message: string\n  details?: string\n  moduleTrace?: Array<{ moduleName?: string }>\n  stack?: string\n}\n\nexport interface SyncMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.SYNC\n  hash: string\n  errors: ReadonlyArray<CompilationError>\n  warnings: ReadonlyArray<CompilationError>\n  versionInfo: VersionInfo\n  updatedModules?: ReadonlyArray<string>\n  debug?: DebugInfo\n  devIndicator: DevIndicatorServerState\n  devToolsConfig?: DevToolsConfig\n}\n\nexport interface BuiltMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.BUILT\n  hash: string\n  errors: ReadonlyArray<CompilationError>\n  warnings: ReadonlyArray<CompilationError>\n  updatedModules?: ReadonlyArray<string>\n}\n\nexport interface AddedPageMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE\n  data: [page: string | null]\n}\n\nexport interface RemovedPageMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE\n  data: [page: string | null]\n}\n\nexport interface ReloadPageMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE\n  data: string\n}\n\nexport interface ServerComponentChangesMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES\n  hash: string\n}\n\nexport interface MiddlewareChangesMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES\n}\n\nexport interface ClientChangesMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES\n}\n\nexport interface ServerOnlyChangesMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES\n  pages: ReadonlyArray<string>\n}\n\nexport interface DevPagesManifestUpdateMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE\n  data: [\n    {\n      devPagesManifest: true\n    },\n  ]\n}\n\nexport interface TurbopackConnectedMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED\n  data: { sessionId: number }\n}\n\nexport interface AppIsrManifestMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.ISR_MANIFEST\n  data: Record<string, boolean>\n}\n\nexport interface DevToolsConfigMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG\n  data: DevToolsConfig\n}\n\nexport interface ReactDebugChunkMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK\n  requestId: string\n  /**\n   * A null chunk signals to the browser that no more chunks will be sent.\n   */\n  chunk: Uint8Array | null\n}\n\nexport interface ErrorsToShowInBrowserMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER\n  serializedErrors: Uint8Array\n}\n\nexport interface RequestCurrentErrorStateMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_CURRENT_ERROR_STATE\n  requestId: string\n}\n\nexport interface RequestPageMetadataMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_PAGE_METADATA\n  requestId: string\n}\n\nexport interface CacheIndicatorMessage {\n  type: HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR\n  state: CacheIndicatorState\n}\n\nexport type HmrMessageSentToBrowser =\n  | TurbopackMessage\n  | TurbopackConnectedMessage\n  | BuildingMessage\n  | SyncMessage\n  | BuiltMessage\n  | AddedPageMessage\n  | RemovedPageMessage\n  | ReloadPageMessage\n  | ServerComponentChangesMessage\n  | ClientChangesMessage\n  | MiddlewareChangesMessage\n  | ServerOnlyChangesMessage\n  | DevPagesManifestUpdateMessage\n  | ServerErrorMessage\n  | AppIsrManifestMessage\n  | DevToolsConfigMessage\n  | ErrorsToShowInBrowserMessage\n  | ReactDebugChunkMessage\n  | RequestCurrentErrorStateMessage\n  | RequestPageMetadataMessage\n  | CacheIndicatorMessage\n\nexport type BinaryHmrMessageSentToBrowser = Extract<\n  HmrMessageSentToBrowser,\n  { type: number }\n>\n\nexport type TurbopackMessageSentToBrowser =\n  | {\n      type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE\n      data: any\n    }\n  | {\n      type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED\n      data: { sessionId: number }\n    }\n\nexport interface NextJsHotReloaderInterface {\n  turbopackProject?: Project\n  activeWebpackConfigs?: Array<Awaited<ReturnType<typeof getBaseWebpackConfig>>>\n  serverStats: webpack.Stats | null\n  edgeServerStats: webpack.Stats | null\n  run(\n    req: IncomingMessage,\n    res: ServerResponse,\n    parsedUrl: UrlObject\n  ): Promise<{ finished?: true }>\n\n  setHmrServerError(error: Error | null): void\n  clearHmrServerError(): void\n  start(): Promise<void>\n  send(action: HmrMessageSentToBrowser): void\n  /**\n   * Send the given action only to legacy clients, i.e. Pages Router clients,\n   * and App Router clients that don't have Cache Components enabled.\n   */\n  sendToLegacyClients(action: HmrMessageSentToBrowser): void\n  setCacheStatus(status: ServerCacheStatus, htmlRequestId: string): void\n  setReactDebugChannel(\n    debugChannel: ReactDebugChannelForBrowser,\n    htmlRequestId: string,\n    requestId: string\n  ): void\n  sendErrorsToBrowser(\n    errorsRscStream: ReadableStream<Uint8Array>,\n    htmlRequestId: string\n  ): void\n  getCompilationErrors(page: string): Promise<any[]>\n  onHMR(\n    req: IncomingMessage,\n    _socket: Duplex,\n    head: Buffer,\n    onUpgrade: (\n      client: { send(data: string): void },\n      context: { isLegacyClient: boolean }\n    ) => void\n  ): void\n  invalidate({\n    reloadAfterInvalidation,\n  }: {\n    reloadAfterInvalidation: boolean\n  }): Promise<void> | void\n  buildFallbackError(): Promise<void>\n  ensurePage({\n    page,\n    clientOnly,\n    appPaths,\n    definition,\n    isApp,\n    url,\n  }: {\n    page: string\n    clientOnly: boolean\n    appPaths?: ReadonlyArray<string> | null\n    isApp?: boolean\n    definition: RouteDefinition | undefined\n    url?: string\n  }): Promise<void>\n  close(): void\n}\n"],"names":["HMR_MESSAGE_SENT_TO_BROWSER","HMR_MESSAGE_SENT_TO_SERVER"],"mappings":";;;;;;;;;;;;;;;IAiBkBA,2BAA2B;eAA3BA;;IA4BAC,0BAA0B;eAA1BA;;;AA5BX,IAAA,AAAWD,qDAAAA;IAChB,iBAAiB;;;;;;;;;;;;;;;;;;;;;IAsBjB,mBAAmB;;;WAvBHA;;AA4BX,IAAA,AAAWC,oDAAAA;IAChB,iBAAiB;;;;WADDA","ignoreList":[0]}