{"version":3,"sources":["../../../../../src/client/dev/hot-reloader/app/hot-reloader-app.tsx"],"sourcesContent":["/// <reference types=\"webpack/module.d.ts\" />\n\nimport type { ReactNode } from 'react'\nimport { useEffect, startTransition } from 'react'\nimport stripAnsi from 'next/dist/compiled/strip-ansi'\nimport formatWebpackMessages from '../../../../shared/lib/format-webpack-messages'\nimport {\n  REACT_REFRESH_FULL_RELOAD,\n  REACT_REFRESH_FULL_RELOAD_FROM_ERROR,\n} from '../shared'\nimport {\n  dispatcher,\n  getSerializedOverlayState,\n  getSegmentTrieData,\n} from 'next/dist/compiled/next-devtools'\nimport { ReplaySsrOnlyErrors } from '../../../../next-devtools/userspace/app/errors/replay-ssr-only-errors'\nimport { AppDevOverlayErrorBoundary } from '../../../../next-devtools/userspace/app/app-dev-overlay-error-boundary'\nimport { useErrorHandler } from '../../../../next-devtools/userspace/app/errors/use-error-handler'\nimport { RuntimeErrorHandler } from '../../runtime-error-handler'\nimport { useWebSocketPing } from './web-socket'\nimport {\n  HMR_MESSAGE_SENT_TO_BROWSER,\n  HMR_MESSAGE_SENT_TO_SERVER,\n} from '../../../../server/dev/hot-reloader-types'\nimport type {\n  HmrMessageSentToBrowser,\n  TurbopackMessageSentToBrowser,\n} from '../../../../server/dev/hot-reloader-types'\nimport type { McpErrorStateResponse } from '../../../../shared/lib/mcp-error-types'\nimport type { McpPageMetadataResponse } from '../../../../shared/lib/mcp-page-metadata-types'\nimport { useUntrackedPathname } from '../../../components/navigation-untracked'\nimport reportHmrLatency from '../../report-hmr-latency'\nimport { TurbopackHmr } from '../turbopack-hot-reloader-common'\nimport {\n  publicAppRouterInstance,\n  type GlobalErrorState,\n} from '../../../components/app-router-instance'\nimport { InvariantError } from '../../../../shared/lib/invariant-error'\nimport { markErrorAsAlreadyLoggedOnServer } from '../../../../next-devtools/shared/forward-logs-shared'\nimport { getOrCreateDebugChannelReadableWriterPair } from '../../debug-channel'\n// TODO: Explicitly import from client.browser (doesn't work with Webpack).\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { createFromReadableStream as createFromReadableStreamBrowser } from 'react-server-dom-webpack/client'\nimport { findSourceMapURL } from '../../../app-find-source-map-url'\n\nexport interface StaticIndicatorState {\n  pathname: string | null\n  appIsrManifest: Record<string, boolean> | null\n}\n\nconst createFromReadableStream =\n  createFromReadableStreamBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromReadableStream']\n\nlet mostRecentCompilationHash: any = null\n// The dev client id is only read by the browser-side HMR websocket connection.\n// Compute it only in the browser: there is no client during SSR, and calling\n// `Math.random()`/`Date.now()` at module scope would be tracked as sync IO by\n// Cache Components and advance the render stage.\nlet __nextDevClientId =\n  typeof window !== 'undefined'\n    ? Math.round(Math.random() * 100 + Date.now())\n    : 0\nlet reloading = false\nlet webpackStartMsSinceEpoch: number | null = null\nconst turbopackHmr: TurbopackHmr | null = process.env.TURBOPACK\n  ? new TurbopackHmr()\n  : null\n\nlet pendingHotUpdateWebpack = Promise.resolve()\nlet resolvePendingHotUpdateWebpack: () => void = () => {}\nfunction setPendingHotUpdateWebpack() {\n  pendingHotUpdateWebpack = new Promise((resolve) => {\n    resolvePendingHotUpdateWebpack = () => {\n      resolve()\n    }\n  })\n}\n\nexport function waitForWebpackRuntimeHotUpdate() {\n  return pendingHotUpdateWebpack\n}\n\n// There is a newer version of the code available.\nfunction handleAvailableHash(hash: string) {\n  // Update last known compilation hash.\n  mostRecentCompilationHash = hash\n}\n\n/**\n * Is there a newer version of this code available?\n * For webpack: Check if the hash changed compared to __webpack_hash__\n * For Turbopack: Always true because it doesn't have __webpack_hash__\n */\nfunction isUpdateAvailable() {\n  if (process.env.TURBOPACK) {\n    return true\n  }\n\n  /* globals __webpack_hash__ */\n  // __webpack_hash__ is the hash of the current compilation.\n  // It's a global variable injected by Webpack.\n  return mostRecentCompilationHash !== __webpack_hash__\n}\n\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n  return module.hot.status() === 'idle'\n}\nfunction afterApplyUpdates(fn: any) {\n  if (canApplyUpdates()) {\n    fn()\n  } else {\n    function handler(status: any) {\n      if (status === 'idle') {\n        module.hot.removeStatusHandler(handler)\n        fn()\n      }\n    }\n    module.hot.addStatusHandler(handler)\n  }\n}\n\nexport function performFullReload(\n  err: any,\n  sendMessage: (data: string) => void\n) {\n  const stackTrace =\n    err &&\n    ((err.stack && err.stack.split('\\n').slice(0, 5).join('\\n')) ||\n      err.message ||\n      err + '')\n\n  sendMessage(\n    JSON.stringify({\n      event: 'client-full-reload',\n      stackTrace,\n      hadRuntimeError: !!RuntimeErrorHandler.hadRuntimeError,\n      dependencyChain: err ? err.dependencyChain : undefined,\n    })\n  )\n\n  if (reloading) return\n  reloading = true\n  window.location.reload()\n}\n\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdatesWebpack(sendMessage: (message: string) => void) {\n  if (!isUpdateAvailable() || !canApplyUpdates()) {\n    resolvePendingHotUpdateWebpack()\n    dispatcher.onBuildOk()\n    reportHmrLatency(sendMessage, [], webpackStartMsSinceEpoch!, Date.now())\n    return\n  }\n\n  function handleApplyUpdates(\n    err: any,\n    updatedModules: (string | number)[] | null\n  ) {\n    if (err || RuntimeErrorHandler.hadRuntimeError || updatedModules == null) {\n      if (err) {\n        console.warn(REACT_REFRESH_FULL_RELOAD)\n      } else if (RuntimeErrorHandler.hadRuntimeError) {\n        console.warn(REACT_REFRESH_FULL_RELOAD_FROM_ERROR)\n      }\n      performFullReload(err, sendMessage)\n      return\n    }\n\n    dispatcher.onBuildOk()\n\n    if (isUpdateAvailable()) {\n      // While we were updating, there was a new update! Do it again.\n      tryApplyUpdatesWebpack(sendMessage)\n      return\n    }\n\n    dispatcher.onRefresh()\n    resolvePendingHotUpdateWebpack()\n    reportHmrLatency(\n      sendMessage,\n      updatedModules,\n      webpackStartMsSinceEpoch!,\n      Date.now()\n    )\n\n    if (process.env.__NEXT_TEST_MODE) {\n      afterApplyUpdates(() => {\n        if (self.__NEXT_HMR_CB) {\n          self.__NEXT_HMR_CB()\n          self.__NEXT_HMR_CB = null\n        }\n      })\n    }\n  }\n\n  // https://webpack.js.org/api/hot-module-replacement/#check\n  module.hot\n    .check(/* autoApply */ false)\n    .then((updatedModules: (string | number)[] | null) => {\n      if (updatedModules == null) {\n        return null\n      }\n\n      // We should always handle an update, even if updatedModules is empty (but\n      // non-null) for any reason. That's what webpack would normally do:\n      // https://github.com/webpack/webpack/blob/3aa6b6bc3a64/lib/hmr/HotModuleReplacement.runtime.js#L296-L298\n      dispatcher.onBeforeRefresh()\n      // https://webpack.js.org/api/hot-module-replacement/#apply\n      return module.hot.apply()\n    })\n    .then(\n      (updatedModules: (string | number)[] | null) => {\n        handleApplyUpdates(null, updatedModules)\n      },\n      (err: any) => {\n        handleApplyUpdates(err, null)\n      }\n    )\n}\n\n/** Handles messages from the server for the App Router. */\nexport function processMessage(\n  message: HmrMessageSentToBrowser,\n  sendMessage: (message: string) => void,\n  processTurbopackMessage: (msg: TurbopackMessageSentToBrowser) => void,\n  staticIndicatorState: StaticIndicatorState\n) {\n  function handleErrors(errors: ReadonlyArray<unknown>) {\n    // \"Massage\" webpack messages.\n    const formatted = formatWebpackMessages({\n      errors: errors,\n      warnings: [],\n    })\n\n    // Only show the first error.\n    dispatcher.onBuildError(formatted.errors[0])\n\n    // Also log them to the console.\n    for (let i = 0; i < formatted.errors.length; i++) {\n      console.error(stripAnsi(formatted.errors[i]))\n    }\n\n    // Do not attempt to reload now.\n    // We will reload on next success instead.\n    if (process.env.__NEXT_TEST_MODE) {\n      if (self.__NEXT_HMR_CB) {\n        self.__NEXT_HMR_CB(formatted.errors[0])\n        self.__NEXT_HMR_CB = null\n      }\n    }\n  }\n\n  function handleHotUpdate() {\n    if (process.env.TURBOPACK) {\n      const hmrUpdate = turbopackHmr!.onBuilt()\n      if (hmrUpdate != null) {\n        reportHmrLatency(\n          sendMessage,\n          [...hmrUpdate.updatedModules],\n          hmrUpdate.startMsSinceEpoch,\n          hmrUpdate.endMsSinceEpoch,\n          // suppress the `client-hmr-latency` event if the update was a no-op:\n          hmrUpdate.hasUpdates\n        )\n      }\n      dispatcher.onBuildOk()\n    } else {\n      tryApplyUpdatesWebpack(sendMessage)\n    }\n  }\n\n  switch (message.type) {\n    case HMR_MESSAGE_SENT_TO_BROWSER.ISR_MANIFEST: {\n      if (process.env.__NEXT_DEV_INDICATOR) {\n        staticIndicatorState.appIsrManifest = message.data\n\n        // Handle the initial static indicator status on receiving the ISR\n        // manifest. Navigation is handled in an effect inside HotReload for\n        // pathname changes as we'll receive the updated manifest before\n        // usePathname triggers for a new value.\n\n        const isStatic = staticIndicatorState.pathname\n          ? message.data[staticIndicatorState.pathname]\n          : undefined\n\n        dispatcher.onStaticIndicator(\n          isStatic === undefined ? 'pending' : isStatic ? 'static' : 'dynamic'\n        )\n      }\n      break\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.BUILDING: {\n      dispatcher.buildingIndicatorShow()\n\n      if (process.env.TURBOPACK) {\n        turbopackHmr!.onBuilding()\n      } else {\n        webpackStartMsSinceEpoch = Date.now()\n        setPendingHotUpdateWebpack()\n        console.log('[Fast Refresh] rebuilding')\n      }\n      break\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.BUILT:\n    case HMR_MESSAGE_SENT_TO_BROWSER.SYNC: {\n      dispatcher.buildingIndicatorHide()\n\n      if (message.hash) {\n        handleAvailableHash(message.hash)\n      }\n\n      const { errors, warnings } = message\n\n      // Is undefined when it's a 'built' event\n      if ('versionInfo' in message)\n        dispatcher.onVersionInfo(message.versionInfo)\n      if ('debug' in message && message.debug)\n        dispatcher.onDebugInfo(message.debug)\n      if ('devIndicator' in message)\n        dispatcher.onDevIndicator(message.devIndicator)\n      if ('devToolsConfig' in message)\n        dispatcher.onDevToolsConfig(message.devToolsConfig)\n      if ('requestInsights' in message && message.requestInsights)\n        dispatcher.onRequestInsightsSnapshot(message.requestInsights)\n\n      const hasErrors = Boolean(errors && errors.length)\n      // Compilation with errors (e.g. syntax error or missing modules).\n      if (hasErrors) {\n        sendMessage(\n          JSON.stringify({\n            event: 'client-error',\n            errorCount: errors.length,\n            clientId: __nextDevClientId,\n          })\n        )\n\n        handleErrors(errors)\n        return\n      }\n\n      const hasWarnings = Boolean(warnings && warnings.length)\n      if (hasWarnings) {\n        sendMessage(\n          JSON.stringify({\n            event: 'client-warning',\n            warningCount: warnings.length,\n            clientId: __nextDevClientId,\n          })\n        )\n\n        // Print warnings to the console.\n        const formattedMessages = formatWebpackMessages({\n          warnings: warnings,\n          errors: [],\n        })\n\n        for (let i = 0; i < formattedMessages.warnings.length; i++) {\n          if (i === 5) {\n            console.warn(\n              'There were more warnings in other files.\\n' +\n                'You can find a complete log in the terminal.'\n            )\n            break\n          }\n          console.warn(stripAnsi(formattedMessages.warnings[i]))\n        }\n\n        // No early return here as we need to apply modules in the same way between warnings only and compiles without warnings\n      }\n\n      sendMessage(\n        JSON.stringify({\n          event: 'client-success',\n          clientId: __nextDevClientId,\n        })\n      )\n\n      if (message.type === HMR_MESSAGE_SENT_TO_BROWSER.BUILT) {\n        handleHotUpdate()\n      }\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED: {\n      processTurbopackMessage({\n        type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n        data: {\n          sessionId: message.data.sessionId,\n        },\n      })\n      break\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE: {\n      turbopackHmr!.onTurbopackMessage(message)\n      dispatcher.onBeforeRefresh()\n      processTurbopackMessage({\n        type: HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n        data: message.data,\n      })\n      if (RuntimeErrorHandler.hadRuntimeError) {\n        console.warn(REACT_REFRESH_FULL_RELOAD_FROM_ERROR)\n        performFullReload(null, sendMessage)\n      }\n      dispatcher.onRefresh()\n      break\n    }\n    // TODO-APP: make server component change more granular\n    case HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES: {\n      turbopackHmr?.onServerComponentChanges()\n      sendMessage(\n        JSON.stringify({\n          event: 'server-component-reload-page',\n          clientId: __nextDevClientId,\n        })\n      )\n\n      if (\n        RuntimeErrorHandler.hadRuntimeError ||\n        document.documentElement.id === '__next_error__'\n      ) {\n        if (reloading) return\n        reloading = true\n        return window.location.reload()\n      }\n\n      startTransition(() => {\n        publicAppRouterInstance.hmrRefresh()\n        dispatcher.onRefresh()\n      })\n\n      if (process.env.__NEXT_TEST_MODE) {\n        if (self.__NEXT_HMR_CB) {\n          self.__NEXT_HMR_CB()\n          self.__NEXT_HMR_CB = null\n        }\n      }\n\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.STATIC_PARAMS_CHANGED: {\n      // Re-fetch the current router tree so the render picks up the new set of\n      // statically-known params (and thus the fresh `fallbackParams`). Unlike\n      // `SERVER_COMPONENT_CHANGES` this does not store an HMR refresh hash, so\n      // it doesn't invalidate `\"use cache\"` entries.\n      if (\n        RuntimeErrorHandler.hadRuntimeError ||\n        document.documentElement.id === '__next_error__'\n      ) {\n        if (reloading) return\n        reloading = true\n        return window.location.reload()\n      }\n\n      startTransition(() => {\n        publicAppRouterInstance.hmrRefresh()\n        dispatcher.onRefresh()\n      })\n\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE: {\n      turbopackHmr?.onReloadPage()\n      sendMessage(\n        JSON.stringify({\n          event: 'client-reload-page',\n          clientId: __nextDevClientId,\n        })\n      )\n      if (reloading) return\n      reloading = true\n      return window.location.reload()\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE:\n    case HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE: {\n      turbopackHmr?.onPageAddRemove()\n      // TODO-APP: potentially only refresh if the currently viewed page was added/removed.\n      return publicAppRouterInstance.hmrRefresh()\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ERROR: {\n      const { errorJSON } = message\n      if (errorJSON) {\n        const errorObject = JSON.parse(errorJSON)\n        const error = new Error(errorObject.message)\n        error.stack = errorObject.stack\n        handleErrors([error])\n      }\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE: {\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG: {\n      dispatcher.onDevToolsConfig(message.data)\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_INSIGHTS_UPDATE: {\n      dispatcher.onRequestInsightsUpdate(message.insight)\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK: {\n      const { requestId, chunk } = message\n      const { writer } = getOrCreateDebugChannelReadableWriterPair(requestId)\n\n      if (chunk) {\n        writer.ready.then(() => writer.write(chunk)).catch(console.error)\n      } else {\n        // A null chunk signals that no more chunks will be sent, which allows\n        // us to close the writer.\n        // TODO: Revisit this cleanup logic when we integrate the return channel\n        // that keeps the connection open to be able to lazily retrieve debug\n        // objects.\n        writer.ready.then(() => writer.close()).catch(console.error)\n      }\n\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_CURRENT_ERROR_STATE: {\n      const errorState = getSerializedOverlayState()\n      const response: McpErrorStateResponse = {\n        event: HMR_MESSAGE_SENT_TO_SERVER.MCP_ERROR_STATE_RESPONSE,\n        requestId: message.requestId,\n        errorState,\n        url: window.location.href,\n      }\n      sendMessage(JSON.stringify(response))\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_PAGE_METADATA: {\n      const segmentTrieData = getSegmentTrieData()\n      const response: McpPageMetadataResponse = {\n        event: HMR_MESSAGE_SENT_TO_SERVER.MCP_PAGE_METADATA_RESPONSE,\n        requestId: message.requestId,\n        segmentTrieData,\n        url: window.location.href,\n      }\n      sendMessage(JSON.stringify(response))\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR: {\n      dispatcher.onCacheIndicator(message.state)\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER: {\n      createFromReadableStream<{\n        errors: Error[]\n        errorCodes: Map<Error, string>\n      }>(\n        new ReadableStream({\n          start(controller) {\n            controller.enqueue(message.serializedErrors)\n            controller.close()\n          },\n        }),\n        { findSourceMapURL }\n      ).then(\n        ({ errors, errorCodes }) => {\n          for (const error of errors) {\n            const code = errorCodes.get(error)\n            if (code !== undefined) {\n              Object.defineProperty(error, '__NEXT_ERROR_CODE', {\n                value: code,\n                enumerable: false,\n                configurable: true,\n              })\n            }\n            // These errors originated on the server and were already logged\n            // there. Mark them so the browser-to-terminal log forwarding\n            // doesn't replay them back to the CLI as duplicates.\n            markErrorAsAlreadyLoggedOnServer(error)\n            console.error(error)\n          }\n        },\n        (err) => {\n          console.error(\n            new Error('Failed to deserialize errors.', { cause: err })\n          )\n        }\n      )\n      return\n    }\n    case HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES:\n    case HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES:\n    case HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES:\n      // These action types are handled in src/client/page-bootstrap.ts\n      break\n    default: {\n      message satisfies never\n    }\n  }\n}\n\nexport default function HotReload({\n  children,\n  globalError,\n  webSocket,\n  staticIndicatorState,\n}: {\n  children: ReactNode\n  globalError: GlobalErrorState\n  webSocket: WebSocket | undefined\n  staticIndicatorState: StaticIndicatorState | undefined\n}) {\n  useErrorHandler(dispatcher.onUnhandledError, dispatcher.onUnhandledRejection)\n  useWebSocketPing(webSocket)\n\n  // We don't want access of the pathname for the dev tools to trigger a dynamic\n  // access (as the dev overlay will never be present in production).\n  const pathname = useUntrackedPathname()\n\n  if (process.env.__NEXT_DEV_INDICATOR) {\n    // this conditional is only for dead-code elimination which\n    // isn't a runtime conditional only build-time so ignore hooks rule\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    useEffect(() => {\n      if (!staticIndicatorState) {\n        throw new InvariantError(\n          'Expected staticIndicatorState to be defined in dev mode.'\n        )\n      }\n\n      staticIndicatorState.pathname = pathname\n\n      if (staticIndicatorState.appIsrManifest) {\n        const isStatic = pathname\n          ? staticIndicatorState.appIsrManifest[pathname]\n          : undefined\n\n        dispatcher.onStaticIndicator(\n          isStatic === undefined ? 'pending' : isStatic ? 'static' : 'dynamic'\n        )\n      }\n    }, [pathname, staticIndicatorState])\n  }\n\n  return (\n    <AppDevOverlayErrorBoundary globalError={globalError}>\n      <ReplaySsrOnlyErrors onBlockingError={dispatcher.openErrorOverlay} />\n      {children}\n    </AppDevOverlayErrorBoundary>\n  )\n}\n"],"names":["HotReload","performFullReload","processMessage","waitForWebpackRuntimeHotUpdate","createFromReadableStream","createFromReadableStreamBrowser","mostRecentCompilationHash","__nextDevClientId","window","Math","round","random","Date","now","reloading","webpackStartMsSinceEpoch","turbopackHmr","process","env","TURBOPACK","TurbopackHmr","pendingHotUpdateWebpack","Promise","resolve","resolvePendingHotUpdateWebpack","setPendingHotUpdateWebpack","handleAvailableHash","hash","isUpdateAvailable","__webpack_hash__","canApplyUpdates","module","hot","status","afterApplyUpdates","fn","handler","removeStatusHandler","addStatusHandler","err","sendMessage","stackTrace","stack","split","slice","join","message","JSON","stringify","event","hadRuntimeError","RuntimeErrorHandler","dependencyChain","undefined","location","reload","tryApplyUpdatesWebpack","dispatcher","onBuildOk","reportHmrLatency","handleApplyUpdates","updatedModules","console","warn","REACT_REFRESH_FULL_RELOAD","REACT_REFRESH_FULL_RELOAD_FROM_ERROR","onRefresh","__NEXT_TEST_MODE","self","__NEXT_HMR_CB","check","then","onBeforeRefresh","apply","processTurbopackMessage","staticIndicatorState","handleErrors","errors","formatted","formatWebpackMessages","warnings","onBuildError","i","length","error","stripAnsi","handleHotUpdate","hmrUpdate","onBuilt","startMsSinceEpoch","endMsSinceEpoch","hasUpdates","type","HMR_MESSAGE_SENT_TO_BROWSER","ISR_MANIFEST","__NEXT_DEV_INDICATOR","appIsrManifest","data","isStatic","pathname","onStaticIndicator","BUILDING","buildingIndicatorShow","onBuilding","log","BUILT","SYNC","buildingIndicatorHide","onVersionInfo","versionInfo","debug","onDebugInfo","onDevIndicator","devIndicator","onDevToolsConfig","devToolsConfig","requestInsights","onRequestInsightsSnapshot","hasErrors","Boolean","errorCount","clientId","hasWarnings","warningCount","formattedMessages","TURBOPACK_CONNECTED","sessionId","TURBOPACK_MESSAGE","onTurbopackMessage","SERVER_COMPONENT_CHANGES","onServerComponentChanges","document","documentElement","id","startTransition","publicAppRouterInstance","hmrRefresh","STATIC_PARAMS_CHANGED","RELOAD_PAGE","onReloadPage","ADDED_PAGE","REMOVED_PAGE","onPageAddRemove","SERVER_ERROR","errorJSON","errorObject","parse","Error","DEV_PAGES_MANIFEST_UPDATE","DEVTOOLS_CONFIG","REQUEST_INSIGHTS_UPDATE","onRequestInsightsUpdate","insight","REACT_DEBUG_CHUNK","requestId","chunk","writer","getOrCreateDebugChannelReadableWriterPair","ready","write","catch","close","REQUEST_CURRENT_ERROR_STATE","errorState","getSerializedOverlayState","response","HMR_MESSAGE_SENT_TO_SERVER","MCP_ERROR_STATE_RESPONSE","url","href","REQUEST_PAGE_METADATA","segmentTrieData","getSegmentTrieData","MCP_PAGE_METADATA_RESPONSE","CACHE_INDICATOR","onCacheIndicator","state","ERRORS_TO_SHOW_IN_BROWSER","ReadableStream","start","controller","enqueue","serializedErrors","findSourceMapURL","errorCodes","code","get","Object","defineProperty","value","enumerable","configurable","markErrorAsAlreadyLoggedOnServer","cause","MIDDLEWARE_CHANGES","CLIENT_CHANGES","SERVER_ONLY_CHANGES","children","globalError","webSocket","useErrorHandler","onUnhandledError","onUnhandledRejection","useWebSocketPing","useUntrackedPathname","useEffect","InvariantError","AppDevOverlayErrorBoundary","ReplaySsrOnlyErrors","onBlockingError","openErrorOverlay"],"mappings":"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","ignoreList":[0]}