{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { snapwyr, SnapWyrConfig } from '@snapwyr/core';\n\n/**\n * @example\n * ```ts\n * import { logRequests } from 'snapwyr';\n * logRequests();\n * logRequests({ format: 'json', emoji: true });\n * ```\n */\nexport function logRequests(config: SnapWyrConfig = {}): void {\n  snapwyr.start(config);\n}\n\nexport function stopLogging(): void {\n  snapwyr.stop();\n}\n\n/**\n * @example\n * ```ts\n * const curl = toCurl({ method: 'POST', url: '...', headers: {...}, body: '...' });\n * ```\n */\nexport function toCurl(params: {\n  method: string;\n  url: string;\n  headers?: Record<string, string>;\n  body?: string;\n}): string {\n  const { method, url, headers, body } = params;\n  const parts = ['curl'];\n\n  if (method.toUpperCase() !== 'GET') {\n    parts.push(`-X ${method.toUpperCase()}`);\n  }\n\n  if (headers) {\n    for (const [key, value] of Object.entries(headers)) {\n      if (key.startsWith(':') || key.toLowerCase() === 'authorization') {\n        continue;\n      }\n      parts.push(`-H '${key}: ${value}'`);\n    }\n  }\n\n  if (body && method.toUpperCase() !== 'GET') {\n    const escapedBody = body.replace(/'/g, \"'\\\\''\");\n    parts.push(`-d '${escapedBody}'`);\n  }\n\n  parts.push(`'${url}'`);\n\n  return parts.join(' \\\\\\n  ');\n}\n\nexport function generateRequestId(): string {\n  return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 9)}`;\n}\n\nexport {\n  toCurl as toCurlFromCore,\n  generateRequestId as generateRequestIdFromCore,\n  redactSensitiveData,\n  formatBytes,\n  getByteSize,\n} from '@snapwyr/core';\nexport type {\n  SnapWyrConfig,\n  RequestEvent,\n  LogEntry,\n  TransportFn,\n} from '@snapwyr/core';\n"],"mappings":";AAAA,SAAS,eAA8B;AA4DvC;AAAA,EACY;AAAA,EACW;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAxDA,SAAS,YAAY,SAAwB,CAAC,GAAS;AAC5D,UAAQ,MAAM,MAAM;AACtB;AAEO,SAAS,cAAoB;AAClC,UAAQ,KAAK;AACf;AAQO,SAASA,QAAO,QAKZ;AACT,QAAM,EAAE,QAAQ,KAAK,SAAS,KAAK,IAAI;AACvC,QAAM,QAAQ,CAAC,MAAM;AAErB,MAAI,OAAO,YAAY,MAAM,OAAO;AAClC,UAAM,KAAK,MAAM,OAAO,YAAY,CAAC,EAAE;AAAA,EACzC;AAEA,MAAI,SAAS;AACX,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,UAAI,IAAI,WAAW,GAAG,KAAK,IAAI,YAAY,MAAM,iBAAiB;AAChE;AAAA,MACF;AACA,YAAM,KAAK,OAAO,GAAG,KAAK,KAAK,GAAG;AAAA,IACpC;AAAA,EACF;AAEA,MAAI,QAAQ,OAAO,YAAY,MAAM,OAAO;AAC1C,UAAM,cAAc,KAAK,QAAQ,MAAM,OAAO;AAC9C,UAAM,KAAK,OAAO,WAAW,GAAG;AAAA,EAClC;AAEA,QAAM,KAAK,IAAI,GAAG,GAAG;AAErB,SAAO,MAAM,KAAK,SAAS;AAC7B;AAEO,SAASC,qBAA4B;AAC1C,SAAO,GAAG,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;AAC7E;","names":["toCurl","generateRequestId"]}