{"version":3,"file":"multiline-EyzjEwn9.mjs","names":[],"sources":["../src/utils/multiline.ts"],"sourcesContent":["/**\n * Tag function which strips the common leading indent from a multi-line\n * template literal and trims surrounding blank lines, while indenting each\n * line of interpolated values to match the placeholder's indent.\n *\n * Mirrors the behaviour of the `multiline-ts` package, which we used to\n * depend on. We replaced it with this in-tree implementation because the\n * upstream package ships a `preinstall: npx only-allow pnpm` hook that\n * makes `npx create-tailor-sdk@latest` (and any other npm-based install\n * path that resolves a fresh copy) abort with `ECOMPROMISED`.\n * @param value - Template strings array, or a plain string for non-tagged usage\n * @param inputs - Interpolated values\n * @returns The dedented and trimmed string\n */\nexport default function multiline(\n  value: TemplateStringsArray | string,\n  ...inputs: string[]\n): string {\n  const strings = typeof value === \"string\" ? value.split(/(?=\\r\\n|\\r|\\n)/) : Array.from(value);\n\n  let currentIndent = \"\";\n  const joined = strings\n    .map((segment, i) => {\n      if (/\\r\\n|\\r|\\n/.test(segment)) {\n        currentIndent = getFinalIndent(segment) || currentIndent;\n      }\n      const input = inputs[i] ?? \"\";\n      return segment + input.replace(/\\r\\n|\\r|\\n/g, `\\n${currentIndent}`);\n    })\n    .join(\"\");\n\n  const lines = joined.split(/\\r\\n|\\r|\\n/);\n  const indents = lines.filter((line) => /[^ \\t]/.test(line)).map((line) => getIndent(line).length);\n  const minIndent = indents.length === 0 ? 0 : Math.min(...indents);\n  return lines\n    .map((line) => line.slice(minIndent))\n    .join(\"\\n\")\n    .replace(/^\\n|\\n[ \\t]*$/g, \"\");\n}\n\nfunction getIndent(line: string): string {\n  const match = line.match(/^[ \\t]+/);\n  return match ? match[0] : \"\";\n}\n\nfunction getFinalIndent(value: string): string {\n  const match = value.match(/(?<=(\\r\\n|\\r|\\n))[ \\t]+$/);\n  return match ? match[0] : \"\";\n}\n"],"mappings":"AAcA,SAAwB,UACtB,EACA,GAAG,EACK,CACR,IAAM,EAAU,OAAO,GAAU,SAAW,EAAM,MAAM,gBAAgB,EAAI,MAAM,KAAK,CAAK,EAExF,EAAgB,GAWd,EAVS,EACZ,KAAK,EAAS,KACT,aAAa,KAAK,CAAO,IAC3B,EAAgB,eAAe,CAAO,GAAK,GAGtC,GADO,EAAO,IAAM,GAAA,CACJ,QAAQ,cAAe,KAAK,GAAe,EACnE,CAAC,CACD,KAAK,EAEW,CAAC,CAAC,MAAM,YAAY,EACjC,EAAU,EAAM,OAAQ,GAAS,SAAS,KAAK,CAAI,CAAC,CAAC,CAAC,IAAK,GAAS,UAAU,CAAI,CAAC,CAAC,MAAM,EAC1F,EAAY,EAAQ,SAAW,EAAI,EAAI,KAAK,IAAI,GAAG,CAAO,EAChE,OAAO,EACJ,IAAK,GAAS,EAAK,MAAM,CAAS,CAAC,CAAC,CACpC,KAAK;CAAI,CAAC,CACV,QAAQ,iBAAkB,EAAE,CACjC,CAEA,SAAS,UAAU,EAAsB,CACvC,IAAM,EAAQ,EAAK,MAAM,SAAS,EAClC,OAAO,EAAQ,EAAM,GAAK,EAC5B,CAEA,SAAS,eAAe,EAAuB,CAC7C,IAAM,EAAQ,EAAM,MAAM,0BAA0B,EACpD,OAAO,EAAQ,EAAM,GAAK,EAC5B"}