{"ast":null,"code":"\"use strict\";\n\nvar _classCallCheck = require(\"/Users/dhrumil1/Documents/Tethy/online-verification/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/Users/dhrumil1/Documents/Tethy/online-verification/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _router = require(\"../next-server/lib/router/router\");\n\nvar _getAssetPathFromRoute = _interopRequireDefault(require(\"../next-server/lib/router/utils/get-asset-path-from-route\"));\n\nvar _isDynamic = require(\"../next-server/lib/router/utils/is-dynamic\");\n\nvar _parseRelativeUrl = require(\"../next-server/lib/router/utils/parse-relative-url\");\n\nvar _routeLoader = _interopRequireWildcard(require(\"./route-loader\"));\n\nfunction normalizeRoute(route) {\n  if (route[0] !== '/') {\n    throw new Error(\"Route name should start with a \\\"/\\\", got \\\"\".concat(route, \"\\\"\"));\n  }\n\n  if (route === '/') return route;\n  return route.replace(/\\/$/, '');\n}\n\nvar PageLoader = /*#__PURE__*/function () {\n  function PageLoader(buildId, assetPrefix) {\n    _classCallCheck(this, PageLoader);\n\n    this.buildId = void 0;\n    this.assetPrefix = void 0;\n    this.promisedSsgManifest = void 0;\n    this.promisedDevPagesManifest = void 0;\n    this.routeLoader = void 0;\n    this.routeLoader = (0, _routeLoader[\"default\"])(assetPrefix);\n    this.buildId = buildId;\n    this.assetPrefix = assetPrefix;\n    /** @type {Promise<Set<string>>} */\n\n    this.promisedSsgManifest = new Promise(function (resolve) {\n      if (window.__SSG_MANIFEST) {\n        resolve(window.__SSG_MANIFEST);\n      } else {\n        ;\n\n        window.__SSG_MANIFEST_CB = function () {\n          resolve(window.__SSG_MANIFEST);\n        };\n      }\n    });\n  }\n\n  _createClass(PageLoader, [{\n    key: \"getPageList\",\n    value: function getPageList() {\n      if (false) {\n        return (0, _routeLoader.getClientBuildManifest)().then(function (manifest) {\n          return manifest.sortedPages;\n        });\n      } else {\n        if (window.__DEV_PAGES_MANIFEST) {\n          return window.__DEV_PAGES_MANIFEST.pages;\n        } else {\n          if (!this.promisedDevPagesManifest) {\n            this.promisedDevPagesManifest = fetch(\"\".concat(this.assetPrefix, \"/_next/static/development/_devPagesManifest.json\")).then(function (res) {\n              return res.json();\n            }).then(function (manifest) {\n              ;\n              window.__DEV_PAGES_MANIFEST = manifest;\n              return manifest.pages;\n            })[\"catch\"](function (err) {\n              console.log(\"Failed to fetch devPagesManifest\", err);\n            });\n          }\n\n          return this.promisedDevPagesManifest;\n        }\n      }\n    }\n    /**\n    * @param {string} href the route href (file-system path)\n    * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n    */\n\n  }, {\n    key: \"getDataHref\",\n    value: function getDataHref(href, asPath, ssg, locale) {\n      var _this = this;\n\n      var _ref = (0, _parseRelativeUrl.parseRelativeUrl)(href),\n          hrefPathname = _ref.pathname,\n          query = _ref.query,\n          search = _ref.search;\n\n      var _ref2 = (0, _parseRelativeUrl.parseRelativeUrl)(asPath),\n          asPathname = _ref2.pathname;\n\n      var route = normalizeRoute(hrefPathname);\n\n      var getHrefForSlug = function getHrefForSlug(path) {\n        var dataRoute = (0, _getAssetPathFromRoute[\"default\"])((0, _router.addLocale)(path, locale), '.json');\n        return (0, _router.addBasePath)(\"/_next/data/\".concat(_this.buildId).concat(dataRoute).concat(ssg ? '' : search));\n      };\n\n      var isDynamic = (0, _isDynamic.isDynamicRoute)(route);\n      var interpolatedRoute = isDynamic ? (0, _router.interpolateAs)(hrefPathname, asPathname, query).result : '';\n      return isDynamic ? interpolatedRoute && getHrefForSlug(interpolatedRoute) : getHrefForSlug(route);\n    }\n    /**\n    * @param {string} href the route href (file-system path)\n    */\n\n  }, {\n    key: \"_isSsg\",\n    value: function _isSsg(href) {\n      var _ref3 = (0, _parseRelativeUrl.parseRelativeUrl)(href),\n          hrefPathname = _ref3.pathname;\n\n      var route = normalizeRoute(hrefPathname);\n      return this.promisedSsgManifest.then(function (s) {\n        return s.has(route);\n      });\n    }\n  }, {\n    key: \"loadPage\",\n    value: function loadPage(route) {\n      return this.routeLoader.loadRoute(route).then(function (res) {\n        if ('component' in res) {\n          return {\n            page: res.component,\n            mod: res.exports,\n            styleSheets: res.styles.map(function (o) {\n              return {\n                href: o.href,\n                text: o.content\n              };\n            })\n          };\n        }\n\n        throw res.error;\n      });\n    }\n  }, {\n    key: \"prefetch\",\n    value: function prefetch(route) {\n      return this.routeLoader.prefetch(route);\n    }\n  }]);\n\n  return PageLoader;\n}();\n\nexports[\"default\"] = PageLoader;","map":{"version":3,"sources":["../../client/page-loader.ts"],"names":["route","PageLoader","buildId","assetPrefix","promisedSsgManifest","promisedDevPagesManifest","routeLoader","constructor","resolve","window","getPageList","manifest","fetch","res","err","console","pathname","normalizeRoute","getHrefForSlug","path","dataRoute","ssg","isDynamic","interpolatedRoute","s","loadPage","page","mod","styleSheets","o","href","text","prefetch"],"mappings":"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","sourcesContent":["import { ComponentType } from 'react'\nimport type { ClientSsgManifest } from '../build'\nimport {\n  addBasePath,\n  addLocale,\n  interpolateAs,\n} from '../next-server/lib/router/router'\nimport getAssetPathFromRoute from '../next-server/lib/router/utils/get-asset-path-from-route'\nimport { isDynamicRoute } from '../next-server/lib/router/utils/is-dynamic'\nimport { parseRelativeUrl } from '../next-server/lib/router/utils/parse-relative-url'\nimport createRouteLoader, {\n  getClientBuildManifest,\n  RouteLoader,\n} from './route-loader'\n\nfunction normalizeRoute(route: string) {\n  if (route[0] !== '/') {\n    throw new Error(`Route name should start with a \"/\", got \"${route}\"`)\n  }\n\n  if (route === '/') return route\n  return route.replace(/\\/$/, '')\n}\n\nexport type StyleSheetTuple = { href: string; text: string }\nexport type GoodPageCache = {\n  page: ComponentType\n  mod: any\n  styleSheets: StyleSheetTuple[]\n}\n\nexport default class PageLoader {\n  private buildId: string\n  private assetPrefix: string\n\n  private promisedSsgManifest?: Promise<ClientSsgManifest>\n  private promisedDevPagesManifest?: Promise<any>\n  public routeLoader: RouteLoader\n\n  constructor(buildId: string, assetPrefix: string) {\n    this.routeLoader = createRouteLoader(assetPrefix)\n\n    this.buildId = buildId\n    this.assetPrefix = assetPrefix\n\n    /** @type {Promise<Set<string>>} */\n    this.promisedSsgManifest = new Promise((resolve) => {\n      if ((window as any).__SSG_MANIFEST) {\n        resolve((window as any).__SSG_MANIFEST)\n      } else {\n        ;(window as any).__SSG_MANIFEST_CB = () => {\n          resolve((window as any).__SSG_MANIFEST)\n        }\n      }\n    })\n  }\n\n  getPageList() {\n    if (process.env.NODE_ENV === 'production') {\n      return getClientBuildManifest().then((manifest) => manifest.sortedPages)\n    } else {\n      if ((window as any).__DEV_PAGES_MANIFEST) {\n        return (window as any).__DEV_PAGES_MANIFEST.pages\n      } else {\n        if (!this.promisedDevPagesManifest) {\n          this.promisedDevPagesManifest = fetch(\n            `${this.assetPrefix}/_next/static/development/_devPagesManifest.json`\n          )\n            .then((res) => res.json())\n            .then((manifest) => {\n              ;(window as any).__DEV_PAGES_MANIFEST = manifest\n              return manifest.pages\n            })\n            .catch((err) => {\n              console.log(`Failed to fetch devPagesManifest`, err)\n            })\n        }\n        return this.promisedDevPagesManifest\n      }\n    }\n  }\n\n  /**\n   * @param {string} href the route href (file-system path)\n   * @param {string} asPath the URL as shown in browser (virtual path); used for dynamic routes\n   */\n  getDataHref(\n    href: string,\n    asPath: string,\n    ssg: boolean,\n    locale?: string | false\n  ) {\n    const { pathname: hrefPathname, query, search } = parseRelativeUrl(href)\n    const { pathname: asPathname } = parseRelativeUrl(asPath)\n    const route = normalizeRoute(hrefPathname)\n\n    const getHrefForSlug = (path: string) => {\n      const dataRoute = getAssetPathFromRoute(addLocale(path, locale), '.json')\n      return addBasePath(\n        `/_next/data/${this.buildId}${dataRoute}${ssg ? '' : search}`\n      )\n    }\n\n    const isDynamic: boolean = isDynamicRoute(route)\n    const interpolatedRoute = isDynamic\n      ? interpolateAs(hrefPathname, asPathname, query).result\n      : ''\n\n    return isDynamic\n      ? interpolatedRoute && getHrefForSlug(interpolatedRoute)\n      : getHrefForSlug(route)\n  }\n\n  /**\n   * @param {string} href the route href (file-system path)\n   */\n  _isSsg(href: string): Promise<boolean> {\n    const { pathname: hrefPathname } = parseRelativeUrl(href)\n    const route = normalizeRoute(hrefPathname)\n    return this.promisedSsgManifest!.then((s: ClientSsgManifest) =>\n      s.has(route)\n    )\n  }\n\n  loadPage(route: string): Promise<GoodPageCache> {\n    return this.routeLoader.loadRoute(route).then((res) => {\n      if ('component' in res) {\n        return {\n          page: res.component,\n          mod: res.exports,\n          styleSheets: res.styles.map((o) => ({\n            href: o.href,\n            text: o.content,\n          })),\n        }\n      }\n      throw res.error\n    })\n  }\n\n  prefetch(route: string): Promise<void> {\n    return this.routeLoader.prefetch(route)\n  }\n}\n"]},"metadata":{},"sourceType":"script"}