{"version":3,"sources":["../src/build/production-vite.ts"],"sourcesContent":["import type {\n  build as viteBuild,\n  createServer as createViteServer,\n  loadEnv as viteLoadEnv,\n} from \"vite\";\n\nexport type FarmProductionViteBuilder = \"rollup\" | \"rolldown\";\n\nexport interface FarmProductionViteRuntime {\n  build: typeof viteBuild;\n  createServer: typeof createViteServer;\n  loadEnv: typeof viteLoadEnv;\n  builder: FarmProductionViteBuilder;\n}\n\nexport function canUseRolldownForRouteDiscovery(viteConfig: object | undefined): boolean {\n  return !viteConfig || Object.keys(viteConfig).length === 0;\n}\n\nexport function supportsRolldownVite(nodeVersion = process.versions.node): boolean {\n  const [major = 0, minor = 0] = nodeVersion.split(\".\").map(Number);\n  return major > 22 || (major === 22 && minor >= 12);\n}\n\nfunction requestedProductionViteBuilder(): FarmProductionViteBuilder | undefined {\n  const requested = process.env.FARM_VITE_BUILDER?.trim().toLowerCase();\n  if (!requested) return undefined;\n  if (requested === \"rollup\" || requested === \"rolldown\") return requested;\n  throw new Error('FARM_VITE_BUILDER must be either \"rolldown\" or \"rollup\"');\n}\n\nasync function loadRollupVite(): Promise<FarmProductionViteRuntime> {\n  const runtime = await import(\"vite\");\n  return {\n    build: runtime.build,\n    createServer: runtime.createServer,\n    loadEnv: runtime.loadEnv,\n    builder: \"rollup\",\n  };\n}\n\n/**\n * Prefer Vite's Rolldown-powered production builder on supported Node releases.\n * Vite 5 remains the compatibility path for unsupported runtimes, --no-optional installs,\n * and projects that explicitly request Rollup.\n */\nexport async function loadFarmProductionVite(): Promise<FarmProductionViteRuntime> {\n  const requested = requestedProductionViteBuilder();\n  if (requested === \"rollup\" || !supportsRolldownVite()) {\n    if (requested === \"rolldown\") {\n      throw new Error(\"FARM_VITE_BUILDER=rolldown requires Node 22.12 or newer\");\n    }\n    return loadRollupVite();\n  }\n\n  try {\n    const runtime = (await import(\"vite-rolldown\")) as unknown as typeof import(\"vite\");\n    return {\n      build: runtime.build,\n      createServer: runtime.createServer,\n      loadEnv: runtime.loadEnv,\n      builder: \"rolldown\",\n    };\n  } catch (error) {\n    if (requested === \"rolldown\") {\n      const detail = error instanceof Error ? `: ${error.message}` : \"\";\n      throw new Error(\n        `FARM_VITE_BUILDER=rolldown was requested, but the optional Vite Rolldown runtime could not be loaded${detail}`,\n      );\n    }\n    return loadRollupVite();\n  }\n}\n"],"mappings":";;;;;AAeO,SAAS,gCAAgC,YAAyC;AACvF,SAAO,CAAC,cAAc,OAAO,KAAK,UAAU,EAAE,WAAW;AAC3D;AAFgB;AAIT,SAAS,qBAAqB,cAAc,QAAQ,SAAS,MAAe;AACjF,QAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,YAAY,MAAM,GAAG,EAAE,IAAI,MAAM;AAChE,SAAO,QAAQ,MAAO,UAAU,MAAM,SAAS;AACjD;AAHgB;AAKhB,SAAS,iCAAwE;AAC/E,QAAM,YAAY,QAAQ,IAAI,mBAAmB,KAAK,EAAE,YAAY;AACpE,MAAI,CAAC,UAAW,QAAO;AACvB,MAAI,cAAc,YAAY,cAAc,WAAY,QAAO;AAC/D,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AALS;AAOT,eAAe,iBAAqD;AAClE,QAAM,UAAU,MAAM,OAAO,MAAM;AACnC,SAAO;AAAA,IACL,OAAO,QAAQ;AAAA,IACf,cAAc,QAAQ;AAAA,IACtB,SAAS,QAAQ;AAAA,IACjB,SAAS;AAAA,EACX;AACF;AARe;AAef,eAAsB,yBAA6D;AACjF,QAAM,YAAY,+BAA+B;AACjD,MAAI,cAAc,YAAY,CAAC,qBAAqB,GAAG;AACrD,QAAI,cAAc,YAAY;AAC5B,YAAM,IAAI,MAAM,yDAAyD;AAAA,IAC3E;AACA,WAAO,eAAe;AAAA,EACxB;AAEA,MAAI;AACF,UAAM,UAAW,MAAM,OAAO,eAAe;AAC7C,WAAO;AAAA,MACL,OAAO,QAAQ;AAAA,MACf,cAAc,QAAQ;AAAA,MACtB,SAAS,QAAQ;AAAA,MACjB,SAAS;AAAA,IACX;AAAA,EACF,SAAS,OAAO;AACd,QAAI,cAAc,YAAY;AAC5B,YAAM,SAAS,iBAAiB,QAAQ,KAAK,MAAM,OAAO,KAAK;AAC/D,YAAM,IAAI;AAAA,QACR,uGAAuG,MAAM;AAAA,MAC/G;AAAA,IACF;AACA,WAAO,eAAe;AAAA,EACxB;AACF;AA1BsB;","names":[]}