{"version":3,"file":"resolve-env-in-htm.mjs","names":[],"sources":["../../../../../../vite/src/resolve-env-in-htm.ts"],"sourcesContent":["import { env } from \"@mongez/dotenv\";\r\nimport { MongezViteOptions } from \"./types\";\r\n\r\nconst escapeHtml = (value: string) =>\r\n  value\r\n    .replace(/&/g, \"&amp;\")\r\n    .replace(/</g, \"&lt;\")\r\n    .replace(/>/g, \"&gt;\")\r\n    .replace(/\"/g, \"&quot;\")\r\n    .replace(/'/g, \"&#39;\");\r\n\r\nexport default function transformEnvironmentVariablesInHtml(\r\n  html: string,\r\n  options: MongezViteOptions,\r\n) {\r\n  const envVariables = env.all();\r\n\r\n  // now loop over all env variables and replace them in the html\r\n  // but add also the prefix and suffix\r\n  //\r\n  // Note: htmlEnvPrefix/htmlEnvSuffix are documented and tested as raw\r\n  // regex fragments (consumers pass values like `\\{\\{`/`\\}\\}`), so they're\r\n  // deliberately not regex-escaped here.\r\n  for (const key in envVariables) {\r\n    const value = escapeHtml(String(envVariables[key]));\r\n    html = html.replace(\r\n      new RegExp(`${options.htmlEnvPrefix}${key}${options.htmlEnvSuffix}`, \"g\"),\r\n      // Use a replacement function (not a string) so values containing\r\n      // `$&`, `$1`, `$$`, etc. are substituted literally instead of being\r\n      // interpreted as String.replace special patterns.\r\n      () => value,\r\n    );\r\n  }\r\n\r\n  return html;\r\n}\r\n"],"mappings":";;;AAGA,MAAM,cAAc,UAClB,MACG,QAAQ,MAAM,OAAO,CAAC,CACtB,QAAQ,MAAM,MAAM,CAAC,CACrB,QAAQ,MAAM,MAAM,CAAC,CACrB,QAAQ,MAAM,QAAQ,CAAC,CACvB,QAAQ,MAAM,OAAO;AAE1B,SAAwB,oCACtB,MACA,SACA;CACA,MAAM,eAAe,IAAI,IAAI;CAQ7B,KAAK,MAAM,OAAO,cAAc;EAC9B,MAAM,QAAQ,WAAW,OAAO,aAAa,IAAI,CAAC;EAClD,OAAO,KAAK,QACV,IAAI,OAAO,GAAG,QAAQ,gBAAgB,MAAM,QAAQ,iBAAiB,GAAG,SAIlE,KACR;CACF;CAEA,OAAO;AACT"}