{"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;CAC3C,IAAI,gBAAgB,SAClB,OAAO;MACF,IAAI,MAAM,QAAQ,IAAI,GAC3B,OAAO,IAAI,QAAQ,IAAI;MAClB,IAAI,OAAO,SAAS,UACzB,OAAO,IAAI,QAAQ,IAAmB;MAEtC,OAAO;AAEX;AAGA,SAAgB,aAAa,GAAG,SAA4B;CAC1D,OAAO,QAAQ,QAAQ,KAAc,WAAW;EAC9C,MAAM,kBAAkB,kBAAkB,MAAM;EAChD,IAAI,CAAC,iBAAiB,OAAO;EAC7B,KAAK,MAAM,CAAC,KAAK,UAAU,gBAAgB,QAAQ,GACjD,IAAI,QAAQ,cAEV,CAAA,GAAA,UAAA,sBAD0C,KAC1C,EAAa,SAAS,WAAW,IAAI,OAAO,cAAc,MAAM,CAAC;OAEjE,IAAI,IAAI,KAAK,KAAK;EAGtB,OAAO;CACT,GAAG,IAAI,QAAQ,CAAC;AAClB"}