{"version":3,"file":"generateSitemap.js","names":[],"sources":["esm/cli/generateSitemap.js"],"sourcesContent":["import MicroMatch from \"micromatch\";\nfunction generateSitemap(routes, options) {\n  const envUrl = process.env.ONE_SERVER_URL;\n  const baseUrl = options.baseUrl ?? (envUrl && envUrl !== \"undefined\" ? envUrl : \"\");\n  const defaultPriority = options.priority ?? 0.5;\n  const defaultChangefreq = options.changefreq;\n  const excludePatterns = options.exclude || [];\n  const entries = [];\n  for (const route of routes) {\n    const { path, routeExport } = route;\n    if (routeExport?.exclude) {\n      continue;\n    }\n    if (excludePatterns.length > 0 && MicroMatch.isMatch(path, excludePatterns)) {\n      continue;\n    }\n    const priority = routeExport?.priority ?? defaultPriority;\n    const changefreq = routeExport?.changefreq ?? defaultChangefreq;\n    const lastmod = routeExport?.lastmod;\n    entries.push({\n      path,\n      priority,\n      changefreq,\n      lastmod\n    });\n  }\n  return buildSitemapXml(entries, baseUrl);\n}\nfunction buildSitemapXml(entries, baseUrl) {\n  const urlEntries = entries.map((entry) => {\n    const loc = baseUrl ? `${baseUrl.replace(/\\/$/, \"\")}${entry.path}` : entry.path;\n    let xml = `  <url>\n    <loc>${escapeXml(loc)}</loc>`;\n    if (entry.lastmod) {\n      const date = entry.lastmod instanceof Date ? entry.lastmod.toISOString().split(\"T\")[0] : entry.lastmod;\n      xml += `\n    <lastmod>${escapeXml(date)}</lastmod>`;\n    }\n    if (entry.changefreq) {\n      xml += `\n    <changefreq>${entry.changefreq}</changefreq>`;\n    }\n    if (entry.priority !== void 0) {\n      xml += `\n    <priority>${entry.priority.toFixed(1)}</priority>`;\n    }\n    xml += \"\\n  </url>\";\n    return xml;\n  }).join(\"\\n\");\n  return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n${urlEntries}\n</urlset>\n`;\n}\nfunction escapeXml(str) {\n  return str.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&apos;\");\n}\nexport {\n  generateSitemap\n};\n//# sourceMappingURL=generateSitemap.js.map\n"],"mappings":";;;AACA,SAAS,gBAAgB,QAAQ,SAAS;CACxC,MAAM,SAAS,QAAQ,IAAI;CAC3B,MAAM,UAAU,QAAQ,YAAY,UAAU,WAAW,cAAc,SAAS;CAChF,MAAM,kBAAkB,QAAQ,YAAY;CAC5C,MAAM,oBAAoB,QAAQ;CAClC,MAAM,kBAAkB,QAAQ,WAAW,CAAC;CAC5C,MAAM,UAAU,CAAC;CACjB,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,EAAE,MAAM,gBAAgB;EAC9B,IAAI,aAAa,SAAS;GACxB;EACF;EACA,IAAI,gBAAgB,SAAS,KAAK,WAAW,QAAQ,MAAM,eAAe,GAAG;GAC3E;EACF;EACA,MAAM,WAAW,aAAa,YAAY;EAC1C,MAAM,aAAa,aAAa,cAAc;EAC9C,MAAM,UAAU,aAAa;EAC7B,QAAQ,KAAK;GACX;GACA;GACA;GACA;EACF,CAAC;CACH;CACA,OAAO,gBAAgB,SAAS,OAAO;AACzC;AACA,SAAS,gBAAgB,SAAS,SAAS;CACzC,MAAM,aAAa,QAAQ,KAAK,UAAU;EACxC,MAAM,MAAM,UAAU,GAAG,QAAQ,QAAQ,OAAO,EAAE,IAAI,MAAM,SAAS,MAAM;EAC3E,IAAI,MAAM;WACH,UAAU,GAAG,EAAE;EACtB,IAAI,MAAM,SAAS;GACjB,MAAM,OAAO,MAAM,mBAAmB,OAAO,MAAM,QAAQ,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM;GAC/F,OAAO;eACE,UAAU,IAAI,EAAE;EAC3B;EACA,IAAI,MAAM,YAAY;GACpB,OAAO;kBACK,MAAM,WAAW;EAC/B;EACA,IAAI,MAAM,aAAa,KAAK,GAAG;GAC7B,OAAO;gBACG,MAAM,SAAS,QAAQ,CAAC,EAAE;EACtC;EACA,OAAO;EACP,OAAO;CACT,CAAC,CAAC,CAAC,KAAK,IAAI;CACZ,OAAO;;EAEP,WAAW;;;AAGb;AACA,SAAS,UAAU,KAAK;CACtB,OAAO,IAAI,QAAQ,MAAM,OAAO,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC,CAAC,QAAQ,MAAM,QAAQ,CAAC,CAAC,QAAQ,MAAM,QAAQ;AAC9H"}