{"version":3,"sources":["../../../src/client/page-bootstrap.ts"],"sourcesContent":["import '../lib/require-instrumentation-client'\nimport { hydrate, router } from './'\nimport initOnDemandEntries from './dev/on-demand-entries-client'\nimport { displayContent } from './dev/fouc'\nimport {\n  connectHMR,\n  addMessageListener,\n} from './dev/hot-reloader/pages/websocket'\nimport {\n  assign,\n  urlQueryToSearchParams,\n} from '../shared/lib/router/utils/querystring'\nimport { HMR_MESSAGE_SENT_TO_BROWSER } from '../server/dev/hot-reloader-types'\nimport { RuntimeErrorHandler } from './dev/runtime-error-handler'\nimport { REACT_REFRESH_FULL_RELOAD_FROM_ERROR } from './dev/hot-reloader/shared'\nimport { performFullReload } from './dev/hot-reloader/pages/hot-reloader-pages'\nimport { dispatcher } from 'next/dist/compiled/next-devtools'\n\nexport function pageBootstrap(assetPrefix: string) {\n  connectHMR({ assetPrefix, path: '/_next/webpack-hmr' })\n\n  return hydrate({ beforeRender: displayContent }).then(() => {\n    initOnDemandEntries()\n\n    let reloading = false\n\n    addMessageListener((message) => {\n      if (reloading) return\n\n      switch (message.type) {\n        case HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ERROR: {\n          const errorObject = JSON.parse(message.errorJSON)\n          const error = new Error(errorObject.message)\n          error.stack = errorObject.stack\n          throw error\n        }\n        case HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE: {\n          reloading = true\n          window.location.reload()\n          break\n        }\n        case HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE: {\n          fetch(\n            `${assetPrefix}/_next/static/development/_devPagesManifest.json`\n          )\n            .then((res) => res.json())\n            .then((manifest) => {\n              window.__DEV_PAGES_MANIFEST = manifest\n            })\n            .catch((err) => {\n              console.log(`Failed to fetch devPagesManifest`, err)\n            })\n          break\n        }\n        case HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES: {\n          return window.location.reload()\n        }\n        case HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES: {\n          // This is used in `../server/dev/turbopack-utils.ts`.\n          const isOnErrorPage = window.next.router.pathname === '/_error'\n          // On the error page we want to reload the page when a page was changed\n          if (isOnErrorPage) {\n            if (RuntimeErrorHandler.hadRuntimeError) {\n              console.warn(REACT_REFRESH_FULL_RELOAD_FROM_ERROR)\n            }\n            reloading = true\n            performFullReload(null)\n          }\n          break\n        }\n        case HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES: {\n          if (RuntimeErrorHandler.hadRuntimeError) {\n            console.warn(REACT_REFRESH_FULL_RELOAD_FROM_ERROR)\n            performFullReload(null)\n          }\n\n          const { pages } = message\n\n          // Make sure to reload when the dev-overlay is showing for an\n          // API route\n          // TODO: Fix `__NEXT_PAGE` type\n          if (pages.includes(router.query.__NEXT_PAGE as string)) {\n            return window.location.reload()\n          }\n\n          if (!router.clc && pages.includes(router.pathname)) {\n            console.log('Refreshing page data due to server-side change')\n            dispatcher.buildingIndicatorShow()\n            const clearIndicator = dispatcher.buildingIndicatorHide\n\n            router\n              .replace(\n                router.pathname +\n                  '?' +\n                  String(\n                    assign(\n                      urlQueryToSearchParams(router.query),\n                      new URLSearchParams(location.search)\n                    )\n                  ),\n                router.asPath,\n                { scroll: false }\n              )\n              .catch(() => {\n                // trigger hard reload when failing to refresh data\n                // to show error overlay properly\n                location.reload()\n              })\n              .finally(clearIndicator)\n          }\n          break\n        }\n        case HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE:\n        case HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE:\n        case HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n        case HMR_MESSAGE_SENT_TO_BROWSER.SYNC:\n        case HMR_MESSAGE_SENT_TO_BROWSER.BUILT:\n        case HMR_MESSAGE_SENT_TO_BROWSER.BUILDING:\n        case HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE:\n        case HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED:\n        case HMR_MESSAGE_SENT_TO_BROWSER.ISR_MANIFEST:\n        case HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG:\n        case HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK:\n        case HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_CURRENT_ERROR_STATE:\n        case HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_PAGE_METADATA:\n        case HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR:\n        case HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER:\n          // Most of these action types are handled in\n          // src/client/dev/hot-reloader/pages/hot-reloader-pages.ts and\n          // src/client/dev/hot-reloader/app/hot-reloader-app.tsx\n          break\n        default:\n          message satisfies never\n      }\n    })\n  })\n}\n"],"names":["hydrate","router","initOnDemandEntries","displayContent","connectHMR","addMessageListener","assign","urlQueryToSearchParams","HMR_MESSAGE_SENT_TO_BROWSER","RuntimeErrorHandler","REACT_REFRESH_FULL_RELOAD_FROM_ERROR","performFullReload","dispatcher","pageBootstrap","assetPrefix","path","beforeRender","then","reloading","message","type","SERVER_ERROR","errorObject","JSON","parse","errorJSON","error","Error","stack","RELOAD_PAGE","window","location","reload","DEV_PAGES_MANIFEST_UPDATE","fetch","res","json","manifest","__DEV_PAGES_MANIFEST","catch","err","console","log","MIDDLEWARE_CHANGES","CLIENT_CHANGES","isOnErrorPage","next","pathname","hadRuntimeError","warn","SERVER_ONLY_CHANGES","pages","includes","query","__NEXT_PAGE","clc","buildingIndicatorShow","clearIndicator","buildingIndicatorHide","replace","String","URLSearchParams","search","asPath","scroll","finally","ADDED_PAGE","REMOVED_PAGE","SERVER_COMPONENT_CHANGES","SYNC","BUILT","BUILDING","TURBOPACK_MESSAGE","TURBOPACK_CONNECTED","ISR_MANIFEST","DEVTOOLS_CONFIG","REACT_DEBUG_CHUNK","REQUEST_CURRENT_ERROR_STATE","REQUEST_PAGE_METADATA","CACHE_INDICATOR","ERRORS_TO_SHOW_IN_BROWSER"],"mappings":"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","ignoreList":[0]}