{"version":3,"file":"headers.cjs","names":[],"sources":["../../../src/ssr/headers.ts"],"sourcesContent":["import { splitSetCookieString } from 'cookie-es'\nimport type { OutgoingHttpHeaders } from 'node:http2'\n\nexport type AnyHeaders =\n  | Headers\n  | HeadersInit\n  | Record<string, string>\n  | Array<[string, string]>\n  | OutgoingHttpHeaders\n  | undefined\n\n// Helper function to convert various HeaderInit types to a Headers instance\nfunction toHeadersInstance(init: AnyHeaders) {\n  if (init instanceof Headers) {\n    return init\n  } else if (Array.isArray(init)) {\n    return new Headers(init)\n  } else if (typeof init === 'object') {\n    return new Headers(init as HeadersInit)\n  } else {\n    return null\n  }\n}\n\n// Function to merge headers with proper overrides\nexport function mergeHeaders(...headers: Array<AnyHeaders>) {\n  return headers.reduce((acc: Headers, header) => {\n    const headersInstance = toHeadersInstance(header)\n    if (!headersInstance) return acc\n    for (const [key, value] of headersInstance.entries()) {\n      if (key === 'set-cookie') {\n        const splitCookies = splitSetCookieString(value)\n        splitCookies.forEach((cookie) => acc.append('set-cookie', cookie))\n      } else {\n        acc.set(key, value)\n      }\n    }\n    return acc\n  }, new Headers())\n}\n"],"mappings":";;AAYA,SAAS,kBAAkB,MAAkB;AAC3C,KAAI,gBAAgB,QAClB,QAAO;UACE,MAAM,QAAQ,KAAK,CAC5B,QAAO,IAAI,QAAQ,KAAK;UACf,OAAO,SAAS,SACzB,QAAO,IAAI,QAAQ,KAAoB;KAEvC,QAAO;;AAKX,SAAgB,aAAa,GAAG,SAA4B;AAC1D,QAAO,QAAQ,QAAQ,KAAc,WAAW;EAC9C,MAAM,kBAAkB,kBAAkB,OAAO;AACjD,MAAI,CAAC,gBAAiB,QAAO;AAC7B,OAAK,MAAM,CAAC,KAAK,UAAU,gBAAgB,SAAS,CAClD,KAAI,QAAQ,aAEV,EAAA,GAAA,UAAA,sBAD0C,MAAM,CACnC,SAAS,WAAW,IAAI,OAAO,cAAc,OAAO,CAAC;MAElE,KAAI,IAAI,KAAK,MAAM;AAGvB,SAAO;IACN,IAAI,SAAS,CAAC"}