{"version":3,"sources":["../../src/build/get-static-info-including-layouts.ts"],"sourcesContent":["import type { NextConfigComplete } from '../server/config-shared'\nimport type { PageStaticInfo } from './analysis/get-page-static-info'\nimport { join, dirname } from 'path'\nimport fs from 'fs'\nimport type { __ApiPreviewProps } from '../server/api-utils'\nimport { reduceAppConfig, isAppBuiltinPage } from './utils'\nimport {\n  getAppPageStaticInfo,\n  getPageStaticInfo,\n} from './analysis/get-page-static-info'\nimport type { PageExtensions } from './page-extensions-type'\n\nimport { PAGE_TYPES } from '../lib/page-types'\nimport { isAppPageRoute } from '../lib/is-app-page-route'\n\nimport { UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY } from '../shared/lib/entry-constants'\n\nexport async function getStaticInfoIncludingLayouts({\n  isInsideAppDir,\n  pageExtensions,\n  pageFilePath,\n  appDir,\n  config: nextConfig,\n  isDev,\n  page,\n}: {\n  isInsideAppDir: boolean\n  pageExtensions: PageExtensions\n  pageFilePath: string\n  appDir: string | undefined\n  config: NextConfigComplete\n  isDev: boolean\n  page: string\n}): Promise<PageStaticInfo> {\n  // TODO: sync types for pages: PAGE_TYPES, ROUTER_TYPE, 'app' | 'pages', etc.\n  const pageType = isInsideAppDir ? PAGE_TYPES.APP : PAGE_TYPES.PAGES\n\n  const pageStaticInfo = await getPageStaticInfo({\n    nextConfig,\n    pageFilePath,\n    isDev,\n    page,\n    pageType,\n  })\n\n  if (pageStaticInfo.type === PAGE_TYPES.PAGES || !appDir) {\n    return pageStaticInfo\n  }\n\n  // Skip inheritance for global-error pages - always use default config\n  if (page === UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY) {\n    return pageStaticInfo\n  }\n\n  const segments = [pageStaticInfo]\n\n  // inherit from layout files only if it's a page route and not a builtin page\n  if (isAppPageRoute(page) && !isAppBuiltinPage(pageFilePath)) {\n    const layoutFiles = []\n    const potentialLayoutFiles = pageExtensions.map((ext) => 'layout.' + ext)\n    let dir = dirname(pageFilePath)\n\n    // Uses startsWith to not include directories further up.\n    while (dir.startsWith(appDir)) {\n      for (const potentialLayoutFile of potentialLayoutFiles) {\n        const layoutFile = join(dir, potentialLayoutFile)\n        if (!fs.existsSync(layoutFile)) {\n          continue\n        }\n        layoutFiles.push(layoutFile)\n      }\n      // Walk up the directory tree\n      dir = join(dir, '..')\n    }\n\n    for (const layoutFile of layoutFiles) {\n      const layoutStaticInfo = await getAppPageStaticInfo({\n        nextConfig,\n        pageFilePath: layoutFile,\n        isDev,\n        page,\n        pageType: isInsideAppDir ? PAGE_TYPES.APP : PAGE_TYPES.PAGES,\n      })\n\n      segments.unshift(layoutStaticInfo)\n    }\n  }\n\n  const config = reduceAppConfig(segments)\n\n  return {\n    ...pageStaticInfo,\n    config,\n    runtime: config.runtime,\n    preferredRegion: config.preferredRegion,\n    maxDuration: config.maxDuration,\n  }\n}\n"],"names":["getStaticInfoIncludingLayouts","isInsideAppDir","pageExtensions","pageFilePath","appDir","config","nextConfig","isDev","page","pageType","PAGE_TYPES","APP","PAGES","pageStaticInfo","getPageStaticInfo","type","UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY","segments","isAppPageRoute","isAppBuiltinPage","layoutFiles","potentialLayoutFiles","map","ext","dir","dirname","startsWith","potentialLayoutFile","layoutFile","join","fs","existsSync","push","layoutStaticInfo","getAppPageStaticInfo","unshift","reduceAppConfig","runtime","preferredRegion","maxDuration"],"mappings":";;;;+BAiBsBA;;;eAAAA;;;sBAfQ;2DACf;uBAEmC;mCAI3C;2BAGoB;gCACI;gCAEqB;;;;;;AAE7C,eAAeA,8BAA8B,EAClDC,cAAc,EACdC,cAAc,EACdC,YAAY,EACZC,MAAM,EACNC,QAAQC,UAAU,EAClBC,KAAK,EACLC,IAAI,EASL;IACC,6EAA6E;IAC7E,MAAMC,WAAWR,iBAAiBS,qBAAU,CAACC,GAAG,GAAGD,qBAAU,CAACE,KAAK;IAEnE,MAAMC,iBAAiB,MAAMC,IAAAA,oCAAiB,EAAC;QAC7CR;QACAH;QACAI;QACAC;QACAC;IACF;IAEA,IAAII,eAAeE,IAAI,KAAKL,qBAAU,CAACE,KAAK,IAAI,CAACR,QAAQ;QACvD,OAAOS;IACT;IAEA,sEAAsE;IACtE,IAAIL,SAASQ,mDAAmC,EAAE;QAChD,OAAOH;IACT;IAEA,MAAMI,WAAW;QAACJ;KAAe;IAEjC,6EAA6E;IAC7E,IAAIK,IAAAA,8BAAc,EAACV,SAAS,CAACW,IAAAA,uBAAgB,EAAChB,eAAe;QAC3D,MAAMiB,cAAc,EAAE;QACtB,MAAMC,uBAAuBnB,eAAeoB,GAAG,CAAC,CAACC,MAAQ,YAAYA;QACrE,IAAIC,MAAMC,IAAAA,aAAO,EAACtB;QAElB,yDAAyD;QACzD,MAAOqB,IAAIE,UAAU,CAACtB,QAAS;YAC7B,KAAK,MAAMuB,uBAAuBN,qBAAsB;gBACtD,MAAMO,aAAaC,IAAAA,UAAI,EAACL,KAAKG;gBAC7B,IAAI,CAACG,WAAE,CAACC,UAAU,CAACH,aAAa;oBAC9B;gBACF;gBACAR,YAAYY,IAAI,CAACJ;YACnB;YACA,6BAA6B;YAC7BJ,MAAMK,IAAAA,UAAI,EAACL,KAAK;QAClB;QAEA,KAAK,MAAMI,cAAcR,YAAa;YACpC,MAAMa,mBAAmB,MAAMC,IAAAA,uCAAoB,EAAC;gBAClD5B;gBACAH,cAAcyB;gBACdrB;gBACAC;gBACAC,UAAUR,iBAAiBS,qBAAU,CAACC,GAAG,GAAGD,qBAAU,CAACE,KAAK;YAC9D;YAEAK,SAASkB,OAAO,CAACF;QACnB;IACF;IAEA,MAAM5B,SAAS+B,IAAAA,sBAAe,EAACnB;IAE/B,OAAO;QACL,GAAGJ,cAAc;QACjBR;QACAgC,SAAShC,OAAOgC,OAAO;QACvBC,iBAAiBjC,OAAOiC,eAAe;QACvCC,aAAalC,OAAOkC,WAAW;IACjC;AACF","ignoreList":[0]}