{"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":["join","dirname","fs","reduceAppConfig","isAppBuiltinPage","getAppPageStaticInfo","getPageStaticInfo","PAGE_TYPES","isAppPageRoute","UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY","getStaticInfoIncludingLayouts","isInsideAppDir","pageExtensions","pageFilePath","appDir","config","nextConfig","isDev","page","pageType","APP","PAGES","pageStaticInfo","type","segments","layoutFiles","potentialLayoutFiles","map","ext","dir","startsWith","potentialLayoutFile","layoutFile","existsSync","push","layoutStaticInfo","unshift","runtime","preferredRegion","maxDuration"],"mappings":"AAEA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAM;AACpC,OAAOC,QAAQ,KAAI;AAEnB,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,UAAS;AAC3D,SACEC,oBAAoB,EACpBC,iBAAiB,QACZ,kCAAiC;AAGxC,SAASC,UAAU,QAAQ,oBAAmB;AAC9C,SAASC,cAAc,QAAQ,2BAA0B;AAEzD,SAASC,mCAAmC,QAAQ,gCAA+B;AAEnF,OAAO,eAAeC,8BAA8B,EAClDC,cAAc,EACdC,cAAc,EACdC,YAAY,EACZC,MAAM,EACNC,QAAQC,UAAU,EAClBC,KAAK,EACLC,IAAI,EASL;IACC,6EAA6E;IAC7E,MAAMC,WAAWR,iBAAiBJ,WAAWa,GAAG,GAAGb,WAAWc,KAAK;IAEnE,MAAMC,iBAAiB,MAAMhB,kBAAkB;QAC7CU;QACAH;QACAI;QACAC;QACAC;IACF;IAEA,IAAIG,eAAeC,IAAI,KAAKhB,WAAWc,KAAK,IAAI,CAACP,QAAQ;QACvD,OAAOQ;IACT;IAEA,sEAAsE;IACtE,IAAIJ,SAAST,qCAAqC;QAChD,OAAOa;IACT;IAEA,MAAME,WAAW;QAACF;KAAe;IAEjC,6EAA6E;IAC7E,IAAId,eAAeU,SAAS,CAACd,iBAAiBS,eAAe;QAC3D,MAAMY,cAAc,EAAE;QACtB,MAAMC,uBAAuBd,eAAee,GAAG,CAAC,CAACC,MAAQ,YAAYA;QACrE,IAAIC,MAAM5B,QAAQY;QAElB,yDAAyD;QACzD,MAAOgB,IAAIC,UAAU,CAAChB,QAAS;YAC7B,KAAK,MAAMiB,uBAAuBL,qBAAsB;gBACtD,MAAMM,aAAahC,KAAK6B,KAAKE;gBAC7B,IAAI,CAAC7B,GAAG+B,UAAU,CAACD,aAAa;oBAC9B;gBACF;gBACAP,YAAYS,IAAI,CAACF;YACnB;YACA,6BAA6B;YAC7BH,MAAM7B,KAAK6B,KAAK;QAClB;QAEA,KAAK,MAAMG,cAAcP,YAAa;YACpC,MAAMU,mBAAmB,MAAM9B,qBAAqB;gBAClDW;gBACAH,cAAcmB;gBACdf;gBACAC;gBACAC,UAAUR,iBAAiBJ,WAAWa,GAAG,GAAGb,WAAWc,KAAK;YAC9D;YAEAG,SAASY,OAAO,CAACD;QACnB;IACF;IAEA,MAAMpB,SAASZ,gBAAgBqB;IAE/B,OAAO;QACL,GAAGF,cAAc;QACjBP;QACAsB,SAAStB,OAAOsB,OAAO;QACvBC,iBAAiBvB,OAAOuB,eAAe;QACvCC,aAAaxB,OAAOwB,WAAW;IACjC;AACF","ignoreList":[0]}