{"version":3,"file":"_http-BpkAshj6.mjs","names":[],"sources":["../src/adapters/_config.ts","../src/adapters/_drain.ts","../src/adapters/_http.ts"],"sourcesContent":["/**\n * Try to get runtime config from Nitro/Nuxt environment.\n * Returns undefined if not in a Nitro context.\n */\nexport function getRuntimeConfig(): Record<string, any> | undefined {\n  try {\n    // eslint-disable-next-line @typescript-eslint/no-require-imports\n    const { useRuntimeConfig } = require('nitropack/runtime')\n    return useRuntimeConfig()\n  } catch {\n    return undefined\n  }\n}\n\nexport interface ConfigField<T> {\n  key: keyof T & string\n  env?: string[]\n}\n\nexport function resolveAdapterConfig<T>(\n  namespace: string,\n  fields: ConfigField<T>[],\n  overrides?: Partial<T>,\n): Partial<T> {\n  const runtimeConfig = getRuntimeConfig()\n  const mxllogNs = runtimeConfig?.mxllog?.[namespace]\n  const rootNs = runtimeConfig?.[namespace]\n\n  const config: Record<string, unknown> = {}\n\n  for (const { key, env } of fields) {\n    config[key] =\n      overrides?.[key]\n      ?? mxllogNs?.[key]\n      ?? rootNs?.[key]\n      ?? resolveEnv(env)\n  }\n\n  return config as Partial<T>\n}\n\nfunction resolveEnv(envKeys?: string[]): string | undefined {\n  if (!envKeys) return undefined\n  for (const key of envKeys) {\n    const val = process.env[key]\n    if (val) return val\n  }\n  return undefined\n}\n","import type { DrainContext, WideEvent } from '../types'\n\nexport interface DrainOptions<TConfig> {\n  name: string\n  resolve: () => TConfig | null\n  send: (events: WideEvent[], config: TConfig) => Promise<void>\n}\n\nexport function defineDrain<TConfig>(options: DrainOptions<TConfig>): (ctx: DrainContext | DrainContext[]) => Promise<void> {\n  return async (ctx: DrainContext | DrainContext[]) => {\n    const contexts = Array.isArray(ctx) ? ctx : [ctx]\n    if (contexts.length === 0) return\n\n    const config = options.resolve()\n    if (!config) return\n\n    try {\n      await options.send(contexts.map(c => c.event), config)\n    } catch (error) {\n      console.error(`[mxllog/${options.name}] Failed to send events:`, error)\n    }\n  }\n}\n","export interface HttpPostOptions {\n  url: string\n  headers: Record<string, string>\n  body: string\n  timeout: number\n  label: string\n}\n\nexport async function httpPost({ url, headers, body, timeout, label }: HttpPostOptions): Promise<void> {\n  const controller = new AbortController()\n  const timeoutId = setTimeout(() => controller.abort(), timeout)\n\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers,\n      body,\n      signal: controller.signal,\n    })\n\n    if (!response.ok) {\n      const text = await response.text().catch(() => 'Unknown error')\n      const safeText = text.length > 200 ? `${text.slice(0, 200)}...[truncated]` : text\n      throw new Error(`${label} API error: ${response.status} ${response.statusText} - ${safeText}`)\n    }\n  } finally {\n    clearTimeout(timeoutId)\n  }\n}\n"],"mappings":";;;;;;;;;AAIA,SAAgB,mBAAoD;AAClE,KAAI;EAEF,MAAM,EAAE,qBAAA,UAA6B,oBAAoB;AACzD,SAAO,kBAAkB;SACnB;AACN;;;AASJ,SAAgB,qBACd,WACA,QACA,WACY;CACZ,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,WAAW,eAAe,SAAS;CACzC,MAAM,SAAS,gBAAgB;CAE/B,MAAM,SAAkC,EAAE;AAE1C,MAAK,MAAM,EAAE,KAAK,SAAS,OACzB,QAAO,OACL,YAAY,QACT,WAAW,QACX,SAAS,QACT,WAAW,IAAI;AAGtB,QAAO;;AAGT,SAAS,WAAW,SAAwC;AAC1D,KAAI,CAAC,QAAS,QAAO,KAAA;AACrB,MAAK,MAAM,OAAO,SAAS;EACzB,MAAM,MAAM,QAAQ,IAAI;AACxB,MAAI,IAAK,QAAO;;;;;ACrCpB,SAAgB,YAAqB,SAAuF;AAC1H,QAAO,OAAO,QAAuC;EACnD,MAAM,WAAW,MAAM,QAAQ,IAAI,GAAG,MAAM,CAAC,IAAI;AACjD,MAAI,SAAS,WAAW,EAAG;EAE3B,MAAM,SAAS,QAAQ,SAAS;AAChC,MAAI,CAAC,OAAQ;AAEb,MAAI;AACF,SAAM,QAAQ,KAAK,SAAS,KAAI,MAAK,EAAE,MAAM,EAAE,OAAO;WAC/C,OAAO;AACd,WAAQ,MAAM,WAAW,QAAQ,KAAK,2BAA2B,MAAM;;;;;;ACX7E,eAAsB,SAAS,EAAE,KAAK,SAAS,MAAM,SAAS,SAAyC;CACrG,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,YAAY,iBAAiB,WAAW,OAAO,EAAE,QAAQ;AAE/D,KAAI;EACF,MAAM,WAAW,MAAM,MAAM,KAAK;GAChC,QAAQ;GACR;GACA;GACA,QAAQ,WAAW;GACpB,CAAC;AAEF,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,OAAO,MAAM,SAAS,MAAM,CAAC,YAAY,gBAAgB;GAC/D,MAAM,WAAW,KAAK,SAAS,MAAM,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB;AAC7E,SAAM,IAAI,MAAM,GAAG,MAAM,cAAc,SAAS,OAAO,GAAG,SAAS,WAAW,KAAK,WAAW;;WAExF;AACR,eAAa,UAAU"}